K8S手把手实战系列: 使用CertManager和LetsEncrypt在K8S中添加免费的SSL/TLS证书

文摘   2024-12-27 22:11   挪威  

欢迎点击下方👇关注我,记得星标哟~

文末会有重磅福利赠送


最近,我个人开发的网站遇到一个新需求:之前购买的 SSL 证书到期了。 考虑到成本问题,我决定这次尝试一下免费的 SSL 证书。 毕竟,免费的东西有时候也能“真香”!

找个参考文档链接 

https://dev.to/ileriayo/adding-free-ssltls-on-kubernetes-using-certmanager-and-letsencrypt-a1l


接下来,跟着我手把手实操一下吧! 

第一步,在K8S集群中安装 Cert-manager
helm install cert-manager jetstack/cert-manager   --namespace cert-manager   --create-namespace --set installCRDs=true
检查pod状态
ubuntu@instance-k8s:~$ kubectl get pods --namespace cert-managerNAME                                       READY   STATUS    RESTARTS      AGEcert-manager-cainjector-7cc466564c-9f6fr   1/1     Running   0             3dcert-manager-webhook-555b8fbdbc-w59bs      1/1     Running   0             3dcert-manager-6585596d7f-4rlhb              1/1     Running   1 (1d ago)   3d

第二步  添加Issuer (or ClusterIssuer) - Let's Enncrypt
ubuntu@instance-k8s:~/cert$ cat clusterissuer.yamlapiVersion: cert-manager.io/v1kind: ClusterIssuer # I'm using ClusterIssuer heremetadata:  name: letsencrypt-prodspec:  acme:    server: https://acme-v02.api.letsencrypt.org/directory    email: jonathan@gmail.com    privateKeySecretRef:      name: letsencrypt-prod    solvers:    - http01:        ingress:          classpublic
apply it 
kubectl apply -f clusterissuer.yaml

第三步, 更新个人网站ingress配置
apiVersion: networking.k8s.io/v1kind: Ingressmetadata:  annotations:    cert-manager.io/cluster-issuer: letsencrypt-prod  name: http-ingress  namespacedefaultspec:  ingressClassName: public  rules:  - host: chatgpt.sredevops.top    http:      paths:      - backend:          service:            name: chat            port:              number: 9000        path: /        pathType: Prefix  tls:  - hosts:    - chatgpt.sredevops.top    secretName: letsencrypt-prod
验证下证书是否已签发
ubuntu@instance-k8s:~/k8s-deploy-app$ k  describe certificate letsencrypt-prodName:         letsencrypt-prodNamespace:    defaultAPI Version:  cert-manager.io/v1Kind:         CertificateSpec:  Dns Names:    chatgpt.sredevops.top  Issuer Ref:    Group:      cert-manager.io    Kind:       ClusterIssuer    Name:       letsencrypt-prod  Secret Name:  letsencrypt-prod  Usages:    digital signature    key enciphermentStatus:  Conditions:    Last Transition Time:  2024-11-13T15:06:51Z    Message:               Certificate is up to date and has not expired    Observed Generation:   1    Reason:                Ready    Status:                True    Type:                  Ready  Not After:               2025-02-11T14:08:17Z  Not Before:              2024-11-13T14:08:18Z  Renewal Time:            2025-01-12T14:08:17Z  Revision:                1Events:                    <none>
最后,打开下网站验证即可证书是否生效
是不是很简单。。。

加入知识星球,共同探索云原生学习之旅!

更多云架构、K8S学习资料以及SRE学习手册,加入星球免费领取哦!

感兴趣的朋友们可以加我微信:sre_k8s,备注:云原生交流

          

 

    


云原生SRE
懂点K8S的SRE,关注云原生、DevOps、AI\x26amp;ChatGPT等技术热点
 最新文章