如果在多个集群中启用跨集群的双向TLS通信,就需要按照如下方式在各个集群中进行部署配置。首先,从共享的根CA为每个集群的Citadel生成中间CA证书,共享的根CA启用跨不同集群的双向TLS通信。为了便于说明,我们将samples/certs目录下Istio安装中提供的示例根CA证书用于两个集群。在实际部署中,你可能会为每个集群使用不同的CA证书,所有CA证书都由公共根CA签名。
在每个Kubernetes集群中(包括示例中的集群cluster1与cluster2)创建密钥。使用以下的命令为生成的CA证书创建Kubernetes密钥:
kubectl create namespace istio-system kubectl create secret generic cacerts -n istio-system \ --from-file=samples/certs/ca-cert.pem \ --from-file=samples/certs/ca-key.pem \ --from-file=samples/certs/root-cert.pem \ --from-file=samples/certs/cert-chain.pem
当然,如果你的环境只是开发测试或者不需要启用双向TLS通信,上述步骤完全可以跳过。