このページでは、Google Kubernetes Engine(GKE)でのクラスタの作成に関する問題を解決する方法について説明します。
Kubernetes クラスタに関する一般的な問題については、Kubernetes ドキュメントのクラスタのトラブルシューティングをご覧ください。
エラー: 制約 constraints/compute.vmExternalIpAccess に違反
一般公開の GKE クラスタを作成しようとしたときに、次のようなエラーが発生することがあります。
Constraint constraints/compute.vmExternalIpAccess violated for project
この影響を受けるのは一般公開の GKE クラスタのみであり、これには GKE Autopilot クラスタも含まれます。
一般公開の GKE クラスタを作成すると、基盤となる Compute Engine VM(これらがこのクラスタのワーカーノードとなります)に外部 IP アドレスが割り当てられます。組織ポリシー制約 constraints/compute.vmExternalIpAccess
が Deny All
に構成されている場合、または外部 IP アドレスを持つのが特定の VM インスタンスのみとなるように組織、フォルダ、またはプロジェクトのレベルで制限されている場合は、このポリシーが原因で GKE ワーカーノードが外部 IP アドレスを取得できなくなり、その結果としてクラスタ作成に失敗します。
クラスタ作成オペレーションのログを見つけるには、ログ エクスプローラで次のような検索クエリを使用して GKE クラスタ オペレーションの監査ログを調べます。
resource.type="gke_cluster"
logName="projects/test-last-gke-sa/logs/cloudaudit.googleapis.com%2Factivity"
protoPayload.methodName="google.container.v1beta1.ClusterManager.CreateCluster"
resource.labels.cluster_name="CLUSTER_NAME"
resource.labels.project_id="PROJECT_ID"
次のように置き換えます。
CLUSTER_NAME
: 作成されなかったクラスタの名前。PROJECT_ID
: プロジェクト ID。
この問題を解決するには、GKE 一般公開クラスタを作成しようとしているプロジェクトで制約 constraints/compute.vmExternalIpAccess
の実効ポリシーが Allow All
であることを確認してください。この制約の使用方法については、外部 IP アドレスを特定の VM インスタンスに制限するをご覧ください。
この制約を Allow All
に設定した後に、失敗したクラスタを削除して新しいクラスタを作成します。これが必要になるのは、失敗したクラスタの修復が不可能であるためです。
次のステップ
さらにサポートが必要な場合は、Cloud カスタマーケアにお問い合わせください。