2.12. DNS 管理ポリシーについて
クラスター管理者として Ingress Controller を作成すると、Operator は DNS レコードを自動的に管理します。必要な DNS ゾーンがクラスター DNS ゾーンと異なる場合、または DNS ゾーンがクラウドプロバイダーの外部でホストされている場合、これにはいくつかの制限があります。
2.12.1. Managed DNS 管理ポリシー リンクのコピーリンクがクリップボードにコピーされました!
Ingress Controller の Managed DNS 管理ポリシーにより、クラウドプロバイダーのワイルドカード DNS レコードのライフサイクルが Operator によって自動的に管理されるようになります。これがデフォルトの動作です。
Ingress Controller を Managed
から Unmanaged
DNS 管理ポリシーに変更すると、Operator はクラウドでプロビジョニングされた以前のワイルドカード DNS レコードをクリーンアップしません。
Ingress Controller を Unmanaged
から Managed
DNS 管理ポリシーに変更すると、Operator は、クラウドプロバイダーに DNS レコードが存在しない場合は作成を試み、DNS レコードがすでに存在する場合は更新を試みます。
2.12.2. Unmanaged DNS 管理ポリシー リンクのコピーリンクがクリップボードにコピーされました!
Ingress Controller の Unmanaged DNS 管理ポリシーにより、クラウドプロバイダーのワイルドカード DNS レコードのライフサイクルが自動的に管理されず、代わりにクラスター管理者の責任になります。
2.12.3. 手動 DNS 管理のための Ingress Controller の作成 リンクのコピーリンクがクリップボードにコピーされました!
クラスター管理者は、Unmanaged DNS 管理ポリシーを使用して、新しいカスタム Ingress Controller を作成できます。
前提条件
-
OpenShift CLI (
oc
) がインストールされている。 -
cluster-admin
権限を持つユーザーとしてログインしている。
手順
次の内容を含む、
sample-ingress.yaml
という名前のIngressController
カスタムリソース (CR) ファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow マニフェストを適用して
IngressController
オブジェクトを作成します。oc apply -f sample-ingress.yaml
$ oc apply -f sample-ingress.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、Ingress Controller が正しいポリシーで作成されたことを確認します。
oc get ingresscontroller <name> -n openshift-ingress-operator -o=jsonpath={.spec.endpointPublishingStrategy.loadBalancer}
$ oc get ingresscontroller <name> -n openshift-ingress-operator -o=jsonpath={.spec.endpointPublishingStrategy.loadBalancer}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力を検査し、
dnsManagementPolicy
がUnmanaged
に設定されていることを確認します。
2.12.4. 既存の Ingress Controller を手動で DNS 管理できるように変更する リンクのコピーリンクがクリップボードにコピーされました!
クラスター管理者は、既存の Ingress Controller を変更して、DNS レコードのライフサイクルを手動で管理できます。
前提条件
-
OpenShift CLI (
oc
) がインストールされている。 -
cluster-admin
権限を持つユーザーとしてログインしている。
手順
選択した Ingress Controller を変更して、
dnsManagementPolicy
パラメーターを設定します。SCOPE=$(oc -n openshift-ingress-operator get ingresscontroller <name> -o=jsonpath="{.status.endpointPublishingStrategy.loadBalancer.scope}") oc -n openshift-ingress-operator patch ingresscontrollers/default --type=merge --patch="{\"spec\":{\"endpointPublishingStrategy\":{\"type\":\"LoadBalancerService\",\"loadBalancer\":{\"dnsManagementPolicy\":\"Unmanaged\", \"scope\":\"${SCOPE}\"}}}}"
$ SCOPE=$(oc -n openshift-ingress-operator get ingresscontroller <name> -o=jsonpath="{.status.endpointPublishingStrategy.loadBalancer.scope}") $ oc -n openshift-ingress-operator patch ingresscontrollers/default --type=merge --patch="{\"spec\":{\"endpointPublishingStrategy\":{\"type\":\"LoadBalancerService\",\"loadBalancer\":{\"dnsManagementPolicy\":\"Unmanaged\", \"scope\":\"${SCOPE}\"}}}}" ingresscontroller.operator.openshift.io/default patched
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、Ingress Controller が正しく変更されたことを確認します。
oc get ingresscontroller <name> -n openshift-ingress-operator -o=jsonpath={.spec.endpointPublishingStrategy.loadBalancer}
$ oc get ingresscontroller <name> -n openshift-ingress-operator -o=jsonpath={.spec.endpointPublishingStrategy.loadBalancer}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力を検査し、
dnsManagementPolicy
がUnmanaged
に設定されていることを確認します。