予約済みの hostPort

このページでは、Google Kubernetes Engine(GKE)内の予約済み hostPort のリストについて説明します。

GKE システムが予約した hostPort

GKE は、内部システム プロセスとサービスに特定の hostPort 範囲を予約します。これらの予約は、GKE クラスタの安定性と機能を維持するために重要です。通常、GKE では、競合やセキュリティ リスクの可能性があるため、ユーザー アプリケーションで hostPort を使用することは推奨されませんが、内部オペレーションでは依存しています。

予約済みの hostPort の目的

  • コントロール プレーンの通信: kubelet や metrics-server などの特定の GKE コンポーネントは、コントロール プレーンや他の内部サービスとの通信に特定の hostPort を使用する場合があります。
  • システム デーモン: GKE システム デーモンとエージェントは、モニタリング、ロギング、その他のオペレーション タスクのために、ノードの特定のポートにアクセスする必要がある場合があります。
  • 内部サービス: クラスタ管理とヘルスチェックを担当する GKE の内部サービスは、予約済みの hostPort を使用する場合があります。

予約済みの範囲について

正確な範囲は GKE のバージョンと構成によって異なりますが、GKE は使用可能なポートスペースの一部を予約します。これらの予約済み範囲は変更される可能性があるため、通常は外部ユーザー向けにドキュメント化されていません。番号の小さいポートは通常、オペレーティング システムによって予約されるため、使用しないことが重要です。

ベスト プラクティス

ベスト プラクティス:

  • hostPort の使用を避ける: アプリケーションのデプロイで hostPort の使用を最小限に抑えて、GKE の予約済みポートとの競合のリスクを軽減します。
  • Service 抽象化: hostPort の優先代替として Kubernetes Service タイプ(NodePort、LoadBalancer、Ingress)を使用します。
  • セキュリティの精査: hostPort が避けられない場合は、公開されているポートへのアクセスを制限するようにファイアウォール ルールを慎重に確認して実装します。
  • Autopilot の考慮事項: GKE Autopilot を使用する場合は、正確な hostPort を指定できないことに注意してください。

予約済みの hostPort のリスト

コンポーネント 予約済みの hostPort
CNI / DPv2 9990, 6942, 9890, 4244, 9965
kubelet 4194, 10248, 10250, 10255
kube-proxy 10249, 10256
node-problem-detector 20256
Fluent Bit 2020, 2021
Stackdriver Metadata エージェント 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
ネットワーク メータリング エージェント 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 に固有の予約済み hostPort のリスト

コンポーネント 予約済みの hostPort
Autopilot Splunk エージェント 8006, 14250, 14268, 4317, 9080, 9943, 9411
Autopilot Datadog Monitoring エージェント 8125, 8126

次のステップ