我一直在努力让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
因此,它似乎无法找到证书文件。
文件路径和名称与以前相同,并且它们与hostPath
一样以与v1.1.2完全相同的方式挂载,所以我不明白为什么api-server不会找到它们。
我一直试图通过简单地切换广告连播中的command
来确定文件路径的运行情况
- /hyperkube
- api-server
...
到
- /bin/sleep
- 60
但kubelet
由于某些我不明白的原因,无法启动此广告连播。
是否与yaml文件名有关?
我不明白为什么kubelet
无法使用此命令运行会发生什么。
对此的任何帮助将不胜感激。
由于
更新
用/hyperkube scheduler
我可以捕捉apiserver抱怨的文件,所以我不明白为什么找不到它们。
答案 0 :(得分:0)
嗯,罪魁祸首就像“”
一样简单--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