我正在尝试在我的网站上设置 SSL。我部署到自动驾驶 kubernetes 集群。我有一个通过 Google Domains 获得的域,该域的 DNS 指向我的 kubernetes 公开 IP 并带有 A 记录。到目前为止,我在 GCP 中发现至少有两个不同的地方似乎可以指导我创建 Google 管理的 SSL 证书,但它们都不起作用。一个是通过应用引擎,我不认为这是我需要使用的。另一个是通过网络服务 -> 负载平衡。我开始认为这也不是我应该使用的。我该去哪里?
答案1
一种是通过应用引擎,我不认为这是我需要使用的。
你说得对,这绝对是错误的方向。因为你不使用应用引擎但Kubernetes 引擎这不是您感兴趣的文档部分。
你应该从本文在官方GCP 文档而拼图中缺失的一块是入口资源,您需要创建以向外部公开您的应用。如您所见,它是Google Kubernetes 引擎文档:
Google Kubernetes Engine (GKE) > 文档 > 指南
正如您在上文中读到的:
注意:此功能仅适用于用于外部 HTTP(S) 负载平衡的 Ingress。
您可以在本节。
由于文档中对所有内容都有很好的描述,因此我在此仅强调关键点。
首先,检查你的吉科版本并确保使用正确的API 版本创建ManagedCertificate
自定义资源:
您可以使用自定义资源配置 Google 管理的 SSL 证书
ManagedCertificate
,该资源有不同的 API 版本可用,具体取决于您的 GKE 集群版本:
- ManagedCertificate v1beta2 API 适用于 GKE 集群 1.15 及更高版本。
- ManagedCertificate v1 API 适用于 GKE 集群版本 1.17.9-gke.6300 及更高版本。
尽管 GKE 集群目前支持 ManagedCertificate v1beta1 API,但此 API 版本已被弃用,并将在未来的 GKE 版本中被移除。建议您使用较新的 API 版本。
在本质上,使用 Google 管理的证书创建 Ingress归结为以下两个基本步骤:
- 创建一个 ManagedCertificate 对象。
- 通过向 Ingress 添加注释 networking.gke.io/managed-certificates,将 ManagedCertificate 对象关联到 Ingress。此注释是 ManagedCertificate 资源的逗号分隔列表,例如 cert1、cert2、cert3。
其中详细描述这里。
还要特别注意先决条件:
- 您必须拥有该域名。域名不得超过 63 个字符。您可以使用 Google 域名 或其他注册商。
这个您已经见过了。
- 你
"kubernetes.io/ingress.class"
一定是"gce"
。- 创建一个 保留(静态)外部 IP 地址。保留静态 IP 地址可确保即使您删除 Ingress,该地址仍属于您。如果您不保留地址,该地址可能会发生变化,需要您重新配置域的 DNS 记录。使用
gcloud
命令行工具或 Cloud Console 创建保留的 IP 地址。
如果您不想在以后重新配置您的域,那么最后一个尤其重要。