GKE on AWS の新しいバージョンが 11 月 2 日にリリースされました。詳細については、リリースノートをご覧ください。

サービス ディスカバリと DNS

サービス ディスカバリとは、ワークロードが IP アドレスの情報がなくともサービスを検出するプロセスです。このトピックでは、GKE on AWS でサービス ディスカバリとマネージド ドメイン ネーム サービス(DNS)を実装する方法について説明します。

サービス ディスカバリ

Kubernetes は、次の仕様を使用するサービス名を自動的に生成します。

my-service.my-namespace.svc.my-zone

ワークロードは、DNS 名を使用して、example.com などの外部サービスにアクセスします。Kubernetes での DNS の動作の詳細については、Service と Pod の DNS をご覧ください。

CoreDNS

GKE on AWS は、CoreDNS を使用してクラスタの DNS 解決を提供します。CoreDNS は、kube-system 名前空間内の冗長でスケーリングされた Deployment として実行されます。CoreDNS Deployment には、CoreDNS Pod をグループ化して単一の IP アドレスを割り当てる Service があります。 CoreDNS Deployment は、クラスタのサイズと使用状況に基づいてスケーリングされます。

NodeLocal DNSCache

GKE on AWS は、NodeLocal DNSCache を使用して DNS ルックアップのパフォーマンスを向上させます。NodeLocal DNSCache は、クラスタ内の各ノードで DaemonSet として実行されます。Pod が DNS リクエストを行うと、そのリクエストはまず同じノードの DNS キャッシュに移動します。キャッシュで DNS リクエストを解決できない場合、キャッシュはリクエストを次へ転送します。

  • 内部名(foo.bar.svc.cluster.local など)の場合、CoreDNS
  • 外部名(google.com など)の場合、Amazon DNS サーバー

次のステップ

Kubernetes クラスタで DNS が使用される仕組みの概要については、Service と Pod の DNS をご覧ください。