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

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

AWS VPC DNS

このセクションでは、Anthos clusters on AWS(GKE on AWS)用に AWS Virtual Private Cloud(VPC)を設定する方法について説明します。

VPC DNS の設定

Anthos clusters 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 サーバーのどちらを使用するかを設定します。

サポートされている VPC DNS 設定

次の表に、AWS 上の Anthos クラスタでサポートされる DNS 設定を示します。

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

サービス ディスカバリ

サービス ディスカバリとは、ワークロードが IP アドレスの情報を使用せずにサービスを検出するプロセスです。このセクションでは、Anthos clusters on AWS(GKE on AWS)がサービス ディスカバリとマネージド DNS を実装する方法について説明します。

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

service.namespace.svc.zone

ここで

  • service: サービスの名前
  • namespace: サービスの Namespace
  • zone: サービスの AWS ゾーン

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

CoreDNS

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

NodeLocal DNSCache

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

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

Calico

AWS 上の Anthos クラスタは、Calico を使用してクラスタノード間の BGP ルーティングを確立します。

次のステップ