18.7 总结

在Istio比较早期的版本中,自签名CA证书有效期只有一年时间,如果使用老版本Istio超过一年,就会遇到这个问题。当证书过期之后,我们创建新的虚拟服务或者Pod,都会因为CA证书过期而失败。而这时如果要重启Citadel,它会读取过期证书并验证其有效性,就会出现以上Cidatel不能启动的问题。

这个CA证书在Kubernetes集群中是以istio-ca-secret命名的Secret,我们可以使用openssl解码证书来查看有效期。这个问题比较简单的处理方法,就是删除这个Secret,并重启Citadel,这时Citadel会转而采用新建和验证自签名CA证书的逻辑并刷新CA证书。我们也可以参考官方网站页面extending self-signed certificate lifetime中的方式进行处理。