2016-04-21 67 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