如何将GKE负载均衡器证书从Google-managed转为self-managed?
将GKE负载均衡器SSL证书从Google-managed切换为self-managed的步骤
1. 准备SSL证书文件
确保你手头有两个关键文件:
- 证书文件(例如
tls.crt):包含你的域名证书,以及所有必需的中间证书(按顺序拼接,从域名证书到根证书) - 私钥文件(例如
tls.key):对应证书的RSA私钥,不能设置密码保护
2. 创建Kubernetes TLS Secret
用kubectl在目标命名空间下创建存储证书的Secret,命名空间要和你的Ingress/Service一致:
kubectl create secret tls self-managed-tls-secret --cert=./tls.crt --key=./tls.key -n your-namespace
验证Secret是否创建成功:
kubectl get secrets self-managed-tls-secret -n your-namespace
3. 修改Ingress资源替换证书
编辑你的Ingress配置:
kubectl edit ingress your-ingress-name -n your-namespace
找到spec.tls区块,把原来指向Google-managed证书的配置替换成刚创建的Secret:
原Google-managed配置示例:
spec: tls: - hosts: - example.com managedCertificates: - name: google-managed-cert
修改后:
spec: tls: - hosts: - example.com secretName: self-managed-tls-secret
保存退出后,Kubernetes会自动触发负载均衡器的证书更新。
4. 验证切换结果
- 查看Ingress状态,确认SSL配置已更新:
kubectl describe ingress your-ingress-name -n your-namespace - 访问你的域名,检查证书是否生效(自签名证书会触发浏览器安全提示,第三方签发证书则正常)
5. (可选)清理旧证书资源
如果不再需要原来的Google-managed证书,可以删除:
kubectl delete managedcertificate google-managed-cert -n your-namespace
内容的提问来源于stack exchange,提问作者Tim Chiang
相关产品推荐
相关产品推荐

