2016-04-21 65 views
1

安装证书的TLS我一直努力让api-server 1.2.2etcdTLS安全的运行。Kubernetes 1.2.2:API服务器失败:找不到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 

因此,它似乎无法找到证书文件。 文件路径和名称与以前一样,并且它们以与v1.1.2完全相同的方式装载,因此我不明白为什么api-server不会找到它们。

我一直在试图找出什么是简单地从

- /hyperkube 
- api-server 
... 

切换command在吊舱

- /bin/sleep 
- 60 

kubelet不会启动该吊舱的文件路径怎么回事出于某种原因,我不明白。

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

我不明白为什么kubelet不会使用此命令运行。

任何帮助,这将不胜感激。

感谢

UPDATE

我能够进入运行容器/hyperkube scheduler

替换命令后,我可以猫API服务器被抱怨的文件,所以我不不明白他们为什么找不到。

+0

这里还报道:https://github.com/kubernetes/kubernetes/issues/24578交叉参考 – MrE

+0

我试过v1.2.1和同样的问题。只有1.1.2似乎工作 – MrE

回答

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 
+0

如果你在终端中运行这些程序,shell会帮助你删除引号,所以apiserver实际上可以看到两个引用相同的调用。如果你从非shell环境启动(比如容器命令数组中的参数),你应该省略引号 –

+0

谢谢......这很好理解,但不幸的是并不明显。 – MrE

相关问题