Kubernetes 환경으로 Argo CD 가져오기, CD 환경 설정

7070 단어 ArgoCDkubernetes
이전 기사에서는 Centos7에 Kubernetes 환경을 구축하고 TLS의 외부 공개를 진행했다.
이번에 우리는 이 환경에서 Argo CD를 가져와 실제 마이크로 서비스를 조작하는 절차를 총괄할 것이다.

Argo CD란?


Argo CD는 Kubernetes의 GitOps를 기반으로 만든 CD 도구입니다.
Kubernetes는 Git 창고의 변화를 모니터링하고 감지한 후 환경 클러스터를 자동으로 미리 처리할 수 있습니다.

GitOps란?


GitOps는 인프라 시설과 응용 양면을 포함한 시스템 전체 코드를 Git가 관리하는 사상을 말한다.
예를 들어 Giit 관리의 인프라 코드를 변경하면 자동으로 디버깅을 진행하여 Giit와 공식 환경의 서버 코드가 차이가 없는 상태를 실현한다.

CI 및 CD 분리


CD의 방식과 관련해서는 CIPipeline이 Kubernetes 환경에 접근해 CD를 진행하는 것을 Push형이라고 하고, CD를 분리해 Kubbernetes 환경의 변경을 감지하고, CD를 진행하는 것을 Pull형이라고 한다.
다만 서비스의 세대 관리가 어려워 CI에 대한 권한의 문제 등으로 풀형이 추천됐다.
따라서 CI와 CD의 분리를 진행하고, Giit가 관리하는 각 마이크로 서비스의 응용 창고 측에서 자동 테스트와 용기 레지스터의 업데이트를 진행하는 CI 측에서 진행하며, Kubbernetes 환경을 구성하는 선언 디렉터리 측에서 선언 파일 변경 검측 후의 자동 디버깅을 실시한다.이런 작용.

Argo CD 에셋 만들기


먼저 Argo CD 가져오기로 namespace를 만들고 namespace에서 리소스를 만듭니다.
# kubectl create namespace argocd

# kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml

외부 공개 설정


이전 기사에서cert-manager와Nginx Ingress Controller를 사용하여 외부에 공개된 TLS의 설정을 설정하였기 때문에 이 설정을 이용하여argocd-server를 외부에 공개하는 Ingress의 선언 파일을 만들고 자원을 제작합니다.
ingress.yml

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: argocd-ingress
  annotations:
    kubernetes.io/ingress.class: "nginx"
    kubernetes.io/tls-acme: "true"
    nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
    nginx.ingress.kubernetes.io/ssl-passthrough: "true"
    cert-manager.io/cluster-issuer: "letsencrypt-issuer"
    ingress.kubernetes.io/ssl-redirect: "false"
spec:
  tls:
  - hosts:
      - example-sub.test.com
    secretName: test-com-tls
  rules:
    - host: example-sub.test.com
      http:
        paths:
        - path: /
          pathType: Prefix
          backend:
            service:
              name: argocd-server
              port:
                number: 443

# kubectl apply -f ingress.yml -n argocd
이것이 바로 example-sub.test입니다."com"을 클릭하면 다음과 같은 Argo CD에 로그인 페이지가 표시됩니다.
Argo CD의 로그인 페이지에 로그인 처음 로그인한 계정은 제작된 Argo CD 리소스의 시크릿에 기재되며, Username은 admin, Password로 다음 명령으로 표시할 수 있다. 그런 다음 위의 Password 정보를 사용하여 암호를 다시 설정합니다. # kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d && echo # argocd account update-password *** Enter current password: *** Enter new password: *** Confirm new password: Argo CD의 로그인 페이지에 위의 로그인 정보를 입력하면 로그인할 수 있습니다. ArgoCD CLI 가져오기 명령은 Argo CD를 설정하고 CLI를 설치 및 설정할 수도 있습니다. # wget https://github.com/argoproj/argo-cd/releases/download/v2.0.5/argocd-linux-amd64 # wget https://github.com/argoproj/argo-cd/releases/download/v2.0.5/argocd-util-linux-amd64 # install argocd-linux-amd64 /usr/local/bin/argocd # install argocd-util-linux-amd64 /usr/local/bin/argocd-util CLI를 설치한 후 버전 표시를 확인합니다. 버전 확인에 Argo CD 버전이 표시되고 Argo CD 서버 항목에 "Argo CD 서버 address unspecified" 오류가 출력됩니다. 그 오류는 CLI 로그인 후 해제됩니다. # argocd version argocd: v2.0.5+3a44d11 BuildDate: 2021-07-22T20:52:31Z GitCommit: 4c9gnapekleodifnajem049c2d1354b88 GitTreeState: clean GoVersion: go1.16 Compiler: gc Platform: linux/amd64 FATA[0000] Argo CD server address unspecified #argocd login 서버 이름 Username: admin 암호 설정 # argocd version argocd: v2.0.5+3a44d11 BuildDate: 2021-07-22T20:52:31Z GitCommit: 4c9gnapekleodifnajem049c2d1354b88 GitTreeState: clean GoVersion: go1.16 Compiler: gc Platform: linux/amd64 argocd-server: v2.1.7+afaoamle Argo CD 및 Git 창고 설치 Argo CD로 관리하고 싶은 선언문건과 Git 창고의 동시 진행에 관하여. 먼저 현황의 분류 정보를 확인하고 관리하는 분류를 선택하여 설정한다. # argocd cluster add #argocd cluster add 위에서 설명한 NAME의 클러스터 이름 설정이 완료되면 Argo CD의 관리하에 두고 싶은 GiitHub의 선언 파일을 위한 폴더를 설정합니다. #argocd app create 애플리케이션 이름 - Repo의 GiitHub을 설정하려는 경우git의 URL.path GiitHub 관리 하에 설치하려는 폴더의 경로 - dest-serverhttps://kubernetes.default.svc-- 설정하려는 네임스페이스 그런 다음 동기화 설정을 수행합니다. #argocd app sync 애플리케이션 이름 동기화 여부를 확인하면 Sync Status의 일부가 Synced입니다. #argocd app get 애플리케이션 이름 (snip) Sync Status: Synced to (c61b343) (snip) 샘플 응용 프로그램으로 테스트하면 다음과 같다. # argocd app create guestbook --repo https://github.com/argoproj/argocd-example-apps.git --path guestbook --dest-server https://kubernetes.default.svc --dest-namespace default # argocd app guestbook sync실제로 제가 투자조합으로 만든 앱이에요.선언 창고를 설정한 후 다음과 같이 대상의 용기 버전을 선언문건으로 변경한 후 ArgoCD로 자동 디버깅을 하고 홈페이지도 업데이트한다.
이렇게 해서 기릿허브의 선언문건에서 만들어진 자원이 아르고 CD 관리 하에 놓이고, 기릿에서 push로 선언문건을 변경하면 그에 상응하는 아르고 CD 관리 하에 놓인 클러스터의 자원도 업데이트돼 설정이 완료된다. 참조 링크

좋은 웹페이지 즐겨찾기