파드의 호스트 네트워크 네임스페이스 공유

호스트 네트워크가 필요하지 않은 파드에는 별도 네트워크 네임스페이스를 사용하세요.

설명

host_network = true는 파드가 노드의 네트워크 네임스페이스와 IP·포트 공간을 공유하도록 합니다. 일반 파드보다 호스트 네트워크와의 분리가 약해지고 포트 충돌이나 원치 않는 서비스 노출이 발생할 수 있습니다. 외부에서 실제로 연결할 수 있는지는 라우팅과 방화벽 등에 따라 달라지며, hostNetwork 파드에 대한 NetworkPolicy 처리는 네트워크 플러그인에 따라 다릅니다.

잠재적 영향

  • 노드 인터페이스에 바인딩된 서비스가 의도보다 넓은 범위에 노출될 수 있습니다.
  • 포트 충돌이나 호스트 네트워크 접근으로 다른 서비스에 영향을 줄 수 있습니다.

해결 방법

  • 일반 워크로드에는 host_network = false를 사용하고 필요한 공개 경로는 Service나 Ingress로 명시적으로 구성하세요.
  • 호스트 네트워크가 필요한 시스템 워크로드는 예외를 제한하고 실제 바인딩 주소·포트, 방화벽, 인증과 적용 가능한 네트워크 정책을 확인하세요.

예시

기존 Pod의 네트워크 공유 설정만 비교합니다. 이미지와 서비스 공개 경로는 실제 운영 환경에 맞춰 별도로 검토하세요.

변경 전

hcl
resource "kubernetes_pod" "pod" {
  metadata {
    name = "terraform-example"
  }

  spec {
    host_network = true

    container {
      image = "nginx:1.7.9"
      name  = "example"
    }
  }
}

변경 후

hcl
resource "kubernetes_pod" "pod" {
  metadata {
    name = "terraform-example"
  }

  spec {
    host_network = false

    container {
      image = "nginx:1.7.9"
      name  = "example"
    }
  }
}

설명:

  • 변경 전: 호스트의 네트워크 네임스페이스를 공유합니다.
  • 변경 후: 호스트 네트워크 공유를 비활성화합니다. 이 설정만으로 모든 외부 노출 경로가 제거되는 것은 아닙니다.

참조