4.6. Azure での DNS レコードの作成
Microsoft Azure で DNS レコードを作成するには、External DNS Operator を使用します。この Operator を使用すると、クラスターサービスの外部名前解決を管理できます。
Microsoft Entra Workload ID 対応クラスターまたは Microsoft Azure Government (MAG) リージョンで実行されるクラスターで External DNS Operator を使用することはサポートされていません。
4.6.1. Azure DNS ゾーンに DNS レコードを作成する リンクのコピーリンクがクリップボードにコピーされました!
Azure のパブリック DNS ゾーンまたはプライベート DNS ゾーンに DNS レコードを作成するには、External DNS Operator を使用します。Operator は、クラスターの外部名前解決を管理します。
前提条件
- 管理者権限を持っている。
-
adminユーザーの場合、kube-systemnamespace にアクセスできる。
手順
クラウドプロバイダークライアントを使用するために、次のコマンドを実行して
kube-systemnamespace から認証情報を取得します。$ 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 NoneDNS ゾーンのリストを取得します。
パブリック DNS ゾーンの場合は、次のコマンドを入力してください。
$ az network dns zone list --resource-group "${RESOURCE_GROUP}"プライベート DNS ゾーンの場合は、次のコマンドを入力してください。
$ az network private-dns zone list -g "${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 spec: zones: - "/subscriptions/1234567890/resourceGroups/test-azure-xxxxx-rg/providers/Microsoft.Network/dnszones/test.azure.example.com" provider: type: Azure source: openshiftRouteOptions: routerName: default type: OpenShiftRoute # ...ここでは、以下のようになります。
metadata.name- 外部 DNS 名を指定します。
仕様ゾーン-
ゾーン ID を指定します。プライベート DNS ゾーンの場合は、
dnszonesをprivateDnsZonesに変更します。 プロバイダータイプ- プロバイダーの種類を指定します。
source.openshiftRouteOptions- DNS レコードのソースに関するオプションを指定します。
routerName-
ソースタイプが
OpenShiftRouteの場合、OpenShift Ingress Controller 名を渡すことができます。External DNS Operator は、CNAME レコードを作成する際に、そのルーターの正規ホスト名をターゲットとして選択します。 ソースタイプ-
Azure DNS レコードのソースとして、
ルートリソースを指定します。
トラブルシューティング
ルートに対して作成されたレコードを確認します。
パブリック DNS ゾーンの場合は、次のコマンドを入力してください。
$ az network dns record-set list -g "${RESOURCE_GROUP}" -z "${ZONE_NAME}" | grep consoleプライベート DNS ゾーンの場合は、次のコマンドを入力してください。
$ az network private-dns record-set list -g "${RESOURCE_GROUP}" -z "${ZONE_NAME}" | grep console