istio有时会出现证书异常的问题,例如证书校验失败,证书过期等,此时需要我们手动处理istio证书问题。
一、我的istio版本
client version: 1.3.3
control plane version: 1.3.3
二、开始处理
1、先查询istio的密钥istio-ca-secret:
kubectl get secret -n istio-system | grep istio-ca-secret
确保在指定名称空间(istio-system)下有istio-ca-secret这个密钥。
2、删除istio-ca-secret:
kubectl delete secret istio-ca-secret -n istio-system
3、查询Citadel及galley的pod名称:
kubectl get po -n istio-system
4、然后过1分钟左右,重启Citadel服务:
kubectl delete po istio-citadel-5f9dc8b9c6-r44p7 -n istio-system
过一分钟的意思是等待密钥istio-ca-secret 重新生成后,在重启(删除)Citadel服务pod。
5、然后过2分钟左右,重启galley服务:
kubectl delete po istio-galley-6c88f9988b-rtg5l -n istio-system
然后问题就解决了,注意等待1分钟和2分钟的时间是必要的,不然可能当时好了,过几分钟之后还出现这个问题,因为证书没有生成完就重启了两个Pod,因此一定要有间隔时间。
备注:查看istio证书过期时间:
kubectl cp istio-galley-6696bd4c5c-pmjc8:/etc/certs -n istio-system /root/cgh/20230221
cd /root/cgh/20230221/
cd …2023_02_21_04_53_37.831578227/
cat cert-chain.pem |openssl x509 -text -noout|grep Validity -A 2