在哪里可以为 kubernetes 集群部署创建由 google 管理的 SSL 证书?

在哪里可以为 kubernetes 集群部署创建由 google 管理的 SSL 证书?

我正在尝试在我的网站上设置 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 地址。

如果您不想在以后重新配置您的域,那么最后一个尤其​​重要。

相关内容