サービス ディスカバリと DNS の概要

このトピックでは、GKE on AWS が AWS Virtual Private Cloud(VPC)とクラスタの両方のドメイン ネーム サービス(DNS)とやり取りする方法について説明します。

AWS VPC DNS

このセクションでは、GKE on AWS に VPC を構成する方法について説明します。

VPC DNS の構成

GKE on AWS は、AWS VPC でさまざまな DNS 構成をサポートしています。VPC の DNS 設定は、DHCP オプション セットを作成するときに構成します。詳細については、VPC の DNS サポートをご覧ください。

次のオプションを構成できます。

DNS ホスト名
これは、パブリック IP アドレスを持つ EC2 インスタンスが、対応するパブリック DNS ホスト名を取得するかどうかを設定します。VPC の DHCP オプション セットの enableDNSHostnames フィールドを使用して、この値を設定します。詳細については、VPC DNS ホスト名と VPC の DHCP オプション セットをご覧ください。
EC2 DNS ホスト名
EC2 インスタンスがデフォルトの DNS ホスト名とカスタム DNS ホスト名のどちらを取得するかを設定します。
DNS サーバー
VPC の DHCP オプション セットが AWS Route53 DNS サーバー(AmazonProvidedDNS オプションを使用)とホストされた DNS サーバーのどちらを使用するかを設定します。

ホスト型 DNS の使用

ホスト型 DNS を使用するには、コントロール プレーンとノードプールのセキュリティ グループが TCP と UDP ポート 53 アウトバウンド トラフィックを許可する必要があります。

サポートされている VPC DNS 構成

次の表に、GKE on AWS でサポートされる DNS 構成を示します。

DNS ホスト名を有効にする EC2 DNS ホスト名 DNS サーバー サポート対象
true デフォルト AWS Route53 ○
false デフォルト AWS Route53 ○
true カスタム AWS Route53 ○
false カスタム AWS Route53 ○
true カスタム ホスティング ○
false カスタム ホスティング ○
true デフォルト ホスティング ×
false デフォルト ホスティング ×

サービス ディスカバリ

サービス ディスカバリとは、ワークロードがサービスの 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
  • 外部名(example.net など)の場合は Amazon DNS サーバー

次のステップ