このトピックでは、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
: サービスの Namespacezone
: サービスの 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 ルーティングを確立します。
次のステップ
- AWS における VPC 向けの DNS サポートについて確認する。
- Kubernetes クラスタで DNS が使用される仕組みの概要については、Service と Pod の DNS をご覧ください。