2017-03-23 64 views
0

我正在使用kubernetes v1.5.2,並且已經在tls上實現了api。問題是,在部署KUBE-DNS我得到消息的馬仔爲:Kubernetes kube-dns TLS證書驗證

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. 

我用捲曲,從另一個莢嘗試和失敗沒有--insecure開關,白衣它是好的。

據我所知,10.254.0.1:443實際上是從主節點(端口6443上的api)(192.168.0.200)提供證書,但是如何解決它,即10.254.0.1服務其有效證書。

下面是從clusterip API描述: [根@ master01 DNS]#kubectl描述服務kubernetes 名稱:kubernetes 名字空間:默認 標籤:成分= API服務器 提供商= kubernetes 選擇: 類型:ClusterIP IP :10.254.0.1 端口:HTTPS 443/TCP 終點:192.168.2.200:6443 會話親和性:ClientIP

感謝 Dubravko

+0

您是否使用自定義SSL證書?你是如何生成它的? – jaxxstorm

+0

我正在使用SAN證書,我如何擁有DNS:master01,DNS:master01.lab.cs,IP地址:192.160.2.200,IP地址:10.254.0.1 –

+0

是的,我問你是否自己生成證書。 – jaxxstorm

回答

1

如果您使用服務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.sh