Kubernetes 1.2.2:api-server失败:在etcd上找不到已安装的TLS证书

我一直在努力让api-server 1.2.2运行与TLS安全的etcd

我正在从1.1.2升级到1.2.2

1.1.2我使用了--etcd-config标志,并有一个如下所示的文件:

 { "cluster": { "machines": [ "https://XXX.XXX.XXX.XXX:2379", "https://XXX.XXX.XXX.XXY:2379", "https://XXX.XXX.XXX.XXZ:2379" ] }, "config": { "certFile": "/etc/ssl/etcd/etcd-peer.cert.pem", "keyFile": "/etc/ssl/etcd/private/etcd-peer.key.pem", "caCertFiles": [ "/etc/ssl/etcd/ca-chain.cert.pem" ], "consistency": "STRONG_CONSISTENCY" } } 

现在不再支持,我切换到使用标志:

 --etcd-cafile="/etc/ssl/etcd/ca-chain.cert.pem" --etcd-certfile="/etc/ssl/etcd/etcd-peer.cert.pem" --etcd-keyfile="/etc/ssl/etcd/private/etcd-peer.key.pem" --etcd-servers="https://XXX.XXX.XXX.XXX:2379, https://XXX.XXX.XXX.XXY:2379,https://XXX.XXX.XXX.XXZ:2379" 

现在我得到这个错误:

 F0421 00:54:40.133777 1 server.go:291] Invalid storage version or misconfigured etcd: open "/etc/ssl/etcd/etcd-peer<nodeIP>.cert.pem": no such file or directory 

所以,它似乎无法find证书文件。 文件path和名称与以前一样,并且使用hostPath以与hostPath完全相同的方式装载它们,所以我不明白为什么api-server不会find它们。

我一直试图通过简单地切换窗口中的command来查看文件path

 - /hyperkube - api-server ... 

 - /bin/sleep - 60 

但是因为某些原因, kubelet不会启动这个吊舱,我不明白。

它是否与yaml文件名或什么有关?

我不明白为什么kubelet不能用这个命令运行。

任何帮助,将不胜感激。

谢谢

UPDATE

在使用/hyperkube schedulerreplace命令后,我能够进入正在运行的容器

我可以捕捉apiserver抱怨的文件,所以我不明白为什么他们没有find。

那么,罪魁祸首就像“”一样简单

 --etcd-cafile="/etc/ssl/etcd/ca-chain.cert.pem" --etcd-certfile="/etc/ssl/etcd/etcd-peer.cert.pem" --etcd-keyfile="/etc/ssl/etcd/private/etcd-peer.key.pem" --etcd-servers="https://XXX.XXX.XXX.XXX:2379, https://XXX.XXX.XXX.XXY:2379,https://XXX.XXX.XXX.XXZ:2379" 

是错的

但是这个工作:

 --etcd-cafile=/etc/ssl/etcd/ca-chain.cert.pem --etcd-certfile=/etc/ssl/etcd/etcd-peer.cert.pem --etcd-keyfile=/etc/ssl/etcd/private/etcd-peer.key.pem --etcd-servers=https://XXX.XXX.XXX.XXX:2379,https://XXX.XXX.XXX.XXY:2379,https://XXX.XXX.XXX.XXZ:237