内容简介
我们使用Certbor工具向Let's Encrypt免费申请并自动续期证书,而在Kubernetes Cluster中,我们可以使用cert-manager组件来实现。
本文将介绍如何在Kubernetes Cluster中部署cert-manager组件。
部署之前
部署使用常规YAML清单文件,与其他组件部署类似。
在部署之后,需要创建代表CA的Issuer或Cluster Issuer资源
版本v0.11.0的cert-manager最少需要Kubernetes v1.12.0版本。
不要在集群中部署多个cert-manager示例,否则会出现以外行为。
使用清单文件创建
# kubectl create namespace cert-manager
# kubectl apply --validate=false -f https://github.com/jetstack/cert-manager/releases/download/v0.12.0/cert-manager.yaml
验证安装
# kubectl get pods --namespace cert-manager
这个过程需要花费一些时间
使用下面Yaml文件测试:
apiVersion: v1 kind: Namespace metadata: name: cert-manager-test --- apiVersion: cert-manager.io/v1alpha2 kind: Issuer metadata: name: test-selfsigned namespace: cert-manager-test spec: selfSigned: {} --- apiVersion: cert-manager.io/v1alpha2 kind: Certificate metadata: name: selfsigned-cert namespace: cert-manager-test spec: commonName: example.com secretName: selfsigned-cert-tls issuerRef: name: test-selfsigned
查看状态:
# kubectl describe certificate -n cert-manager-test
如果顺利,你将在cert-manager-test中看到名为selfsigned-cert-tls的自签名的证书:
# kubectl describe -n cert-manager-test secret selfsigned-cert-tls
查看证书过期时间:
# kubectl get -n cert-manager-test secrets selfsigned-cert-tls -o jsonpath="{.data.ca\.crt}" | base64 -d | openssl x509 -enddate -noout