멀티 클러스터 #3 Argo CD

codelab·2023년 10월 22일
0

Multi Cloud

목록 보기
7/11
post-thumbnail

Kubernetes에 Argo CD 설치

다음 단계에서는 Kubernetes에 Argo CD를 설치하겠습니다. 공식 Argo CD Helm 차트를 사용합니다. 

먼저 Helm 저장소를 추가합니다.

$ helm repo add argo https://argoproj.github.io/argo-helm

Argo CD를 설치합니다.

$ helm install argocd argo/argo-cd -n argocd --create-namespace

Argo CD가 설치되면 안내에 따라 대시보드로 접속합니다.

$ kubectl port-forward service/argocd-server -n argocd 8080:443
http://localhost:8080

기본 사용자 이름은 admin이고 비번은 아래와 같습니다. 

$ kubectl get secret argocd-initial-admin-secret \
  --template={{.data.password}} \
  -n argocd | base64 -d

Ingress & TLS 적용

agro cname 레코드로 등록


cat <<EOT> ingress-argo-prod.yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: argo-prod
  namespace: argocd
  annotations:
    acme.cert-manager.io/http01-ingress-class: nginx
    cert-manager.io/cluster-issuer: letsencrypt-prod
    nginx.ingress.kubernetes.io/ssl-passthrough: "true"
    # If you encounter a redirect loop or are getting a 307 response code
    # then you need to force the nginx ingress to connect to the backend using HTTPS.
    #
    nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
spec:
  ingressClassName: nginx
  tls:
  - hosts:
    - argo.code-lab.kr
    secretName: argo-prod-tls
  rules:
  - host: argo.code-lab.kr
    http:
      paths:
      - pathType: Prefix
        path: /
        backend:
          service:
            name: argocd-server
            port:
              name: https
EOT
k apply -f ingress-argo-prod.yaml 

인증서 확인

➜  k get certificates -n argocd

NAME            READY   SECRET          AGE
argo-prod-tls   True    argo-prod-tls   33s

인증서 생성이 안 되면 https 관련 설정을 주석처리하거나 http 로 바꾸고 적용하면 인증서가 생성됩니다.
실제로 브라우저에서 아르고 접속이 안 될텐데 원복 후 다시 적용하면 작동합니다.


로드밸런서 용도로 할당 받은 IP로 https 프로토콜 접속을 합니다. https://argo.code-lab.kr
그리고 앞서 확인한 패스워드를 입력해 로그인합니다.

username: admin
password: <secret을 통해 확인한 값>
profile
Think about a better architecture

0개의 댓글