18.6. Azure での DNS レコードの作成
External DNS Operator を使用して、Azure 上に DNS レコードを作成できます。
Microsoft Entra Workload ID 対応クラスターまたは Microsoft Azure Government (MAG) リージョンで実行されるクラスターで External DNS Operator を使用することはサポートされていません。
18.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
に入力されます。