날씨 정보를 불러오는 중...

Ingress 생성기

도메인으로 들어온 요청을 서비스로 연결하는 Ingress YAML을 만듭니다.

ingress.yaml
Ingress만 만들면 동작하지 않습니다

Ingress는 규칙을 적어둔 설정일 뿐이고, 실제로 트래픽을 처리하는 것은 Ingress 컨트롤러입니다. nginx-ingress나 Traefik 같은 컨트롤러가 클러스터에 설치되어 있어야 하며, 없으면 Ingress를 만들어도 아무 일도 일어나지 않습니다.

설치된 컨트롤러 확인: kubectl get ingressclass

pathType 세 가지
  • Prefix — 경로가 이걸로 시작하면 매칭. /api/api/users도 잡습니다. 대부분 이걸 씁니다.
  • Exact — 정확히 일치할 때만. /api/api/users를 잡지 않습니다.
  • ImplementationSpecific — 컨트롤러가 알아서 해석. 정규식을 쓰는 nginx 설정 등에 씁니다.
TLS 인증서는 어떻게 발급되나요?

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을 쓴다면

Traefik은 표준 Ingress도 지원하지만, 자체 CRD인 IngressRoute를 쓰면 더 세밀한 설정(미들웨어, 우선순위 등)이 가능합니다. 이 도구는 표준 Ingress를 생성합니다.

연결할 Service가 아직 없다면 Service 생성기를 먼저 사용하세요.

← 도구 전체 보기