GKE ca.cert中没有IP,这会在连接到API服务器时导致SSL错误

时间:2017-02-01 21:39:02

标签: ssl kubernetes google-kubernetes-engine

我查看了部署到容器中的服务帐户ca.crt文件,它们不包含任何具有主节点的IP或DNS名称的SAN。这会导致SSL错误,例如:https://0.0.0.0:10250/metrics:x509:无法验证0.0.0.0的证书,因为它不包含任何IP SAN。

有没有其他人遇到这个问题?除了允许不安全的ssl之外,你是如何解决它的呢?

1 个答案:

答案 0 :(得分:2)

服务帐户(/run/secrets/kubernetes.io/serviceaccount/ca.crt)提供的ca证书用于与apiserver通信(由GKE上的主服务器提供)。

# curl --cacert /run/secrets/kubernetes.io/serviceaccount/ca.crt https://kubernetes -H "Authorization: Bearer $(cat /run/secrets/kubernetes.io/serviceaccount/token)"
{
  "paths": [
    "/api",
    ...
  ]

看起来您正在尝试与kubelet API(端口10250)进行通信。 kubelet API提供自签名证书,因此不安全是唯一的方法。