クラスタの DNS を構成する

このドキュメントでは、管理クラスタまたはユーザー クラスタの DNS を構成する方法について説明します。

クラスタの DNS 構成は、default という名前の ClusterDNS カスタム リソースに保持されます。これはクラスタ全体のリソースであり、Namespace はありません。

ClusterDNS リソースを表示する

ClusterDNS リソースを表示するには:

kubectl --kubeconfig CLUSTER_KUBECONFIG get clusterdns default --output yaml

CLUSTER_KUBECONFIG は、クラスタの kubeconfig ファイルのパスに置き換えます。

DNS 構成は spec セクションにあります。spec セクションが空またはない場合、クラスタはデフォルトの Kubernetes CoreDNS 構成を使用します。

DNS 構成を変更する

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.0.1
  - name: my-own-personal-domain.com
    nameservers:
    - serverIP: 203.0.113.1
    - serverIP: 203.0.113.2
      serverPort: 54
  googleAccess: private

マニフェストを my-dns.yaml という名前のファイルに保存して、リソースをクラスタに適用します。

kubectl --kubeconfig CLUSTER_KUBECONFIG apply -f my-dns.yaml

ClusterDNS の仕様

spec.upstreamNameservers

オブジェクトの配列。それぞれにサーバーの IP アドレスと、必要に応じてサーバーポートがあります。サーバーポートのデフォルト値は 53 です。

デフォルトのアップストリーム ネームサーバー。クラスタ以外のドメインのリクエストは、デフォルトでこのサーバーセットに転送されます。例:

spec:
  upstreamNameservers:
  - serverIP: 8.8.8.8
  - serverIP: 1.2.3.4
    serverPort: 54

upstreamNameservers の値を指定しない場合、DNS プロバイダはノード上の /etc/resolve.conf ファイルを使用して、アップストリーム ネームサーバーのリストを検索します。

spec.domains

特定のドメインの構成。これにより、upstreamNameservers の構成のオーバーライドが可能になります。

このセクションを使用して、デフォルトのアップストリーム ネームサーバーとは別に、特定のドメイン用に異なるアップストリーム ネームサーバーを構成できます。

ドメインのクエリロギングをオンにすることもできます。これは、指定したドメインまたはクラスタ ドメインである cluster.local に対して行うことができます。

例:

spec:
  domains:
  - name: altostrat.com
    nameservers:
    - serverIP: 203.0.113.1
  - name: my-own-personal-domain.com
    nameservers:
    - serverIP: 198.51.100.1
    - serverIP: 198.51.100.2
      serverPort: 50000
  - name: cluster.local
    queryLogging: true

spec.googleAccess

文字列。Google ドメインがプライベート アクセスの IP アドレスに名前解決するよう指定するには、これを "private" に設定します。Google ドメインをアクセス制限付きの IP アドレスに名前解決するよう指定するには、これを restricted に設定します。Google ドメインを特別な方法で処理しない場合は、default に設定するか削除します。詳細については、オンプレミス ホスト用の限定公開の Google アクセスの構成をご覧ください。

例:

spec:
  googleAccess: private

spec.orderPolicy

文字列。アップストリーム サーバーを選択する順序指定ポリシーを指定する場合。デフォルトは "random" です。サポートされるタイプは "random""round_robin""sequential" です。この順序付けポリシーは、定義済みのドメインにも適用されます。policy と各構成の機能の詳細については、coredns のドキュメントをご覧ください。

次に例を示します。

spec:
  orderPolicy: sequential