Argo CD API Server를 포트포워딩 없이 더 빠르고 쉽게 접근하는 방법입니다
쿠버네티스 클러스터에 접근해서 포트포워딩을 해줘야 한다.
# 포트 포워딩 명령어
kubectl port-forward svc/argocd-server -n argocd 8080:443
서버 배포할 때마다 위 과정을 거치는게 시간도 꽤 들고 불편했다.
또한 배포할 사용자가 클러스터 접근 권한이 있어야 하는데 새로운 사람이 배포하려면 까먹지 않고 클러스터 접근 권한을 부여해줘야 했다.
URL로 바로 접근해서 배포 가능하고 클러스터에 접근 권한도 필요하지 않다.
kubectl patch svc argocd-server -n argocd -p '{"spec": {"type": "NodePort"}}'
위 명령어를 사용하면 원하는 부분을 쉽게 수정할 수 있다.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