サービス ディスカバリと DNS の概要
このトピックでは、GKE on Azure が Domain Name Services(DNS)とやり取りする方法について説明します。
サービス ディスカバリ
サービス ディスカバリとは、ワークロードがサービスの IP アドレスの情報を使用せずにサービスを検出するプロセスです。このセクションでは、GKE on AWS がサービス ディスカバリとマネージド DNS を実装する方法について説明します。
Kubernetes は、次の仕様を使用するサービス名を自動的に生成します。
service.namespace.svc.cluster.local
ここで
service
: サービスの名前namespace
: サービスの Namespace
ワークロードは、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 リクエストを解決できない場合、リクエストはキャッシュによって次のいずれかに転送されます。
- 内部名(
foo.bar.svc.cluster.local
など)の場合は CoreDNS
次のステップ
- Kubernetes クラスタで DNS が使用される仕組みの概要については、Service と Pod の DNS をご覧ください。