这次讲的是 troubleshooting about letsencrypt.
Troubleshooting Problems with ACME / Let's Encrypt Certificates - cert-manager Documentation
letsencrypt 你创建了issuer,ingress 但是你发现你的证书是没有 正常状态的,访问服务器域名反馈是不受信任的。
那么就是因为证书是打到ingress上,但你的证书没有被挑战通过。
那么此时就troubleshooting。
troubleshooting的思路:
1.检查创建的issuer
rancher-rke-01:/demo # kubectl get issuer -n demo
NAME READY AGE
letsencrypt-demo True 31m
状态为True 则正常。如果不正常检查yaml配置。
2.检查调用的ingress配置
检查yaml配置。
重点是:注解部分
3.检查CertificateRequest
rancher-rke-01:/demo # kubectl get CertificateRequest -n cattle-system
NAME APPROVED DENIED READY ISSUER REQUESTOR AGE
tls-rancher-ingress-1 True False rancher system:serviceaccount:cert-manager:cert-manager 29h
我这里就不正常,查看为啥不正常。
kubectl describe CertificateRequest -n cattle-system
原因:你的order没有就绪呀,继续排。
4.检查order
kubectl describe order -n cattle-system
order的意思就是你的挑战没通过,我没办法给你颁发。那么继续看挑战,为啥没过?
5.检查challenges
kubectl describe challenges -n cattle-system
意思就是说: 10.43.0.10 这是我coredns的pod ip,我的coredns没办法解析这个域名没有对于的ip地址。
根因就是这里,因为内部的域名coredns那肯定没有嘛,哪怕coredns他解析不来也可以用你主机cat /etc/resolv.conf,但因为你主机的dns也没有这个记录的嘛。
所以咱们可以手动在coredns中添加这条dns解析记录来解决。
Simulate Let’s Encrypt certificate issuing in local Kubernetes | Manabie Tech Blog
参考这篇文章,
下课!