16.5. 在 Azure 上创建 DNS 记录


您可以使用 External DNS Operator 在 Azure 上创建 DNS 记录。

16.5.1. 使用 Red Hat External DNS Operator 在 Azure 公共 DNS 区上创建 DNS 记录

您可以使用 Red Hat External DNS Operator 为 Azure 的公共 DNS 区域创建 DNS 记录。

流程

  1. 检查用户。用户必须有权访问 kube-system 命名空间。如果没有凭证,您可以从 kube-system 命名空间中获取凭证,以使用云供应商客户端:

    $ oc whoami

    输出示例

    system:admin

  2. kube-system 命名空间中获取 azure-credentials secret 的值。

    $ 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 zones 列表以查找与之前找到的路由域对应的 dns 区域:

    $ az network dns zone list --resource-group "${RESOURCE_GROUP}"
  6. 路由源创建 ExternalDNS 资源:

    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
    EOF
    1
    指定外部 DNS CR 的名称。
    2
    定义区域 ID。
    3
    定义 Azure DNS 供应商。
    4
    您可以定义 DNS 记录源的选项。
    5
    如果源是 OpenShiftRoute,您可以传递 OpenShift Ingress Controller 名称。外部 DNS 在创建 CNAME 记录时,选择该路由器的规范主机名作为目标。
    6
    定义 OpenShift 路由资源,作为在之前指定的 DNS 供应商中创建的 DNS 记录来源。
  7. 使用以下命令,检查为 OCP 路由创建的记录:

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

    要在私有 Azure dns 上的私有托管区中创建记录,您需要在 zones 下指定私有区,在 ExternalDNS 容器 args 中填充供应商类型到 azure-private-dns

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.