6.3. External DNS Operator
6.3.1. External DNS Operator のリリースノート
External DNS Operator は、ExternalDNS
をデプロイおよび管理して、外部 DNS プロバイダーから OpenShift Container Platform へのサービスとルートの名前解決を提供します。
External DNS Operator は、x86_64
アーキテクチャーでのみサポートされます。
これらのリリースノートでは、OpenShift Container Platform での外部 DNS Operator の開発を追跡しています。
6.3.1.1. 外部 DNS Operator 1.2.0
External DNS Operator バージョン 1.2.0 では、以下のアドバイザリーを利用できます。
6.3.1.1.1. 新機能
- External DNS Operator が AWS 共有 VPC をサポートするようになりました。詳細は、共有 VPC を使用して別の AWS アカウントに DNS レコードを作成する を参照してください。
6.3.1.1.2. バグ修正
-
オペランドの更新ストラテジーが、
Rolling
からRecreate
に変更されました。(OCPBUGS-3630)
6.3.1.2. External DNS Operator 1.1.1
External DNS Operator バージョン 1.1.1 では、以下のアドバイザリーを利用できます。利用できます。
6.3.1.3. External DNS Operator 1.1.0
このリリースには、アップストリームプロジェクトバージョン 0.13.1 からのオペランドのリベースが含まれていました。External DNS Operator バージョン 1.1.0 では、以下のアドバイザリーを利用できます。
6.3.1.3.1. バグ修正
-
以前は、ExternalDNS Operator がボリュームに空の
defaultMode
値を強制していたため、OpenShift API との競合により更新が随時行われていました。現在は、defaultMode
値は強制されず、オペランドのデプロイは随時更新されなくなりました。(OCPBUGS-2793)
6.3.1.4. External DNS Operator 1.0.1
External DNS Operator バージョン 1.0.1 では、以下のアドバイザリーを利用できます。
6.3.1.5. External DNS Operator 1.0.0
External DNS Operator バージョン 1.0.0 では、以下のアドバイザリーを利用できます。
6.3.1.5.1. バグ修正
- 以前は、External DNS Operator は、ExternalDNS オペランド Pod のデプロイメント中に制限付き SCC ポリシーの違反に関する警告を発していました。この問題は解決されています。(BZ#2086408)
6.3.2. External DNS Operator について
External DNS Operator は、ExternalDNS
をデプロイおよび管理して、外部 DNS プロバイダーから OpenShift Container Platform へのサービスとルートの名前解決を提供します。
6.3.2.1. External DNS Operator
External DNS Operator は、olm.openshift.io
API グループから External DNS API を実装します。External DNS Operator は、サービス、ルート、外部 DNS プロバイダーを更新します。
前提条件
-
yq
CLI ツールがインストールされている。
手順
OperatorHub からオンデマンドで External DNS Operator をデプロイできます。External DNS Operator をデプロイすると、Subscription
オブジェクトが作成されます。
次のコマンドを実行して、インストールプランの名前を確認します。
$ oc -n external-dns-operator get sub external-dns-operator -o yaml | yq '.status.installplan.name'
出力例
install-zcvlr
次のコマンドを実行して、インストールプランのステータスが
Complete
になっているか確認します。$ oc -n external-dns-operator get ip <install_plan_name> -o yaml | yq '.status.phase'
出力例
Complete
次のコマンドを実行して、
external-dns-operator
デプロイメントのステータスを表示します。$ oc get -n external-dns-operator deployment/external-dns-operator
出力例
NAME READY UP-TO-DATE AVAILABLE AGE external-dns-operator 1/1 1 1 23h
6.3.2.2. External DNS Operator のログの表示
oc logs
コマンドを使用して、External DNS Operator のログを表示できます。
手順
次のコマンドを実行して、External DNS Operator のログを表示します。
$ oc logs -n external-dns-operator deployment/external-dns-operator -c external-dns-operator
6.3.2.2.1. External DNS Operator のドメイン名の制限
External DNS Operator は、TXT レコードの接頭辞を追加する TXT レジストリーを使用します。これにより、TXT レコードのドメイン名の最大長が短くなります。DNS レコードは対応する TXT レコードなしでは存在できないため、DNS レコードのドメイン名は TXT レコードと同じ制限に従う必要があります。たとえば、DNS レコードが <domain_name_from_source>
の場合、TXT レコードは external-dns-<record_type>-<domain_name_from_source>
になります。
External DNS Operator によって生成される DNS レコードのドメイン名には、次の制限があります。
レコードの種類 | 文字数 |
---|---|
CNAME | 44 |
AzureDNS のワイルドカード CNAME レコード | 42 |
A | 48 |
AzureDNS のワイルドカード A レコード | 46 |
生成されたドメイン名がドメイン名の制限を超えると、External DNS Operator のログに次のエラーが表示されます。
time="2022-09-02T08:53:57Z" level=error msg="Failure in zone test.example.io. [Id: /hostedzone/Z06988883Q0H0RL6UMXXX]" time="2022-09-02T08:53:57Z" level=error msg="InvalidChangeBatch: [FATAL problem: DomainLabelTooLong (Domain label is too long) encountered with 'external-dns-a-hello-openshift-aaaaaaaaaa-bbbbbbbbbb-ccccccc']\n\tstatus code: 400, request id: e54dfd5a-06c6-47b0-bcb9-a4f7c3a4e0c6"
6.3.3. External DNS Operator のインストール
AWS、Azure、GCP などのクラウドプロバイダーに External DNS Operator をインストールできます。
6.3.3.1. OperatorHub を使用した External DNS Operator のインストール
OpenShift Container Platform OperatorHub を使用して、External DNS Operator をインストールできます。
手順
-
OpenShift Container Platform Web コンソールで、Operators
OperatorHub をクリックします。 - External DNS Operator をクリックします。Filter by keyword のテキストボックスまたはフィルターリストを使用して、Operator のリストから External DNS Operator を検索できます。
-
external-dns-operator
namespace を選択します。 - External DNS Operator ページで Install をクリックします。
Install Operator ページで、次のオプションを選択していることを確認してください。
- チャネルを stable-v1.0 として更新している。
- インストールモードに A specific name on the cluster を選択している。
-
namespace を
external-dns-operator
としてインストールしている。namespaceexternal-dns-operator
が存在しない場合は、Operator のインストール中に作成されます。 - 承認ストラテジー を Automatic または Manual として選択している。承認ストラテジーはデフォルトで Automatic に設定されます。
- Install をクリックします。
Automatic (自動) 更新を選択した場合、Operator Lifecycle Manager (OLM) は介入なしに、Operator の実行中のインスタンスを自動的にアップグレードします。
Manual 更新を選択した場合、OLM は更新要求を作成します。クラスター管理者は、Operator が新規バージョンに更新されるように更新要求を手動で承認する必要があります。
検証
Installed Operators ダッシュボードで、External DNS Operator の Status が Succeeded と表示されることを確認します。
6.3.3.2. CLI を使用した External DNS Operator のインストール
CLI を使用して External DNS Operator をインストールできます。
前提条件
-
cluster-admin
権限を持つユーザーとして OpenShift Container Platform Web コンソールにログインしている。 -
OpenShift CLI (
oc
) にログイン済みである。
手順
Namespace
オブジェクトを作成します。Namespace
オブジェクトを定義する YAML ファイルを作成します。namespace.yaml
ファイルの例apiVersion: v1 kind: Namespace metadata: name: external-dns-operator
次のコマンドを実行して、
Namespace
オブジェクトを作成します。$ oc apply -f namespace.yaml
OperatorGroup
オブジェクトを作成します。OperatorGroup
オブジェクトを定義する YAML ファイルを作成します。operatorgroup.yaml
ファイルの例apiVersion: operators.coreos.com/v1 kind: OperatorGroup metadata: name: external-dns-operator namespace: external-dns-operator spec: upgradeStrategy: Default targetNamespaces: - external-dns-operator
以下のコマンドを実行して
OperatorGroup
オブジェクトを作成します。$ oc apply -f operatorgroup.yaml
Subscription
オブジェクトを作成します。Subscription
オブジェクトを定義する YAML ファイルを作成します。subscription.yaml
ファイルの例apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: external-dns-operator namespace: external-dns-operator spec: channel: stable-v1 installPlanApproval: Automatic name: external-dns-operator source: redhat-operators sourceNamespace: openshift-marketplace
以下のコマンドを実行して
Subscription
オブジェクトを作成します。$ oc apply -f subscription.yaml
検証
次のコマンドを実行して、サブスクリプションからインストールプランの名前を取得します。
$ oc -n external-dns-operator \ get subscription external-dns-operator \ --template='{{.status.installplan.name}}{{"\n"}}'
次のコマンドを実行して、インストールプランのステータスが
Complete
であることを確認します。$ oc -n external-dns-operator \ get ip <install_plan_name> \ --template='{{.status.phase}}{{"\n"}}'
次のコマンドを実行して、
external-dns-operator
Pod のステータスがRunning
であることを確認します。$ oc -n external-dns-operator get pod
出力例
NAME READY STATUS RESTARTS AGE external-dns-operator-5584585fd7-5lwqm 2/2 Running 0 11m
次のコマンドを実行して、サブスクリプションのカタログソースが
redhat-operators
であることを確認します。$ oc -n external-dns-operator get subscription
出力例
NAME PACKAGE SOURCE CHANNEL external-dns-operator external-dns-operator redhat-operators stable-v1
次のコマンドを実行して、
external-dns-Operator
のバージョンを確認します。$ oc -n external-dns-operator get csv
出力例
NAME DISPLAY VERSION REPLACES PHASE external-dns-operator.v<1.y.z> ExternalDNS Operator <1.y.z> Succeeded
6.3.4. External DNS Operator の設定パラメーター
External DNS Operator には、次の設定パラメーターがあります。
6.3.4.1. External DNS Operator の設定パラメーター
External DNS Operator には、次の設定パラメーターがあります。
パラメーター | 説明 |
---|---|
| クラウドプロバイダーのタイプを有効にします。 spec: provider: type: AWS 1 aws: credentials: name: aws-access-key 2 |
|
ドメインごとに DNS ゾーンを指定できます。ゾーンを指定しない場合、 zones:
- "myzoneid" 1
|
|
ドメインごとに AWS ゾーンを指定できます。ドメインを指定しない場合、 domains: - filterType: Include 1 matchType: Exact 2 name: "myzonedomain1.com" 3 - filterType: Include matchType: Pattern 4 pattern: ".*\\.otherzonedomain\\.com" 5 |
|
DNS レコードのソース ( source: 1 type: Service 2 service: serviceType:3 - LoadBalancer - ClusterIP labelFilter: 4 matchLabels: external-dns.mydomain.org/publish: "yes" hostnameAnnotation: "Allow" 5 fqdnTemplate: - "{{.Name}}.myzonedomain.com" 6
source: type: OpenShiftRoute 1 openshiftRouteOptions: routerName: default 2 labelFilter: matchLabels: external-dns.mydomain.org/publish: "yes" |
6.3.5. AWS での DNS レコードの作成
External DNS Operator を使用して、AWS および AWS GovCloud で DNS レコードを作成できます。
6.3.5.1. Red Hat External DNS Operator を使用した AWS のパブリックホストゾーンへの DNS レコードの作成
Red Hat External DNS Operator を使用して、AWS のパブリックホストゾーンに DNS レコードを作成できます。同じ手順を使用して、AWS GovCloud のホストゾーンに DNS レコードを作成できます。
手順
ユーザーを確認してください。ユーザーは、
kube-system
namespace にアクセスできる必要があります。クレデンシャルがない場合は、kube-system
namespace からクレデンシャルを取得すると、クラウドプロバイダークライアントを使用できます。$ oc whoami
出力例
system:admin
kube-system
namespace に存在する aws-creds シークレットから値を取得します。$ export AWS_ACCESS_KEY_ID=$(oc get secrets aws-creds -n kube-system --template={{.data.aws_access_key_id}} | base64 -d) $ export AWS_SECRET_ACCESS_KEY=$(oc get secrets aws-creds -n kube-system --template={{.data.aws_secret_access_key}} | base64 -d)
ルートを取得して、ドメインを確認します。
$ oc get routes --all-namespaces | grep console
出力例
openshift-console console console-openshift-console.apps.testextdnsoperator.apacshift.support console https reencrypt/Redirect None openshift-console downloads downloads-openshift-console.apps.testextdnsoperator.apacshift.support downloads http edge/Redirect None
DNS ゾーンのリストを取得して、以前に検出されたルートのドメインに対応するものを検索します。
$ aws route53 list-hosted-zones | grep testextdnsoperator.apacshift.support
出力例
HOSTEDZONES terraform /hostedzone/Z02355203TNN1XXXX1J6O testextdnsoperator.apacshift.support. 5
route
ソースのExternalDNS
リソースを作成します。$ cat <<EOF | oc create -f - apiVersion: externaldns.olm.openshift.io/v1beta1 kind: ExternalDNS metadata: name: sample-aws 1 spec: domains: - filterType: Include 2 matchType: Exact 3 name: testextdnsoperator.apacshift.support 4 provider: type: AWS 5 source: 6 type: OpenShiftRoute 7 openshiftRouteOptions: routerName: default 8 EOF
- 1
- 外部 DNS リソースの名前を定義します。
- 2
- デフォルトでは、すべてのホストゾーンがターゲット候補として選択されます。必要なホストゾーンを追加できます。
- 3
- ターゲットゾーンのドメインは、(正規表現の一致とは対照的に) 完全一致である必要があります。
- 4
- 更新するゾーンのドメインを正確に指定します。ルートのホスト名は、指定されたドメインのサブドメインである必要があります。
- 5
AWS Route53DNS
プロバイダーを定義します。- 6
- DNS レコードのソースのオプションを定義します。
- 7
- 以前に指定された DNS プロバイダーで作成される DNS レコードのソースとして OpenShift
route
リソースを定義します。 - 8
- ソースが
OpenShiftRoute
の場合に、OpenShift Ingress Controller 名を指定できます。External DNS Operator は、CNAME レコードの作成時に、そのルーターの正規ホスト名をターゲットとして選択します。
次のコマンドを使用して、OCP ルート用に作成されたレコードを確認します。
$ aws route53 list-resource-record-sets --hosted-zone-id Z02355203TNN1XXXX1J6O --query "ResourceRecordSets[?Type == 'CNAME']" | grep console
6.3.5.2. 共有 VPC を使用して別の AWS アカウントに DNS レコードを作成する
ExternalDNS Operator を使用すると、共有 Virtual Private Cloud (VPC) を使用して別の AWS アカウントに DNS レコードを作成できます。共有 VPC を使用すると、組織は複数のプロジェクトのリソースを共通の VPC ネットワークに接続できます。その後、VPC 共有を使用して、複数の AWS アカウント間で単一の Route 53 インスタンスを使用できます。
前提条件
- 2 つの Amazon AWS アカウントを作成している。1 つは VPC と Route 53 プライベートホストゾーンが設定されたもの (アカウント A)、もう 1 つはクラスターをインストールするためのもの (アカウント B) です。
- アカウント B でアカウント A の Route 53 ホストゾーンに DNS レコードを作成するために、適切な権限を持つ IAM ポリシーと IAM ロールをアカウント A に作成している。
- アカウント B のクラスターをアカウント A の既存の VPC にインストールしている。
- アカウント B のクラスターに ExternalDNS Operator がインストールされている。
手順
次のコマンドを実行して、アカウント B からアカウント A の Route 53 ホストゾーンにアクセスできるように作成した IAM ロールのロール ARN を取得します。
$ aws --profile account-a iam get-role --role-name user-rol1 | head -1
出力例
ROLE arn:aws:iam::1234567890123:role/user-rol1 2023-09-14T17:21:54+00:00 3600 / AROA3SGB2ZRKRT5NISNJN user-rol1
次のコマンドを実行して、アカウント A の認証情報で使用するプライベートホストゾーンを特定します。
$ aws --profile account-a route53 list-hosted-zones | grep testextdnsoperator.apacshift.support
出力例
HOSTEDZONES terraform /hostedzone/Z02355203TNN1XXXX1J6O testextdnsoperator.apacshift.support. 5
次のコマンドを実行して、
ExternalDNS
オブジェクトを作成します。$ cat <<EOF | oc create -f - apiVersion: externaldns.olm.openshift.io/v1beta1 kind: ExternalDNS metadata: name: sample-aws spec: domains: - filterType: Include matchType: Exact name: testextdnsoperator.apacshift.support provider: type: AWS aws: assumeRole: arn: arn:aws:iam::12345678901234:role/user-rol1 1 source: type: OpenShiftRoute openshiftRouteOptions: routerName: default EOF
- 1
- アカウント A に DNS レコードを作成するには、ロール ARN を指定します。
次のコマンドを使用して、OpenShift Container Platform (OCP) ルートに対して作成されたレコードを確認します。
$ aws --profile account-a route53 list-resource-record-sets --hosted-zone-id Z02355203TNN1XXXX1J6O --query "ResourceRecordSets[?Type == 'CNAME']" | grep console-openshift-console
6.3.6. Azure での DNS レコードの作成
External DNS Operator を使用して、Azure 上に DNS レコードを作成できます。
Microsoft Entra Workload ID 対応クラスターまたは Microsoft Azure Government (MAG) リージョンで実行されるクラスターで External DNS Operator を使用することはサポートされていません。
6.3.6.1. Azure のパブリック DNS ゾーン上で DNS レコードを作成する
Red Hat External DNS Operator を使用して、Azure のパブリック DNS ゾーンに DNS レコードを作成できます。
前提条件
- 管理者権限を持っている。
-
admin
ユーザーの場合、kube-system
namespace にアクセスできる。
手順
クラウドプロバイダークライアントを使用するために、次のコマンドを実行して
kube-system
namespace から認証情報を取得します。$ CLIENT_ID=$(oc get secrets azure-credentials -n kube-system --template={{.data.azure_client_id}} | base64 -d) $ CLIENT_SECRET=$(oc get secrets azure-credentials -n kube-system --template={{.data.azure_client_secret}} | base64 -d) $ RESOURCE_GROUP=$(oc get secrets azure-credentials -n kube-system --template={{.data.azure_resourcegroup}} | base64 -d) $ SUBSCRIPTION_ID=$(oc get secrets azure-credentials -n kube-system --template={{.data.azure_subscription_id}} | base64 -d) $ TENANT_ID=$(oc get secrets azure-credentials -n kube-system --template={{.data.azure_tenant_id}} | base64 -d)
次のコマンドを実行して、Azure にログインします。
$ az login --service-principal -u "${CLIENT_ID}" -p "${CLIENT_SECRET}" --tenant "${TENANT_ID}"
次のコマンドを実行して、ルートのリストを取得します。
$ oc get routes --all-namespaces | grep console
出力例
openshift-console console console-openshift-console.apps.test.azure.example.com console https reencrypt/Redirect None openshift-console downloads downloads-openshift-console.apps.test.azure.example.com downloads http edge/Redirect None
次のコマンドを実行して、DNS ゾーンのリストを取得します。
$ az network dns zone list --resource-group "${RESOURCE_GROUP}"
ExternalDNS
オブジェクトを定義する YAML ファイル (例:external-dns-sample-azure.yaml
) を作成します。external-dns-sample-azure.yaml
ファイルの例apiVersion: externaldns.olm.openshift.io/v1beta1 kind: ExternalDNS metadata: name: sample-azure 1 spec: zones: - "/subscriptions/1234567890/resourceGroups/test-azure-xxxxx-rg/providers/Microsoft.Network/dnszones/test.azure.example.com" 2 provider: type: Azure 3 source: openshiftRouteOptions: 4 routerName: default 5 type: OpenShiftRoute 6
次のコマンドを実行して、OpenShift Container Platform ルートに対して作成された DNS レコードを確認します。
$ az network dns record-set list -g "${RESOURCE_GROUP}" -z test.azure.example.com | grep console
注記プライベート Azure DNS のホストされたプライベートゾーンにレコードを作成するには、
zones
フィールドの下にプライベートゾーンを指定する必要があります。これにより、プロバイダータイプがExternalDNS
引数のazure-private-dns
に入力されます。
6.3.7. GCP での DNS レコードの作成
External DNS Operator を使用して、Google Cloud Platform (GCP) 上に DNS レコードを作成できます。
GCP Workload Identity が有効なクラスターで External DNS Operator を使用することはサポートされていません。GCP Workload Identity の詳細は、GCP Workload Identity を参照してください。
6.3.7.1. GCP のパブリックマネージドゾーン上で DNS レコードを作成する
External DNS Operator を使用して、GCP のパブリックマネージドゾーンに DNS レコードを作成できます。
前提条件
- 管理者権限を持っている。
手順
次のコマンドを実行して、
encoded-gcloud.json
ファイル内のgcp-credentials
シークレットをコピーします。$ oc get secret gcp-credentials -n kube-system --template='{{$v := index .data "service_account.json"}}{{$v}}' | base64 -d - > decoded-gcloud.json
次のコマンドを実行して、Google の認証情報をエクスポートします。
$ export GOOGLE_CREDENTIALS=decoded-gcloud.json
次のコマンドを使用して、アカウントをアクティブ化します。
$ gcloud auth activate-service-account <client_email as per decoded-gcloud.json> --key-file=decoded-gcloud.json
次のコマンドを実行して、プロジェクトを設定します。
$ gcloud config set project <project_id as per decoded-gcloud.json>
次のコマンドを実行して、ルートのリストを取得します。
$ oc get routes --all-namespaces | grep console
出力例
openshift-console console console-openshift-console.apps.test.gcp.example.com console https reencrypt/Redirect None openshift-console downloads downloads-openshift-console.apps.test.gcp.example.com downloads http edge/Redirect None
次のコマンドを実行して、マネージドゾーンのリストを取得します。
$ gcloud dns managed-zones list | grep test.gcp.example.com
出力例
qe-cvs4g-private-zone test.gcp.example.com
ExternalDNS
オブジェクトを定義する YAML ファイル (例:external-dns-sample-gcp.yaml
) を作成します。external-dns-sample-gcp.yaml
ファイルの例apiVersion: externaldns.olm.openshift.io/v1beta1 kind: ExternalDNS metadata: name: sample-gcp 1 spec: domains: - filterType: Include 2 matchType: Exact 3 name: test.gcp.example.com 4 provider: type: GCP 5 source: openshiftRouteOptions: 6 routerName: default 7 type: OpenShiftRoute 8
- 1
- 外部 DNS 名を指定します。
- 2
- デフォルトでは、すべてのホストされたゾーンがターゲット候補として選択されます。ホストされたゾーンを含めることができます。
- 3
- ターゲットのドメインは、
name
キーで定義された文字列と一致する必要があります。 - 4
- 更新するゾーンのドメインを正確に指定します。ルートのホスト名は、指定されたドメインのサブドメインである必要があります。
- 5
- プロバイダータイプを定義します。
- 6
- DNS レコードのソースのオプションを定義できます。
- 7
- ソースタイプが
OpenShiftRoute
の場合、OpenShift Ingress Controller 名を渡すことができます。外部 DNS は、CNAME レコードの作成時に、そのルーターの正規のホスト名をターゲットとして選択します。 - 8
route
リソースを GCP DNS レコードのソースとして定義します。
次のコマンドを実行して、OpenShift Container Platform ルートに対して作成された DNS レコードを確認します。
$ gcloud dns record-sets list --zone=qe-cvs4g-private-zone | grep console
6.3.8. Infoblox での DNS レコードの作成
External DNS Operator を使用して、Infoblox 上に DNS レコードを作成できます。
6.3.8.1. Infoblox のパブリック DNS ゾーンでの DNS レコードの作成
External DNS Operator を使用して、Infoblox のパブリック DNS ゾーンに DNS レコードを作成できます。
前提条件
-
OpenShift CLI (
oc
) にアクセスできる。 - Infoblox UI にアクセスできる。
手順
次のコマンドを実行して、Infoblox クレデンシャルを使用して
secret
オブジェクトを作成します。$ oc -n external-dns-operator create secret generic infoblox-credentials --from-literal=EXTERNAL_DNS_INFOBLOX_WAPI_USERNAME=<infoblox_username> --from-literal=EXTERNAL_DNS_INFOBLOX_WAPI_PASSWORD=<infoblox_password>
次のコマンドを実行して、ルートのリストを取得します。
$ oc get routes --all-namespaces | grep console
出力例
openshift-console console console-openshift-console.apps.test.example.com console https reencrypt/Redirect None openshift-console downloads downloads-openshift-console.apps.test.example.com downloads http edge/Redirect None
ExternalDNS
オブジェクトを定義する YAML ファイル (例:external-dns-sample-infoblox.yaml
) を作成します。external-dns-sample-infoblox.yaml
ファイルの例apiVersion: externaldns.olm.openshift.io/v1beta1 kind: ExternalDNS metadata: name: sample-infoblox 1 spec: provider: type: Infoblox 2 infoblox: credentials: name: infoblox-credentials gridHost: ${INFOBLOX_GRID_PUBLIC_IP} wapiPort: 443 wapiVersion: "2.3.1" domains: - filterType: Include matchType: Exact name: test.example.com source: type: OpenShiftRoute 3 openshiftRouteOptions: routerName: default 4
次のコマンドを実行して、Infoblox に
ExternalDNS
リソースを作成します。$ oc create -f external-dns-sample-infoblox.yaml
Infoblox UI から、
console
ルート用に作成された DNS レコードを確認します。-
Data Management
DNS Zones をクリックします。 - ゾーン名を選択します。
-
Data Management
6.3.9. External DNS Operator でクラスター全体のプロキシーを設定する
クラスター全体のプロキシーを設定した後、Operator Lifecycle Manager (OLM) はデプロイされたすべての Operator に対して、HTTP_PROXY
、HTTPS_PROXY
、および NO_PROXY
環境変数の新しい内容の自動更新をトリガーします。
6.3.9.1. クラスター全体のプロキシーの認証局を信頼する
External DNS Operator を設定して、クラスター全体のプロキシーの認証局を信頼できます。
手順
次のコマンドを実行して、
external-dns-operator
namespace に CA バンドルを含める config map を作成します。$ oc -n external-dns-operator create configmap trusted-ca
信頼できる CA バンドルを config map に挿入するには、次のコマンドを実行して、
config.openshift.io/inject-trusted-cabundle=true
ラベルを config map に追加します。$ oc -n external-dns-operator label cm trusted-ca config.openshift.io/inject-trusted-cabundle=true
次のコマンドを実行して、External DNS Operator のサブスクリプションを更新します。
$ oc -n external-dns-operator patch subscription external-dns-operator --type='json' -p='[{"op": "add", "path": "/spec/config", "value":{"env":[{"name":"TRUSTED_CA_CONFIGMAP_NAME","value":"trusted-ca"}]}}]'
検証
External DNS Operator のデプロイ後、次のコマンドを実行して、信頼できる CA 環境変数が
external-dns-operator
デプロイメントに追加されていることを確認します。$ oc -n external-dns-operator exec deploy/external-dns-operator -c external-dns-operator -- printenv TRUSTED_CA_CONFIGMAP_NAME
出力例
trusted-ca