Argo CD 더 쉽게 접근해보자!

지수 🤓·2022년 8월 21일
0

Infra

목록 보기
1/1

Argo CD API Server를 포트포워딩 없이 더 빠르고 쉽게 접근하는 방법입니다

AS-IS

쿠버네티스 클러스터에 접근해서 포트포워딩을 해줘야 한다.

# 포트 포워딩 명령어
kubectl port-forward svc/argocd-server -n argocd 8080:443

서버 배포할 때마다 위 과정을 거치는게 시간도 꽤 들고 불편했다.
또한 배포할 사용자가 클러스터 접근 권한이 있어야 하는데 새로운 사람이 배포하려면 까먹지 않고 클러스터 접근 권한을 부여해줘야 했다.

TO-BE

URL로 바로 접근해서 배포 가능하고 클러스터에 접근 권한도 필요하지 않다.

적용 방법

  1. argocd-server를 Node Port로 변경
    kubectl patch svc argocd-server -n argocd -p '{"spec": {"type": "NodePort"}}'
    위 명령어를 사용하면 원하는 부분을 쉽게 수정할 수 있다.
  2. Ingress 설정
    • 설정 파일을 argocd-server-ingress.yaml 로 저장
      apiVersion: networking.k8s.io/v1
      kind: Ingress
      metadata:
        name: argocd-server-ingress
        namespace: argocd
        annotations:
          cert-manager.io/cluster-issuer: letsencrypt-prod
          kubernetes.io/ingress.class: nginx
          kubernetes.io/tls-acme: "true"
          nginx.ingress.kubernetes.io/ssl-passthrough: "true"
          nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
      spec:
        rules:
        - host: 지정할 주소 (ex. kubernetes.docker.com)
          http:
            paths:
            - path: /
              pathType: Prefix
              backend:
                service:
                  name: argocd-server
                  port:
                    name: https
        tls:
        - hosts:
          - 지정할 주소
          secretName: argocd-secret
    • 저장된 파일을 클러스터에 적용
      kubectl apply -f argocd-server-ingress.yaml

이렇게 하면 설정 완료!

로컬에서 테스트

로컬 환경(MAC 기준)에서 인그레스 설정이 잘 되었는지 테스트하고 싶다면 host를 수정하면 된다.

vi /private/etc/hosts

위 파일에서 아래 라인을 추가하면 127.0.0.1을 kubernetes.docker.com으로 접근할 수 있다.

127.0.0.1 kubernetes.docker.com
profile
Backend Junior Developer

0개의 댓글