部署kubernetes出現“etcd cluster is unavailable or misconfigured”錯誤

問題


在OpenStack平臺的虛擬機上使用Kubernetes搭建一個容器集羣,一個Master節點(10.0.0.3/172.18.228.32),兩個Node節點(10.0.0.4/172.18.228.33和10.0.0.5/172.18.228.34)。這裏直接使用官方的腳本在Ubuntu 14.04.1 server裸機上進行搭建。配置文件config-default.sh如下:

 export nodes=${nodes:-"[email protected] [email protected] [email protected]"}
 role=${roles:-"a i i"}
 export NUM_NODES=${NUM_NODES:-2}
 export SERVICE_CLUSTER_IP_RANGE=${SERVICE_CLUSTER_IP_RANGE:-192.168.3.0/24}
 export FLANNEL_NET=${FLANNEL_NET:-172.16.0.0/16}

使用kube-up.sh進行部署,出現瞭如下錯誤:

Error:  client: etcd cluster is unavailable or misconfigured
error #0: dial tcp 127.0.0.1:4001: getsockopt: connection refused
error #1: dial tcp 127.0.0.1:2379: getsockopt: connection refused

解決方案


一開始以爲是Etcd進程的問題,以爲不兼容就各種切換版本,而且修改utils.sh中etcd的啓動配置,始終不能解決問題。
經過多次調試(這裏就不說詳細過程誤導大家了,總之一把鼻滴一把淚),總算找出了問題。這裏在部署的時候配置文件使用的是每個節點的floating IP,floating IP相當於OpenStack平臺爲每一個虛擬機分配的一個外部IP,這個IP並不是實際配置在虛擬機的網卡上的,而是通過OpenStack平臺中的Iptables實現。我們這裏使用floating IP進行部署,導致Etcd進程在進行同步的時候出現連接不上的問題,以致部署失敗。

我們將配置文件改爲使用實際配置在虛擬機網卡上的內部IP,如下:

export nodes=${nodes:-"[email protected] [email protected] [email protected]"}
role=${roles:-"a i i"}
export NUM_NODES=${NUM_NODES:-2}
export SERVICE_CLUSTER_IP_RANGE=${SERVICE_CLUSTER_IP_RANGE:-192.168.3.0/24}
export FLANNEL_NET=${FLANNEL_NET:-172.16.0.0/16}

此時再使用kube-up.sh即可成功部署。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章