Kubernetes 中 Ingress 配置 SSL 证书的方法

阅读时长 5 分钟读完

随着云计算技术的发展,Kubernetes 已经成为了容器编排和管理的事实标准。在 Kubernetes 集群中,Ingress 是用于管理外部流量的核心组件。通过 Ingress,我们可以将流量路由到正确的服务和端口上。然而,在传输敏感数据时,我们需要保证连接的安全性,这时就需要配置 SSL 证书。接下来,本文将介绍 Kubernetes 中 Ingress 配置 SSL 证书的详细方法。

创建 SSL 证书

首先,我们需要先创建 SSL 证书。这里我们介绍使用 Let’s Encrypt 免费 SSL 证书,可以通过 Certbot 工具生成。

在 Linux 环境下,我们可以通过以下命令先安装 Certbot 工具:

安装完成后,我们就可以生成 SSL 证书了。假设我们的域名为 example.com,我们可以通过以下命令生成 SSL 证书:

这里的 -d 参数可以指定多个域名,例如同时支持 example.comwww.example.com。执行完毕后,SSL 证书就会保存在 /etc/letsencrypt/live/example.com/ 目录下。

配置 Ingress

接下来,我们需要在 Kubernetes 中配置 Ingress,使其能够使用刚刚生成的 SSL 证书。

我们先创建一个 Ingress 资源文件 ingress.yml,并写入以下内容:

-- -------------------- ---- -------
----------- --------------------
----- -------
---------
  ----- ---------------
  ---------- -------
  ------------
    -------------------------------------------- ----------------- - ----- --- --
-----
  ----
  - ------
    - ----------- - -- --- -------
    ----------- --------------- - --- --- ------ --
  ------
  - ----- ----------- - -- ------- -----
    -----
      ------
      - ----- -
        --------- ------
        --------
          --------
            ----- --------------- - -- ------- --- ------- ---
            -----
              ----- ----

这里的 nginx.ingress.kubernetes.io/ssl-certificate 指定了使用的 SSL 证书名称,需要与下面的 secretName 对应。tls.hosts 表示 SSL 证书对应的域名,需要填写正确。rules.host 则表示 Ingress 对应的域名。注意,这里的 Ingress 只是用于示例,需要按照实际情况修改。

接下来,我们执行以下命令创建 Ingress:

创建完成后,我们可以使用以下命令查看 Ingress:

创建 Secret

由于我们指定了 SSL 证书,而 Kubernetes 中的 Secret 可以用于存储证书。因此,我们需要先创建一个 Secret。

我们可以使用以下命令创建一个 Secret:

这里的 example-com-tls 表示 Secret 名称,需要与上面的 secretName 对应。--key--cert 分别指定 SSL 证书的私钥和证书文件路径,需要填写正确路径。执行完毕后,SSL 证书就会被存储在 Secret 中。

测试

完成上述步骤后,我们就可以测试 Ingress 是否能够使用 SSL 证书了。首先,我们需要访问 example.com,查看证书是否生效。可以使用以下命令测试:

这里的 -k 参数表示忽略证书校验,因为我们使用的是 Let’s Encrypt 的免费证书,不受浏览器的信任。如果可以正常访问,就表示 SSL 证书配置成功了。

结论

本文介绍了 Kubernetes 中 Ingress 配置 SSL 证书的方法。通过了解 Let’s Encrypt 免费 SSL 证书的生成方法,以及在 Kubernetes 中配置 Ingress 和 Secret 的方法,我们可以轻松地保证连接的安全性,保障应用程序的可靠性。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6704f2c5d91dce0dc850f72f

纠错
反馈