返回

使用 Cert-Manager 和 Helm Chart 在 KubeSphere 集群启用免费的泛域名 SSL 证书并实现证书自动更新和分发

见解分享

好的,以下是为你生成的博客文章:

使用 Cert-Manager 和 Helm Chart 在 KubeSphere 集群启用免费的泛域名 SSL 证书并实现证书自动更新和分发

前言

KubeSphere 集群默认安装的证书是自签发证书,当浏览器访问时,安全机制会发出警报。本文介绍了一种利用 let's encrypt 证书管理器和 Helm 图表,在 KubeSphere 集群中启用免费的泛域名 SSL 证书,实现证书的自动更新和分发。这样做可以确保集群中的所有服务都可以使用安全可靠的 HTTPS 协议访问,提高安全性并增强用户信任。

正文

1. 安装 Cert-Manager

首先,我们需要在 KubeSphere 集群中安装 Cert-Manager,这是一个Kubernetes原生证书管理器,可以帮助我们方便地管理证书。

# 添加 Cert-Manager 仓库
helm repo add jetstack https://charts.jetstack.io

# 更新仓库索引
helm repo update

# 安装 Cert-Manager
helm install cert-manager jetstack/cert-manager

2. 创建泛域名证书

接下来,我们需要创建一个泛域名证书,以便为集群中的所有服务提供通用的SSL证书。

# 创建泛域名证书
kubectl create certificate example.com --namespace kube-system

3. 安装 Helm Chart

现在,我们需要安装 Helm 图表来实现证书的自动更新和分发。

# 添加 Helm Chart 仓库
helm repo add kube-lego https://charts.kube-lego.com

# 更新仓库索引
helm repo update

# 安装 Helm Chart
helm install lego kube-lego/lego --set ingress.tls[0].secretName=example-com

4. 配置证书续订

为了确保证书能够自动续订,我们需要配置证书续订任务。

# 创建证书续订任务
kubectl create cronjob lego-renew --schedule="*/5 * * * *" --namespace kube-system --image=quay.io/jetstack/cert-manager-lego:v2.12.2 --command -- /bin/sh -c "lego --path /var/lego --email=example@example.com renew --renew-interval=90d"

5. 验证

最后,我们可以通过访问集群中的服务来验证证书是否已经启用。

# 访问集群中的服务
curl -k https://example.com

如果看到安全连接的提示,则表明证书已经成功启用。

结语

通过使用 Cert-ManagerHelm 图表,我们可以在 KubeSphere 集群中启用免费的泛域名 SSL 证书,并实现证书的自动更新和分发。这样可以确保集群中的所有服务都可以使用安全可靠的 HTTPS 协议访问,提高安全性并增强用户信任。