Kubernetes kube dns TLS证书验证

Kubernetes kube dns TLS证书验证,dns,kubernetes,Dns,Kubernetes,我使用的是KubernetesV1.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/namespace

我使用的是KubernetesV1.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.
我试过从另一个pod使用curl,但它在没有不安全的开关的情况下失败了,这是正常的

我知道10.254.0.1:443实际上提供来自主节点(端口6443上的api)(192.168.0.200)的证书,但如何解决它,10.254.0.1提供其有效证书

以下是clusterip api的描述: [root@master01dns]#kubectl描述服务kubernetes 姓名:kubernetes 名称空间:默认值 标签:组件=apiserver 提供者=kubernetes 选择器: 类型:集群 IP:10.254.0.1 端口:https 443/TCP 端点:192.168.2.200:6443 会话关联:ClientIP

谢谢
Dubravko

如果您使用的是IP服务,则您的API服务器证书必须将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脚本以供参考:

如果您正在使用服务IP,则您的API服务器证书必须将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脚本以供参考:

是否使用自定义SSL证书?您是如何生成它的?我正在使用SAN证书,如何生成DNS:master01、DNS:master01.lab.cs、IP地址:192.160.2.200、IP地址:10.254.0.1是的,我在问您是否自己生成了证书。您是否使用自定义SSL证书?您是如何生成的?我正在使用SAN证书,如何生成DNS:master01、DNS:master01.lab.cs、IP地址:192.160.2.200、IP地址:10.254.0.1是的,我在问您是否自己生成了证书。