第1章 OpenShift Dedicated の DNS Operator
OpenShift Dedicated の DNS Operator は、CoreDNS インスタンスをデプロイおよび管理して、クラスター内の Pod に名前解決サービスを提供し、DNS ベースの Kubernetes Service 検出を有効にし、内部の cluster.local 名を解決します。
この Operator は、デフォルトで OpenShift Dedicated クラスターにインストールされています。
1.1. DNS 転送の使用 リンクのコピーリンクがクリップボードにコピーされました!
クラスターの DNS 転送サーバーとアップストリームリゾルバーを設定します。
次の方法で、DNS 転送を使用して /etc/resolv.conf ファイル内のデフォルトの転送設定をオーバーライドできます。
すべてのゾーンにネームサーバー (
spec.servers) を指定します。転送されるゾーンが OpenShift Dedicated によって管理される 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 が使用されます。