17.6. 在 GCP 上创建 DNS 记录
您可以使用 External DNS Operator 在 Google Cloud Platform (GCP) 上创建 DNS 记录。
不支持在启用了 GCP Workload Identity 的集群上使用 External DNS Operator。有关 GCP Workload Identity 的更多信息,请参阅在 GCP Workload Identity 中使用手动模式。
17.6.1. 在 GCP 公共管理区上创建 DNS 记录 复制链接链接已复制到粘贴板!
您可以使用 External DNS Operator 在 GCP 公共受管区上创建 DNS 记录。
先决条件
- 您必须具有管理员特权。
流程
运行以下命令,将
gcp-credentials
secret 复制到encoded-gcloud.json
文件中:oc get secret gcp-credentials -n kube-system --template='{{$v := index .data "service_account.json"}}{{$v}}' | base64 -d - > decoded-gcloud.json
$ oc get secret gcp-credentials -n kube-system --template='{{$v := index .data "service_account.json"}}{{$v}}' | base64 -d - > decoded-gcloud.json
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令导出 Google 凭证:
export GOOGLE_CREDENTIALS=decoded-gcloud.json
$ export GOOGLE_CREDENTIALS=decoded-gcloud.json
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用以下命令激活您的帐户:
gcloud auth activate-service-account <client_email as per decoded-gcloud.json> --key-file=decoded-gcloud.json
$ gcloud auth activate-service-account <client_email as per decoded-gcloud.json> --key-file=decoded-gcloud.json
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来设置项目:
gcloud config set project <project_id as per decoded-gcloud.json>
$ gcloud config set project <project_id as per decoded-gcloud.json>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来获取路由列表:
oc get routes --all-namespaces | grep console
$ oc get routes --all-namespaces | grep console
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
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
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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来获取受管区列表:
gcloud dns managed-zones list | grep test.gcp.example.com
$ gcloud dns managed-zones list | grep test.gcp.example.com
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
qe-cvs4g-private-zone test.gcp.example.com
qe-cvs4g-private-zone test.gcp.example.com
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建一个 YAML 文件,如
external-dns-sample-gcp.yaml
,该文件定义ExternalDNS
对象:external-dns-sample-gcp.yaml
文件示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,检查为 OpenShift Container Platform 路由创建的 DNS 记录:
gcloud dns record-sets list --zone=qe-cvs4g-private-zone | grep console
$ gcloud dns record-sets list --zone=qe-cvs4g-private-zone | grep console
Copy to Clipboard Copied! Toggle word wrap Toggle overflow