第2章 Red Hat OpenShift Service on AWS の DNS Operator
Red Hat OpenShift Service on AWS の DNS Operator は、CoreDNS インスタンスをデプロイおよび管理して、クラスター内の Pod に名前解決サービスを提供し、DNS ベースの Kubernetes Service 検出を有効にし、内部の cluster.local 名を解決します。
この Operator は、デフォルトで Red Hat OpenShift Service on AWS クラスターにインストールされています。
2.1. DNS 転送の使用 リンクのコピーリンクがクリップボードにコピーされました!
クラスターの DNS 転送サーバーとアップストリームリゾルバーを設定します。
次の方法で、DNS 転送を使用して /etc/resolv.conf ファイル内のデフォルトの転送設定をオーバーライドできます。
すべてのゾーンにネームサーバー (
spec.servers) を指定します。転送されるゾーンが Red Hat OpenShift Service on AWS に管理される Ingress ドメインである場合は、アップストリームネームサーバーがドメインに対して認証される必要があります。重要少なくとも 1 つのゾーンを指定する必要があります。そうしないと、クラスターの機能が失われる可能性があります。
-
アップストリーム DNS サーバーのリスト (
spec.upstreamResolvers) を指定します。 - デフォルトの転送ポリシーを変更します。
デフォルトドメインの DNS 転送設定には、/etc/resolv.conf ファイルおよびアップストリーム DNS サーバーで指定されたデフォルトのサーバーの両方を設定できます。
Pod の作成時、Kubernetes はノード上に存在する /etc/resolv.conf ファイルを使用します。ホストノード上の /etc/resolv.conf ファイルを変更しても、その変更はコンテナー内に存在する /etc/resolv.conf ファイルには反映されません。変更を有効にするには、コンテナーを再作成する必要があります。
手順
defaultという名前の DNS Operator オブジェクトを変更します。$ oc edit dns.operator/default上記のコマンドを実行すると、Operator が、
spec.serversに基づく追加のサーバー設定ブロックを使用してdns-defaultという名前の config map を作成および更新します。重要zonesパラメーターの値を指定する場合は、イントラネットなどの特定のゾーンにのみ転送してください。少なくとも 1 つのゾーンを指定する必要があります。そうしないと、クラスターの機能が失われる可能性があります。クエリーに一致するゾーンがサーバーにない場合には、名前解決はアップストリーム DNS サーバーにフォールバックします。
DNS 転送の設定
apiVersion: operator.openshift.io/v1 kind: DNS metadata: name: default spec: cache: negativeTTL: 0s positiveTTL: 0s logLevel: Normal nodePlacement: {} operatorLogLevel: Normal servers: - name: example-server zones: - example.com forwardPlugin: policy: Random upstreams: - 1.1.1.1 - 2.2.2.2:5353 upstreamResolvers: policy: Random protocolStrategy: "" transportConfig: {} upstreams: - type: SystemResolvConf - type: Network address: 1.2.3.4 port: 53 status: clusterDomain: cluster.local clusterIP: x.y.z.10 conditions: ...ここでは、以下のようになります。
spec.servers.name-
rfc6335サービス名の構文に準拠する必要があります。 仕様サーバーゾーン-
RFC1123 のサブドメイン構文に準拠する必要があります。クラスタードメインcluster.localはゾーンに対して無効です。 spec.servers.forwardPlugin.policy-
上流選択ポリシーを指定します。デフォルトは
Randomです。指定可能な値はRoundRobinとSequentialです。 spec.servers.forwardPlugin.upstreams-
forwardPluginごとに 15 個を超えるアップストリームエントリーを指定しないでください。 spec.upstreamResolvers.upstreams-
デフォルトの転送ポリシーを上書きし、デフォルトドメインの DNS 解決を指定された DNS リゾルバー (アップストリームリゾルバー) に転送するために、
upstreamResolvers を指定します。カスタムのアップストリームリゾルバーが必要な場合にこのフィールドを使用できます。それ以外の場合は、クエリーは/etc/resolv.confで宣言されているサーバーを使用します。 spec.upstreamResolvers.policy-
上流の選択順序を指定します。デフォルトは
Sequentialです。許可される値はRandom、RoundRobin、Sequentialです。 spec.upstreamResolvers.protocolStrategy-
リクエストが UDP を使用している場合でも、アップストリーム DNS リクエストに使用するプロトコルとして TCP を指定すると、強制的に
TCP が使用されます。有効な値はTCPと省略された値です。省略すると、デフォルト (通常は元のクライアント要求のプロトコル) が選択されます。 spec.upstreamResolvers.transportConfig- DNS リクエストをアップストリームのリゾルバーに転送する際に使用するトランスポートタイプ、サーバー名、およびオプションのカスタム CA または CA バンドルを指定します。
spec.upstreamResolvers.upstreams.type-
2 種類の
アップストリームを指定します:SystemResolvConfまたはNetwork。SystemResolvConfで、アップストリームが/etc/resolv.confを使用するように設定して、NetworkでNetworkresolverを定義します。1 つまたは両方を指定できます。 spec.upstreamResolvers.upstreams.address-
タイプが
ネットワークの場合、有効な IPv4 または IPv6 アドレスを指定します。 spec.upstreamResolvers.upstreams.port-
ポート番号を指定するためのオプションフィールドを指定します。有効な値は
1-65535です。省略した場合はデフォルト値として 853 が使用されます。