Search

issue-001

Tag
TroubleShooting

환경

항목
내용
날짜
2026-03-06
서비스
ArgoCD
버전
v3.3.2 (helm chart: argo-cd-9.4.7)
환경
kubeadm, Multipass VM, nginx-ingress, MetalLB

증상

http://argocd.chaos-lab.local 접속 시 Web UI에 접근할 수 없었다. HTTP 요청이 HTTPS로 리다이렉트되고 있음을 확인할 수 있었다.
$ curl http://argocd.chaos-lab.local <html> <head><title>503 Service Temporarily Unavailable</title></head> <body> <center><h1>503 Service Temporarily Unavailable</h1></center> <hr><center>nginx</center> </body> </html>
Bash
복사

원인

ArgoCD는 기본적으로 TLS가 활성화된 상태로 설치된다. 따라서 HTTP로 요청이 들어오면 ArgoCD server가 HTTPS로 강제 리다이렉트한다. nginx-ingress를 통해 HTTP로 노출하더라도 ArgoCD 서버 자체의 TLS 설정이 유지되므로 TLS 설정을 하지 않은 상태에서 Web UI에 정상적으로 접근할 수 없다.

재현 조건

ArgoCD를 HTTP로 노출 (nginx-ingress + MetalLB, TLS 미적용)
ArgoCD의 TLS 설정을 비활성화하지 않은 상태

해결 방법

helm chart의 values를 수정한다.
configs.paramsserver.insecure: true를 설정하여 ArgoCD의 TLS를 비활성화하고, backend-protocolHTTP로 변경한다.
configs: params: server.insecure: true server: ingress: enabled: true hostname: "argocd.chaos-lab.local" ingressClassName: nginx annotations: nginx.ingress.kubernetes.io/backend-protocol: "HTTP"
YAML
복사
values를 적용하여 설치 및 업그레이드를 진행한다.
helm upgrade --install argocd argo/argo-cd \ --namespace argocd --create-namespace \ -f values/argocd/argocd-values.yaml
Bash
복사
적용 후 ConfigMap에 반영되었는지 확인한다.
kubectl get configmap argocd-cmd-params-cm -n argocd -o yaml | grep insecure # server.insecure: "true"
Bash
복사

예방

ArgoCD는 기본적으로 TLS가 활성화되어 있으므로 HTTP 환경에서는 TLS를 비활성화해야 한다. ingress를 통해 HTTP로 ArgoCD를 노출하는 경우 초기 설치 시 반드시 아래 설정을 values에 포함한다.
configs: params: server.insecure: true server: ingress: enabled: true hostname: "argocd.chaos-lab.local" ingressClassName: nginx annotations: nginx.ingress.kubernetes.io/backend-protocol: "HTTP"
YAML
복사

참고