이 페이지에서는 Google Kubernetes Engine(GKE) 내에서 예약된 hostPorts 목록을 설명합니다.
GKE 시스템 예약된 hostPorts
GKE는 내부 시스템 프로세스 및 서비스에 특정 hostPort
범위를 예약합니다. 이러한 예약은 GKE 클러스터의 안정성과 기능을 유지하는 데 매우 중요합니다. GKE는 일반적으로 잠재적인 충돌 및 보안 위험으로 인해 사용자 애플리케이션에 hostPort
를 사용하지 않는 것이 좋지만 내부 작업에는 이를 사용합니다.
예약된 hostPorts의 목적
- 컨트롤 플레인 통신: kubelet 및 metrics-server와 같은 특정 GKE 구성요소는 제어 영역 또는 기타 내부 서비스와 통신하기 위해 특정 hostPorts를 사용할 수 있습니다.
- 시스템 데몬: GKE 시스템 데몬 및 에이전트는 모니터링, 로깅 또는 기타 운영 작업을 위해 노드의 특정 포트에 액세스해야 할 수 있습니다.
- 내부 서비스: 클러스터 관리 및 상태 확인을 담당하는 GKE의 내부 서비스는 예약된 hostPorts를 사용할 수 있습니다.
예약된 범위 이해하기
정확한 범위는 GKE 버전 및 구성에 따라 다를 수 있지만 GKE는 사용 가능한 포트 공간의 일부를 예약합니다. 이러한 예약된 범위는 변경될 수 있으므로 일반적으로 외부 사용자 사용을 위해 문서화되지 않습니다. 낮은 번호의 포트는 일반적으로 운영체제에서 예약하므로 사용하지 않는 것이 매우 중요합니다.
권장사항
권장사항:
- hostPort 사용 피하기: 애플리케이션 배포에서 hostPort 사용을 최소화하여 GKE의 예약된 포트와 충돌할 위험을 줄입니다.
- 서비스 추상화: Kubernetes 서비스 유형(NodePort, LoadBalancer, Ingress)을 hostPort의 대안으로 사용합니다.
- 보안 검토: hostPort를 피할 수 없는 경우 노출된 포트에 대한 액세스를 제한하도록 방화벽 규칙을 신중하게 검토하고 구현합니다.
- Autopilot 고려사항: GKE Autopilot을 사용할 때는 정확한 hostPorts를 지정할 수 없습니다.
예약된 hostPorts 목록
구성요소 | 예약된 호스트 포트 |
---|---|
CNI / DPv2 | 9990, 6942, 9890, 4244, 9965 |
kubelet | 4194, 10248, 10250, 10255 |
kube-proxy | 10249, 10256 |
node-problem-detector | 20256 |
fluentbit | 2020, 2021 |
stackdriver-metadata-agent | 8799 |
sunrpc(로컬 NFS 마운트) | 665 - 986 |
Filestore | 990 |
k8s-metadata-proxy / gke-metadata-server | 987, 988, 989 |
node-local-dns | 53, 8080, 9253, 9353 |
gcfsd | 11253 |
네트워크 정책 Antrea | 10349, 10350, 10351, 10352 |
network-metering-agent | 47082, 47083 |
configconnector | 8888, 48797 |
gke-spiffe | 9889 |
workload-identity-webhook | 9910 |
GKE 측정항목 에이전트 | 8200, 8201, 8202, 8203 |
GPU 기기 플러그인 | 2112 |
runsc(gVisor / GKE Sandbox) | 9115 |
containerd | 1338 |
GKE 측정항목 수집기 | 11123 |
netd | 10231 |
Autopilot에만 해당하는 예약된 hostPorts 목록
구성요소 | 예약된 HostPorts |
---|---|
Autopilot Splunk 에이전트 | 8006, 14250, 14268, 4317, 9080, 9943, 9411 |
Autopilot Datadog 모니터링 에이전트 | 8125, 8126 |
다음 단계
- GKE에서의 네트워킹 개요 읽어보기
- Kubernetes 서비스 알아보기
- 애플리케이션 노출에 대해 알아보기