도메인으로 들어온 요청을 서비스로 연결하는 Ingress YAML을 만듭니다.
Ingress는 규칙을 적어둔 설정일 뿐이고, 실제로 트래픽을 처리하는 것은 Ingress 컨트롤러입니다. nginx-ingress나 Traefik 같은 컨트롤러가 클러스터에 설치되어 있어야 하며, 없으면 Ingress를 만들어도 아무 일도 일어나지 않습니다.
설치된 컨트롤러 확인: kubectl get ingressclass
/api는 /api/users도 잡습니다. 대부분 이걸 씁니다./api는 /api/users를 잡지 않습니다.cert-manager가 설치되어 있다면 cert-manager.io/cluster-issuer 어노테이션만 붙이면 됩니다. cert-manager가 Let's Encrypt에 인증서를 요청하고, 발급된 인증서를 tls.secretName에 지정한 Secret으로 자동 저장합니다. Secret을 미리 만들 필요는 없습니다.
발급이 안 될 때는 아래 순서로 확인합니다.
kubectl get certificate -n 네임스페이스
kubectl describe certificate 이름 -n 네임스페이스
kubectl get challenge -A # 도전 과제가 막혀 있는지
가장 흔한 원인은 도메인 DNS가 아직 이 클러스터를 가리키지 않는 것입니다. Let's Encrypt가 해당 도메인으로 실제 접속해서 소유권을 확인하기 때문에, DNS A 레코드가 먼저 정확히 설정되어 있어야 합니다.
Traefik은 표준 Ingress도 지원하지만, 자체 CRD인 IngressRoute를 쓰면 더 세밀한 설정(미들웨어, 우선순위 등)이 가능합니다. 이 도구는 표준 Ingress를 생성합니다.
연결할 Service가 아직 없다면 Service 생성기를 먼저 사용하세요.