본문 바로가기
IT 개발/클라우드

[쿠버네티스] Ingress 완벽 가이드

by 이것 저것 모든것 2025. 2. 10.
728x90

1. Ingress 개요

Ingress는 클러스터 외부에서 클러스터 내부 서비스로의 HTTP와 HTTPS 경로를 노출하는 API 객체입니다. 트래픽 라우팅은 Ingress 리소스에 정의된 규칙에 의해 제어됩니다.

2. 기본 Ingress 구성

2.1 단일 서비스 Ingress

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: minimal-ingress
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  ingressClassName: nginx
  rules:
  - http:
      paths:
      - path: /testpath
        pathType: Prefix
        backend:
          service:
            name: test
            port:
              number: 80

2.2 다중 서비스 Ingress

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: multiple-paths
spec:
  ingressClassName: nginx
  rules:
  - host: myapp.example.com
    http:
      paths:
      - path: /api
        pathType: Prefix
        backend:
          service:
            name: api-service
            port:
              number: 8080
      - path: /web
        pathType: Prefix
        backend:
          service:
            name: web-service
            port:
              number: 80
728x90

3. TLS 설정

3.1 TLS 인증서 설정

apiVersion: v1
kind: Secret
metadata:
  name: testsecret-tls
  namespace: default
type: kubernetes.io/tls
data:
  tls.crt: base64_encoded_cert
  tls.key: base64_encoded_key

3.2 TLS Ingress

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: tls-example
spec:
  tls:
  - hosts:
      - secure.example.com
    secretName: testsecret-tls
  rules:
  - host: secure.example.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: service1
            port:
              number: 80

4. 고급 설정

4.1 세션 어피니티

metadata:
  annotations:
    nginx.ingress.kubernetes.
728x90