如何在GKE中创建DNS授权类型的Google托管证书(支持通配符)
在GKE上创建DNS授权类型的托管证书(支持通配符域名)
默认GKE的ManagedCertificate使用负载均衡授权,若要创建支持通配符域名的证书,必须配置DNS授权类型,具体步骤如下:
1. 前提准备
确保你的域名已托管在Google Cloud DNS中,且域名的DNS服务器已指向Cloud DNS提供的权威服务器。
2. 修改ManagedCertificate配置
在资源配置中添加dnsAuthorization字段,关联你的Cloud DNS托管区域,示例配置如下(包含通配符域名):
apiVersion: networking.gke.io/v1 kind: ManagedCertificate metadata: name: wildcard-managed-cert spec: domains: - "*.example.com" # 通配符域名 - example.com # 根域名(建议包含) dnsAuthorization: dnsProvider: cloudDns: project: YOUR_GCP_PROJECT_ID # 替换为你的GCP项目ID managedZoneName: YOUR_DNS_ZONE_NAME # 替换为Cloud DNS中的托管区域名称
3. 配置GKE服务账号权限
GKE集群的服务账号需要具备操作Cloud DNS的权限,才能自动添加ACME验证记录。执行以下命令为服务账号添加权限:
# 替换占位符为你的实际信息 gcloud projects add-iam-policy-binding YOUR_GCP_PROJECT_ID \ --member=serviceAccount:YOUR_GKE_SERVICE_ACCOUNT@YOUR_GCP_PROJECT_ID.iam.gserviceaccount.com \ --role=roles/dns.admin
若需要更精细的权限,可授予
dns.changes.create、dns.resourceRecordsets.list、dns.resourceRecordsets.get这三个权限,替代roles/dns.admin。
你可以通过以下命令查询GKE集群使用的服务账号:
gcloud container clusters describe YOUR_CLUSTER_NAME --zone YOUR_CLUSTER_ZONE | grep serviceAccount
4. 应用配置并验证
- 应用证书配置:
kubectl apply -f your-cert-config.yaml - 查看证书状态:
kubectl describe managedcertificate wildcard-managed-cert
当证书状态变为Active时,说明已成功签发,此时Cloud DNS中会自动生成ACME验证的DNS记录。
内容的提问来源于stack exchange,提问作者s_curry_s
相关产品推荐
相关产品推荐

