前言
目前https是刚需,但证书又很贵,虽然阿里云有免费的,但没有泛域名证书,每有一个子域名就要申请一个证书,有效期1年,1年一到全都的更换,太麻烦了。经过搜索,发现了自动更新证书神器cert-manager;当然cert-manager是基于k8s的。
安装采用Helm方式
Chart地址: https://artifacthub.io/packages/helm/cert-manager/cert-manager
Github地址: https://github.com/cert-manager/cert-manager
版本要求:
k8s > 1.20
一、安装cert-manager(1.13.3)
- 安装自定义资源
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.13.3/cert-manager.crds.yaml
- helm安装cert-manager
## Add the Jetstack Helm repository
helm repo add jetstack https://charts.jetstack.io
helm repo update
kubectl create ns cert-manager
## Install the cert-manager helm chart
$ helm install cert-manager --namespace cert-manager --version v1.13.3 jetstack/cert-manager
- 查看安装结果
helm ls -n cert-manager
kubectl get pod -n cert-manager
二、创建ClusterIssuer
官方说明创建ClusterIssuer
这里使用Nginx Ingress的配置方式,需要k8s中安装Nginx Ingress;并且域名指向正确
ClusterIssuer故名思意就是证书颁发者,主要用来配置证书颁发机构(这里配置的是免费证书颁发机构Let’s Encrypt)以及验证方式(这里配置的验证方式是http)
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
name: letsencrypt-prod-http
namespace: cert-manager
spec: