このページでは、Cloud DNS を使用して Google Kubernetes Engine クラスタ スコープを構成する方法について説明します。
Cloud DNS を使用して GKE クラスタ スコープ DNS ゾーンを構成するには、まず既存の限定公開 DNS ゾーンを選択するか、特定の GKE クラスタを接続する新しい限定公開 DNS ゾーンを作成します。次に、GKE クラスタの名前を参照するように DNS ゾーンを構成します。
スコープの詳細については、スコープと階層をご覧ください。
このタスクに必要な権限
このタスクを実行するには、次の権限または次の IAM のロールが付与されている必要があります。
権限
dns.managedZones.create
- マネージド ゾーンを作成するdns.managedZones.list
- マネージド ゾーンを一覧表示するdns.gkeClusters.bindPrivateDNSZone
- GKE クラスタ スコープを構成するdns.managedZones.update
: マネージド ゾーンを更新するdns.managedZones.list
- マネージド ゾーンを一覧表示するdns.managedZones.patch
: マネージド ゾーンを更新する
ロール
roles/dns.admin
GKE クラスタの限定公開ゾーンを作成する
Cloud DNS を使用して GKE クラスタに新しい限定公開マネージド ゾーンを作成するには、次の手順を行います。
gcloud dns managed-zones create
コマンドを実行します。
gcloud dns managed-zones createNAME \ --dns-name=DNS_NAME \ --visibility=private \ --gkeclusters=GKE_CLUSTER
以下を置き換えます。
NAME
: ゾーンの名前DNS_NAME
: ゾーンの DNS サフィックス(例:example.private.
)GKE_CLUSTER
: GKE クラスタの完全修飾されたリソースパス(例:projects/my-project/locations/us-east1a/clusters/my-cluster
)
managedZones.create
メソッドを使用して、POST
リクエストを送信します。
POST https://dns.googleapis.com/dns/v1/projects/PROJECT_ID /managedZones { "name": "NAME ", "description": "DESCRIPTION ", "dnsName": "DNS_NAME ", "visibility": "private" "privateVisibilityConfig": { "kind": "dns#managedZonePrivateVisibilityConfig", "gkeClusters": [{ "kind": "dns#managedZonePrivateVisibilityConfigGKEClusters", "gkeClusterName":GKE_CLUSTER_NAME_1 }, { "kind": "dns#managedZonePrivateVisibilityConfigGKEClusters", "gkeClusterName":GKE_CLUSTER_NAME_2 }, .... ] } }
以下を置き換えます。
PROJECT_ID
: マネージド ゾーンを作成したプロジェクトの IDNAME
: ゾーンの名前DESCRIPTION
: ゾーンの説明DNS_NAME
: ゾーンの DNS サフィックス(例:example.private.
)GKE_CLUSTER_NAME_1
とGKE_CLUSTER_NAME_2
: GKE クラスタの完全修飾されたリソースパス(例:projects/my-project/locations/us-east1a/clusters/my-cluster
)
GKE クラスタに Cloud DNS 限定公開ゾーンへのクエリを許可する
GKE クラスタに既存の Cloud DNS 限定公開ゾーンへのクエリを許可するには、次の操作を行います。
gcloud dns managed-zones update
コマンドを実行します。
gcloud dns managed-zones updateNAME \ --gkeclusters=GKE_CLUSTER
以下を置き換えます。
NAME
: ゾーンの名前(例:my-zone
)GKE_CLUSTER
: GKE クラスタの完全修飾されたリソースパス(例:projects/my-project/locations/us-east1a/clusters/my-cluster
)
managedZones.patch
メソッドを使用して、PATCH
リクエストを送信します。
PATCH https://dns.googleapis.com/dns/v1/projects/PROJECT_ID /managedZones/NAME { "privateVisibilityConfig": { "gkeClusters": [{ "kind": "dns#managedZonePrivateVisibilityConfigGKEClusters", "gkeClusterName":GKE_CLUSTER_NAME_1 }, { "kind": "dns#managedZonePrivateVisibilityConfigGKEClusters", "gkeClusterName":GKE_CLUSTER_NAME_2 }, .... ] } }
以下を置き換えます。
PROJECT_ID
: マネージド ゾーンを作成したプロジェクトの IDNAME
: ゾーンの名前(例:my-zone
)GKE_CLUSTER_NAME_1
とGKE_CLUSTER_NAME_2
: GKE クラスタの完全修飾されたリソースパス(例:projects/my-project/locations/us-east1a/clusters/my-cluster
)
レスポンス ポリシーをクエリするように GKE クラスタを構成する
レスポンス ポリシーをクエリするように GKE クラスタを構成するには、次の手順を行います。
gcloud dns response-policies create
コマンドを実行します。
gcloud dns response-policies createNAME \ --description=DESCRIPTION \ --gkeclusters=GKE_CLUSTER
以下を置き換えます。
NAME
: レスポンス ポリシーの名前(例:my-response-policy
)DESCRIPTION
: レスポンス ポリシーの説明(例:"my-response-policy-for-gke-5"
)GKE_CLUSTER
: GKE クラスタの完全修飾されたリソースパス(例:projects/my-project/locations/us-east1a/clusters/my-cluster
)
responsePolicies.create
メソッドを使用して、POST
リクエストを送信します。
POST https://dns.googleapis.com/dns/v1/projects/PROJECT_ID /responsePolicies { "responsePolicyName": "NAME ", "description": "DESCRIPTION", "gkeClusters": [ { "kind": "dns#responsePolicyGKECluster", "gkeClusterName": "GKE_CLUSTER " }, ] }
以下を置き換えます。
NAME
: レスポンス ポリシーの名前(例:my-response-policy
)DESCRIPTION
: レスポンス ポリシーの説明(例:my-response-policy-for-gke-5
)GKE_CLUSTER
: GKE クラスタの完全修飾されたリソースパス(例:projects/my-project/locations/us-east1a/clusters/my-cluster
)
次のステップ
- Cloud DNS の使用時に発生する可能性のある一般的な問題の解決策については、トラブルシューティングをご覧ください。
- Cloud DNS のレスポンス ポリシーとルールの詳細については、レスポンス ポリシーとルールを管理するをご覧ください。
- オペレーションの監査ログを表示するには、マネージド ゾーンでオペレーションを表示するをご覧ください。