The product described by this documentation, Anthos Clusters on AWS (previous generation), is now in maintenance mode. All new installs must use the current generation product, Anthos clusters on AWS.
ワークロードは、DNS 名を使用して外部サービス(example.net など)にもアクセスします。Kubernetes での DNS の動作の詳細については、Service と Pod の DNS をご覧ください。
CoreDNS
GKE on AWS は、CoreDNS を使用してクラスタ内の DNS 名を解決します。CoreDNS は、スケーリングされた冗長な Deployment として kube-system Namespace 内で実行されます。CoreDNS Deployment の Service が CoreDNS Pod をグループ化し、単一の IP アドレスを割り当てます。CoreDNS Deployment は、クラスタのサイズと使用状況に基づいてスケーリングされます。
NodeLocal DNSCache
GKE on AWS は NodeLocal DNSCache を使用して、DNS ルックアップのパフォーマンスを向上させます。NodeLocal DNSCache は、クラスタ内の各ノードで DaemonSet として動作します。Pod が DNS リクエストを行うと、そのリクエストはまず同じノードの DNS キャッシュに送信されます。キャッシュで DNS リクエストを解決できない場合、リクエストはキャッシュによって次のいずれかに転送されます。
[[["わかりやすい","easyToUnderstand","thumb-up"],["問題の解決に役立った","solvedMyProblem","thumb-up"],["その他","otherUp","thumb-up"]],[["わかりにくい","hardToUnderstand","thumb-down"],["情報またはサンプルコードが不正確","incorrectInformationOrSampleCode","thumb-down"],["必要な情報 / サンプルがない","missingTheInformationSamplesINeed","thumb-down"],["翻訳に関する問題","translationIssue","thumb-down"],["その他","otherDown","thumb-down"]],["最終更新日 2025-08-30 UTC。"],[],[],null,["# Service discovery and DNS\n\nThis topic describes how GKE on AWS interacts with Domain Name\nServices (DNS) on both your AWS Virtual Private Cloud (VPC) and clusters.\n\nAWS VPC DNS\n-----------\n\nThis section describes how you can configure an AWS Virtual Private Cloud (VPC)\nfor GKE on AWS.\n\n### Configuring VPC DNS\n\nGKE on AWS supports a variety of DNS configurations in your AWS VPC.\nYou configure your VPC's DNS settings when you\n[Create a DHCP options set](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_DHCP_Options.html#CreatingaDHCPOptionSet).\nFor more information, see\n[DNS support for your VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html).\n\nYou can configure the following options:\n\nDNS Hostnames\n: This sets whether EC2 instances with public IP addresses get corresponding\n public DNS hostnames. You set this value using the `enableDNSHostnames`\n field in your VPC's DHCP option set. For more information, see\n [VPC DNS Hostnames](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html#vpc-dns-hostnames)\n and\n [DHCP options sets for your VPC](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_DHCP_Options.html).\n\nEC2 DNS Hostnames\n: This sets whether EC2 instances receive a default DNS hostname or a custom\n DNS hostname.\n\nDNS server\n: Whether your VPC's DHCP options set uses either the AWS Route53 DNS server\n (with the `AmazonProvidedDNS` option), or a hosted DNS server.\n\n#### Supported VPC DNS configurations\n\nThe following table includes DNS configurations supported by\nGKE on AWS:\n\nService discovery\n-----------------\n\nService discovery is the process where workloads discover services without\nknowing their IP address. This section describes how\nGKE on AWS implements service discovery and managed DNS.\n\nKubernetes automatically generates service names that use the following\n[specification](https://github.com/kubernetes/dns/blob/master/docs/specification.md):\n\n\u003cvar translate=\"no\"\u003eservice\u003c/var\u003e`.`\u003cvar translate=\"no\"\u003enamespace\u003c/var\u003e`.svc.`\u003cvar translate=\"no\"\u003ezone\u003c/var\u003e\n\nWhere:\n\n- \u003cvar translate=\"no\"\u003eservice\u003c/var\u003e: your service's name\n- \u003cvar translate=\"no\"\u003enamespace\u003c/var\u003e: your service's Namespace\n- \u003cvar translate=\"no\"\u003ezone\u003c/var\u003e: your service's AWS zone\n\nWorkloads also access external services--- for example `example.net`---\nusing DNS names. For more information on the behavior of DNS in Kubernetes, see\n[DNS for Services and Pods](https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/).\n\n### CoreDNS\n\nGKE on AWS uses\n[CoreDNS](https://kubernetes.io/blog/2018/07/10/coredns-ga-for-kubernetes-cluster-dns/)\nto resolve DNS names within clusters. CoreDNS runs as a redundant, scaled\n[Deployment](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/)\nin the `kube-system`\nnamespace. The CoreDNS deployment has a\n[Service](/kubernetes-engine/docs/concepts/service) that groups the CoreDNS Pods\nand gives them a single IP address. The CoreDNS Deployment scales with the\ncluster's size and usage.\n\n### NodeLocal DNSCache\n\nGKE on AWS uses\n[NodeLocal DNSCache](https://kubernetes.io/docs/tasks/administer-cluster/nodelocaldns/)\nto improve DNS lookup performance. NodeLocal DNSCache runs as a\n[DaemonSet](https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/)\non each node in your cluster. When a Pod makes a DNS request, the request first\ngoes to the DNS cache on the same node. If the cache can't resolve the DNS\nrequest, the cache forwards the request to either:\n\n- CoreDNS for an internal name--- for example `foo.bar.svc.cluster.local`\n- The [Amazon DNS server](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html#vpc-dns-support), for an external name--- for example `example.net`\n\n### Calico\n\nGKE on AWS uses Calico to establish\n[BGP](https://wikipedia.org/wiki/Border_Gateway_Protocol) routing\nbetween cluster nodes.\n| **Note:** For Calico to function correctly, GKE on AWS deploys Pods such as `calico-node` to your nodes. These Pods have elevated [RBAC permissions](https://kubernetes.io/docs/reference/access-authn-authz/authorization/#determine-the-request-verb), such as the ability to update or patch all Pods and nodes. These permissions are required to interpret Kubernetes objects and program network topologies based on your configuration.\n\nWhat's next\n-----------\n\n- Read about AWS [DNS support for your VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html).\n- For an overview of how DNS is used in Kubernetes clusters, see [DNS for Services and Pods](https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/)."]]