ingress 관련메모

Posted by Albert 5Day 7Hour 32Min 38Sec ago [2025-12-10]

✅ 1. MetalLB IPAddressPool 이 의미하는 것

spec:
  addresses:
  - 192.168.56.20-192.168.56.40

이 IP들은 서버에 실제로 설정되는 IP가 아니라,

K8s에서 **LoadBalancer 타입의 서비스에 할당될 가상 IP(VIP)**이다.

즉:

  • 서버의 NIC(IP)는 그대로 (예: 192.168.56.10)
  • 서비스가 생성될 때 MetalLB가 Pool에서 하나를 꺼내 배정함 (예: 192.168.56.20)
  • 이를 ARP/NDP로 네트워크에 광고해서 외부에서 접근 가능하도록 해줌.

서버가 20~40까지 IP 21개를 써버리는 게 아님

→ 단지 “사용 가능한 IP 목록”을 MetalLB에게 준 것.

✅ 2. aaa.com, bbb.com 같은 도메인 운영은 어떻게 되는가?

Ingress 기반 운영에서는 LoadBalancer IP는 보통 1개면 충분하다.

도메인별로 IP를 따로 쓸 필요가 없음.

보통 구조는:

사용하는 실제 서버 IP

  • 서버 NIC IP (예: 192.168.56.10)
  • 도메인이 바인딩될 공인 IP / NAT IP (운영 환경)

K8s 외부 접근용 IP = MetalLB에서 1개 할당

예:

  • MetalLB 제공 LoadBalancer IP → 192.168.56.20

그럼 도메인을 다음처럼 설정하면 끝:

도메인A 레코드설명aaa.com192.168.56.20Ingress 통해 라우팅됨bbb.com192.168.56.20동일 Ingress Controller로 라우팅됨

✅ 3. 실제 Ingress 예시

ingress-aaa.yaml

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: aaa-ingress
spec:
  ingressClassName: nginx
  rules:
  - host: aaa.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: aaa-service
            port:
              number: 80

ingress-bbb.yaml

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: bbb-ingress
spec:
  ingressClassName: nginx
  rules:
  - host: bbb.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: bbb-service
            port:
              number: 80

같은 LoadBalancer IP(192.168.56.20)에 들어와도,

Ingress Controller가 Host 기반으로 트래픽을 분기함.

결론 (가장 중요한 핵심)

✔ 192.168.56.20~40 IP가 서버에 실제로 붙는 IP가 아니다

→ MetalLB가 LoadBalancer Service에 쓰기 위한 가상 IP Pool

✔ 도메인별로 별도의 IP가 필요하지 않음

→ 하나의 LoadBalancer IP만 있으면 여러 도메인 운영 가능

✔ DNS에 A레코드로 LoadBalancer IP만 등록하면 됨

→ ingress가 도메인별로 개별 서비스로 라우팅

✨ 운영 시 추천 구성

운영에서는 보통:

  • 서버 실제 IP: 192.168.56.10
  • MetalLB LoadBalancer IP(1개만 사용): 192.168.56.20
  • aaa.com → 192.168.56.20
  • bbb.com → 192.168.56.20

이 구성으로 수십 개 도메인이 모두 Ingress로 운영 가능.




LIST

Copyright © 2014 visionboy.me All Right Reserved.