14.5. Azure での DNS レコードの作成

外部 DNS Operator を使用して、Azure で DNS レコードを作成できます。

14.5.1. Red Hat 外部 DNS Operator を使用した Azure のパブリック DNS ゾーンへの DNS レコードの作成

Red Hat 外部 DNS Operator を使用して、Azure のパブリック DNS ゾーンに DNS レコードを作成できます。

手順

  1. ユーザーを確認してください。ユーザーは、 kube-systemnamespace にアクセスできる必要があります。クレデンシャルがない場合は、 kube-systemnamespace からクレデンシャルを取得すると、クラウドプロバイダークライアントを使用できます。

    $ oc whoami

    出力例

    system:admin

  2. kube-system namespace に存在する azure-credentials シークレットから値を取得します。

    $ 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)
  3. base64 でデコードされた値を使用して azure にログインします。

    $ az login --service-principal -u "${CLIENT_ID}" -p "${CLIENT_SECRET}" --tenant "${TENANT_ID}"
  4. ルートを取得して、ドメインを確認します。

    $ 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

  5. DNS ゾーンのリストを取得して、以前に検出されたルートのドメインに対応するものを検索します。

    $ az network dns zone list --resource-group "${RESOURCE_GROUP}"
  6. route ソースの ExternalDNS リソースを作成します。

    apiVersion: externaldns.olm.openshift.io/v1alpha1
    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
    EOF
    1
    外部 DNS CR の名前を指定します。
    2
    ゾーン ID を定義します。
    3
    Azure DNS プロバイダーを定義します。
    4
    DNS レコードのソースのオプションを定義できます。
    5
    ソースが OpenShiftRoute の場合、OpenShift Ingress Controller 名を指定できます。外部 DNS は、CNAME レコードの作成時に、そのルーターの正規のホスト名をターゲットとして選択します。
    6
    以前に指定された DNS プロバイダーで作成される DNS レコードのソースとして OpenShift route リソースを定義します。
  7. 次のコマンドを使用して、OCP ルート用に作成されたレコードを確認します。

    $ az network dns record-set list -g "${RESOURCE_GROUP}"  -z test.azure.example.com | grep console
    注記

    プライベート Azure DNS のプライベートホストゾーンにレコードを作成するには、ゾーンの下にプライベートゾーンを指定する必要があります。ゾーンは、ExternalDNSコンテナー引数でプロバイダータイプをazure-private-dnsに設定します。