This page describes how to use Cloud DNS to configure a Google Kubernetes Engine cluster scope.
To configure a GKE cluster-scoped DNS zone using Cloud DNS, create or choose a private DNS zone in the same project as the GKE cluster that will use the DNS zone and then configure the DNS zone to reference the cluster's name.
To learn more about scopes, see Scopes and hierarchies.
Create a private zone for the GKE cluster
To create a new managed private zone using Cloud DNS for the GKE cluster, complete the following step.
gcloud
Run the
gcloud dns managed-zones create command:
gcloud dns managed-zones create NAME \
--dns-name=DNS_NAME \
--visibility=private \
--gkeclusters=GKE_CLUSTER
Replace the following:
NAME: a name for your zoneDNS_NAME: the DNS suffix for your zone, such asexample.private.GKE_CLUSTER: the fully qualified resource path of a GKE cluster, such asprojects/my-project/locations/us-east1a/clusters/my-cluster
API
Send a POST request by using the
managedZones.create method:
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
},
....
]
}
}
Replace the following:
PROJECT_ID: the ID of the project where you have created the managed zoneNAME: a name for your zoneDESCRIPTION: a description for your zoneDNS_NAME: the DNS suffix for your zone, such asexample.private.GKE_CLUSTER_NAME_1andGKE_CLUSTER_NAME_2: the fully qualified resource path of a GKE cluster, such asprojects/my-project/locations/us-east1a/clusters/my-cluster
Authorize the GKE cluster to query a Cloud DNS private zone
To authorize the GKE cluster to query an existing Cloud DNS private zone, complete the following step.
gcloud
Run the
gcloud dns managed-zones update command:
gcloud dns managed-zones update NAME \
--gkeclusters=GKE_CLUSTER
Replace the following:
NAME: the name of your zone, such asmy-zoneGKE_CLUSTER: the fully qualified resource path of a GKE cluster, such asprojects/my-project/locations/us-east1a/clusters/my-cluster
API
Send a PATCH request by using the
managedZones.patch method:
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
},
....
]
}
}
Replace the following:
PROJECT_ID: the ID of the project where you have created the managed zoneNAME: the name of your zone, such asmy-zoneGKE_CLUSTER_NAME_1andGKE_CLUSTER_NAME_2: the fully qualified resource path of a GKE cluster, such asprojects/my-project/locations/us-east1a/clusters/my-cluster
Configure the GKE cluster to query a response policy
To configure the GKE cluster to query a response policy, complete the following step.
gcloud
Run the
gcloud dns response-policies create command:
gcloud dns response-policies create NAME \
--description=DESCRIPTION \
--gkeclusters=GKE_CLUSTER
Replace the following:
NAME: a name for your response policy, such asmy-response-policyDESCRIPTION: a description for your response policy, such as"my-response-policy-for-gke-5"GKE_CLUSTER: the fully qualified resource path of a GKE cluster, such asprojects/my-project/locations/us-east1a/clusters/my-cluster
API
Send a POST request by using the
responsePolicies.create method:
POST https://dns.googleapis.com/dns/v1/projects/PROJECT_ID/responsePolicies
{
"responsePolicyName": "NAME",
"description": "DESCRIPTION",
"gkeClusters": [
{
"kind": "dns#responsePolicyGKECluster",
"gkeClusterName": "GKE_CLUSTER"
},
]
}
Replace the following:
NAME: a name for your response policy, such asmy-response-policyDESCRIPTION: a description for your response policy, such asmy-response-policy-for-gke-5GKE_CLUSTER: the fully qualified resource path of a GKE cluster, such asprojects/my-project/locations/us-east1a/clusters/my-cluster
What's next
- To find solutions for common issues that you might encounter when using Cloud DNS, see Troubleshooting.
- To learn more about Cloud DNS response policies and rules, see Manage response policies and rules.
- To display an audit log of operations, see View operations on managed zones.