このドキュメントでは、Google Distributed Cloud コネクテッド バージョン 1.12.0 のドメイン ネーム システム(DNS)プロバイダ オプションを構成する方法について説明します。クラスタの DNS 構成は、default という名前の ClusterDNS カスタム リソースに保持されます。このリソースはクラスタ全体にわたります。つまり、名前空間はありません。ClusterDNS カスタム リソースは、すべてのクラスタタイプに適用されます。
ClusterDNS リソースを作成する
default という名前の ClusterDNS リソースのマニフェストを作成します。spec に入力して、必要なリソース設定を構成します。次に例を示します。
apiVersion: networking.gke.io/v1alpha1
kind: ClusterDNS
metadata:
name: default
spec:
upstreamNameservers:
- serverIP: 8.8.8.8
- serverIP: 8.8.4.4
domains:
- name: altostrat.com
nameservers:
- serverIP: 198.51.100.1
- name: my-own-personal-domain.com
nameservers:
- serverIP: 203.0.113.1
- serverIP: 203.0.113.2
serverPort: 54
googleAccess: default
マニフェストを my-dns.yaml という名前のファイルに保存して、リソースをクラスタに適用するには、次のコマンドを実行します。
kubectl --kubeconfig KUBECONFIG apply -f my-dns.yamlKUBECONFIG は、クラスタの kubeconfig ファイルのパスに置き換えます。
ClusterDNS リソースの表示
ClusterDNS リソースを表示するには、次のコマンドを実行します。
kubectl --kubeconfig KUBECONFIG get clusterdns default --output yamlKUBECONFIG は、クラスタの kubeconfig ファイルのパスに置き換えます。
ClusterDNS の仕様
以下の各セクションでは、クラスタの DNS を構成するために使用する ClusterDNS カスタム リソース定義の一部について説明します。クラスタの ClusterDNS リソースはいつでも更新できます。
spec.upstreamNameservers
spec.upstreamNameservers フィールドを使用して、オブジェクトの配列でデフォルトの上流ネームサーバーを指定します。各オブジェクトには、サーバーの IP アドレスと、必要に応じてサーバーポートがあります。サーバーポートのデフォルト値は 53 です。クラスタ以外のドメインのリクエストは、デフォルトでこのサーバーセットに転送されます。
以下は、upstreamNameservers 構成の例です。
spec:
upstreamNameservers:
- serverIP: 8.8.8.8
- serverIP: 1.2.3.4
serverPort: 54
upstreamNameservers の値を指定しない場合、DNS プロバイダはノード上の /etc/resolv.conf ファイルを使用して、アップストリーム ネームサーバーのリストを検索します。
spec.domains
spec.domains フィールドを使用して、特定のドメイン用に異なるアップストリーム ネームサーバーを構成します。これらのドメイン特有のネームサーバーの設定は、upstreamNameservers の構成をオーバーライドします。
ドメインのクエリロギングをオンにすることもできます。任意に指定されたドメインまたはクラスタ ドメイン(cluster.local)に対してクエリロギングを有効にできます。
以下は、spec.domains 構成の例です。
spec:
domains:
- name: altostrat.com
nameservers:
- serverIP: 198.51.100.1
- name: my-own-personal-domain.com
nameservers:
- serverIP: 203.0.113.1
- serverIP: 203.0.113.2
serverPort: 50000
- name: cluster.local
queryLogging: true
spec.googleAccess
spec.googleAccess フィールドは、グローバル Google API とサービスで使用されるドメインの DNS 解決を構成する文字列です。このフィールドでは次の値を指定できます。
default: デフォルトでは、DNS の解決はグローバル Google API ドメインをデフォルトの IP アドレスにマッピングします。クラスタは、グローバル Google API ドメインの DNS の解決をカスタマイズしません。詳細については、デフォルト ドメインの IP アドレスをご覧ください。googleAccessフィールドに値を指定しない場合、システムはdefaultを使用します。private: グローバル Google API ドメインの DNS の解決をprivate.googleapis.comで使用される IP アドレスにマッピングします。restricted: グローバル Google API ドメインの DNS の解決をrestricted.googleapis.comで使用される IP アドレスにマッピングします。
次の例は、DNS 解決で private.googleapis.com を使用するように設定する方法を示しています。
spec:
googleAccess: private
詳細については、オンプレミス ホスト用のプライベート Google アクセスの構成をご覧ください。