クラスタの DNS を構成する

このドキュメントでは、Anthos clusters on bare metal のドメイン ネーム システム(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.0.1
    - name: my-own-personal-domain.com
      - serverIP: 203.0.113.1
      - serverIP: 203.0.113.2
        serverPort: 54
  googleAccess: private

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

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

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

ClusterDNS リソースの表示

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

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

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

ClusterDNS の仕様

以下のセクションでは、クラスタの DNS の構成に使用する ClusterDNS カスタム リソース定義の部分について説明します。クラスタの ClusterDNS リソースはいつでも更新できます。

spec.upstreamNameservers

デフォルトのアップストリーム ネームサーバーを、それぞれがサーバー IP アドレスと、必要に応じてサーバーポートを備えるオブジェクトの配列とともに指定します。サーバーポートのデフォルト値は 53 です。クラスタ以外のドメインのリクエストは、デフォルトでこのサーバー アドレスの配列に転送されます。

以下は、upstreamNameservers 構成の例です。

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

列挙(privaterestricteddefault)。Google ドメインの処理方法を指定します。googleAccess 値は、次の動作を指定します。

  • default: Google ドメインの特別な処理はありません。googleAccess フィールドを削除しても結果は同じです。

  • private: Google ドメインは、プライベート アクセス IP アドレスにのみ名前解決されます。

  • restricted: Google ドメインは、アクセス制限付き IP アドレスにのみ名前解決されます。

次の設定例では、Google ドメインはプライベート アクセス IP アドレスにのみ名前解決されます。

spec:
  googleAccess: private

詳細については、オンプレミス ホスト用の限定公開の Google アクセスの構成をご覧ください。