返回
使用 Cert-Manager 和 Helm Chart 在 KubeSphere 集群启用免费的泛域名 SSL 证书并实现证书自动更新和分发
见解分享
2023-10-27 04:32:28
好的,以下是为你生成的博客文章:
使用 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-Manager
和 Helm
图表,我们可以在 KubeSphere
集群中启用免费的泛域名 SSL
证书,并实现证书的自动更新和分发。这样可以确保集群中的所有服务都可以使用安全可靠的 HTTPS
协议访问,提高安全性并增强用户信任。