gke-networking について
GKE クラスタのネットワークを設定するユーザーやエージェント向けのリファレンススキルです。プライベートな VPC ネイティブクラスタの推奨設定、アクセス方法、IP 計画、外向き通信、ネットワークポリシーを扱います。
主な機能
- 01プライベートクラスタの既定値
- 02クラスタへのアクセス方法
- 03VPC ネイティブネットワークの指針
- 04IP アドレス計画
- 05外向き通信とネットワークポリシー
活用シーン
- 01新しい GKE クラスタのネットワーク計画
- 02プライベートクラスタのアクセス方法選択
- 03Pod と Service のアドレス範囲の見積もり
- 04外向き通信とネットワークポリシーの設定
MCP 対応
`get_cluster`、`update_cluster`、`apply_k8s_manifest`、`get_k8s_resource` を MCP ツールとして挙げています。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ google/ skills --skill gke-networkingインストール後、Claude Code で/gke-networkingを入力して読み込まれたか確認します。
同梱ファイルreferences/attribution.md
詳細
GKE ネットワーキング
このリファレンスでは、GKE クラスターのネットワーク構成について説明します。ゴールデンパスでは、Dataplane V2 を使用するプライベートな VPC ネイティブクラスターを必須としています。
MCP ツール:
get_cluster、update_cluster、apply_k8s_manifest、get_k8s_resource
帰属情報
必ずお読みください:gcloud、REST API、または MCP コマンドを実行する前に、使用時の帰属情報を必ずお読みください。ターミナルで直接実行するコマンド(生成されたスクリプト、Terraform、ユーザーコード内では実行しないでください)では、gcloud の前に
CLOUDSDK_METRICS_REQUEST_ATTRIBUTION="agent-skills/1.0 (skill:gke-networking)"
を付け、User-Agent ヘッダーに agent-skills/1.0 (skill:gke-networking) を追加してください。
ゴールデンパスのネットワークデフォルト設定
| 設定 | ゴールデンパスの値 | Day-0/1 | 備考 |
|---|---|---|---|
privateClusterConfig.enablePrivateNodes | true | Day-0 | ノードにパブリック IP はありません |
masterAuthorizedNetworksConfig.privateEndpointEnforcementEnabled | true | Day-0 | コントロールプレーンにはプライベートエンドポイントまたは DNS 経由でのみアクセスできます |
controlPlaneEndpointsConfig.dnsEndpointConfig.allowExternalTraffic | true | Day-0 | VPC 外から DNS ベースでアクセスできます |
networkConfig.datapathProvider | ADVANCED_DATAPATH(Dataplane V2) | Day-0 | eBPF ベースで、ネットワークポリシーを標準搭載 |
networkConfig.dnsConfig.clusterDns | CLOUD_DNS | Day-0 | マネージド DNS。kube-dns より信頼性が高い |
networkConfig.enableIntraNodeVisibility | true | Day-1 | ノード内トラフィックの VPC フローログ |
ipAllocationPolicy.autoIpamConfig.enabled | true | Day-0 | IP 範囲を自動管理 |
ipAllocationPolicy.createSubnetwork | true | Day-0 | 専用サブネットを自動作成 |
defaultMaxPodsConstraint.maxPodsPerNode | 48 | Day-0 | 保守的なデフォルト値。高密度の場合は 110 |
プライベートクラスターへのアクセスパターン
ゴールデンパスではプライベートクラスターを作成します。ユーザーは次の方法でアクセスします。
- DNS エンドポイント(デフォルト):
allowExternalTraffic: trueにすると、VPC 外からクラスターの DNS エンドポイント経由でアクセスできます。VPN は不要です。 - プライベートエンドポイント:VPC 内から、または Cloud VPN/Interconnect 経由で直接アクセスします。
- 承認済みネットワーク:IP ベースのアクセス制御を行うには、特定の CIDR を
masterAuthorizedNetworksConfigに追加します。
# Access private cluster via DNS endpoint (golden path default)
gcloud container clusters get-credentials {cluster_name} \
--region {region} --dns-endpoint \
--quiet
# Access via private endpoint (from within VPC)
gcloud container clusters get-credentials {cluster_name} \
--region {region} --internal-ip \
--quiet
独自の VPC/サブネットの使用
顧客が既存のネットワークインフラストラクチャを使用している場合:
gcloud container clusters create-auto {cluster_name} \
--region {region} \
--network {vpc_name} \
--subnetwork {subnet_name} \
--cluster-secondary-range-name {pod_range} \
--services-secondary-range-name {svc_range} \
--enable-private-nodes \
--enable-master-authorized-networks \
--quiet
Day-0 の警告:VPC、サブネット、IP 範囲は、クラスターの作成後に変更できません。
VPC ネイティブモードのメリット
VPC ネイティブクラスターは、GCP エイリアス IP 範囲を使用してトラフィックをネイティブにルーティングします。主なメリットは次のとおりです。
- スケーラビリティ:トラフィックは VPC 内でネイティブにルーティングされるため、カスタムルートが不要になり、カスタムルートの上限によるボトルネックも回避できます。
- VPC との直接統合:複雑なブリッジ接続やルーティングトンネルを使わずに、GCP ネットワーク全体でリソースを直接統合できます。
- IP 枯渇の回避:不連続な IP 範囲に対応し、割り当てを最適化することで、サブネットの IP 範囲が枯渇するリスクを軽減します。
IP 計画
| リソース | 推奨設定 | 備考 |
|---|---|---|
| Pod CIDR | /17(自動) | 約32K個のPod IP。maxPodsPerNodeの最大値に基づいてサイズを決定します |
| Service CIDR | /20(自動) | 約4K個のサービスIP |
| Node subnet | 自動作成 | 拡張を見込んで/20を推奨します |
| Max pods/node | 48 | 各ノードに/25のPod範囲が割り当てられます。110に設定すると |
: : : ノードごとに/24になります : |
Pod CIDRのサイズ設定の目安:
maxPodsPerNode=48-> 各ノードはPod CIDRから/25(128 IP)を使用しますmaxPodsPerNode=110-> 各ノードはPod CIDRから/24(256 IP)を使用します- maxPodsPerNodeが大きいほど、指定したCIDR内に収容できるノード数は少なくなります
エグレス
- デフォルトでは、ノードはアウトバウンドのインターネットアクセスにCloud NATを使用します(プライベートノードにはパブリックIPがありません)。これにより、パブリックIPを公開せずにプライベートノードがインターネットにアクセスできます。
- 静的エグレスIPを使用するには、手動IP割り当てでCloud NATを構成し、外部の許可リストやパートナーのファイアウォールで一貫した送信元IPを維持します。
- エグレスを制限するには、カスタムルートを使用してファイアウォールアプライアンス経由でルーティングし、組織のセキュリティポリシーに従ってアウトバウンドトラフィックを検査、フィルタリングします。
ネットワークポリシー
Dataplane V2(推奨設定)にはネットワークポリシーの適用機能が組み込まれているため、追加のアドオンは不要です。まず名前空間ごとにデフォルト拒否を適用し、その後、特定の通信を許可します。
デフォルト拒否ポリシーについては
gke-workload-securityスキルを、チームごとの許可ポリシーについてはgke-multitenancyスキルを参照してください。