我正在使用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,如果没有--insecure开关就会失败,它就可以了 .
据我所知10.254.0.1:443实际上是从主节点(api在端口6443上)(192.168.0.200)提供证书,但如何解决它,10.254.0.1提供其有效证书 .
以下是来自clusterip api的描述:[root @ master01 dns] #kubectl describe service kubernetes名称:kubernetes命名空间:default标签:component = apiserver provider = kubernetes选择器:类型:ClusterIP IP:10.254.0.1端口:https 443 / TCP endpoints : 192.168.2.200:6443会话亲和力:ClientIP
谢谢Dubravko
1 回答
如果您正在使用服务IP,则您的API服务器证书 must 将IP:10.254.0.1作为SAN .
同样,如果使用服务名称
kubernetes.default
到达API,则证书必须具有此名称作为SAN .一个好的做法是请求至少包含以下SAN的证书:
IP :(服务CIDR的第一个IP)
DNS:kubernetes
DNS:kubernetes.default
DNS:kubernetes.default.svc
DNS:kubernetes.default.svc.cluster.local
检查此util脚本以供参考:util.sh