我使用kubernetes v1.5.2,并在tls上实现了api。问题是,在部署kube-dns时,我在minion上收到消息:
Mar 23 10:06:27 node01 journal: I0323 09:06:27.007407 1 dns.go:172] Ignoring error while waiting for service default/kubernetes: Get https://10.254.0.1:443/api/v1/namespaces/default/services/kubernetes: x509: cannot validate certificate for 10.254.0.1 because it doesn't contain any IP SANs. Sleeping 1s before retrying.
我尝试过使用curl,来自另一个pod并且在没有--Ucure切换的情况下失败了,它就可以了。
据我所知10.254.0.1:443实际上是从主节点(api在端口6443上)(192.168.0.200)提供证书,但如何解决它,10.254.0.1提供其有效证书。
以下是来自clusterip api的说明: [root @ master01 dns] #kubectl描述服务kubernetes 名称:kubernetes 命名空间:默认 标签:component = apiserver 供应商= kubernetes 选择: 类型:ClusterIP IP:10.254.0.1 端口:https 443 / TCP 端点:192.168.2.200:6443 会话亲和力:ClientIP
由于 Dubravko
答案 0 :(得分:1)
如果您正在使用服务IP,则您的API服务器证书必须将IP:10.254.0.1作为SAN。
同样,如果您使用服务名称kubernetes.default
访问API,则证书必须具有此名称作为SAN。
一个好的做法是申请至少包含以下SAN的证书:
检查此util脚本以供参考:util.sh