我一直在努力让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所以,它似乎找不到cert文件。文件路径和名称与以前相同,它们是用hostPath安装的,方式与v1.1.2完全相同,所以我不明白为什么api-server找不到它们。
我一直试图通过简单地将吊舱中的command切换到
- /hyperkube
- api-server
...至
- /bin/sleep
- 60但是kubelet不会启动这个吊舱,因为我不明白的原因。
是不是和yaml文件名有关?
我不明白发生了什么,为什么kubelet不使用这个命令运行。
如果能对此提供任何帮助,我们将不胜感激。
谢谢
更新
在用/hyperkube scheduler替换命令之后,我能够进入正在运行的容器。
我可以禁止apiserver抱怨的文件,所以我不明白为什么找不到它们。
发布于 2016-04-21 19:28:34
嗯,罪魁祸首就像"“
--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:237https://stackoverflow.com/questions/36758328
复制相似问题