部署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:-"vinzor@172.18.228.32 vinzor@172.18.228.33 vinzor@172.18.228.34"}
 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:-"vinzor@10.0.0.3 vinzor@10.0.0.4 vinzor@10.0.0.5"}
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即可成功部署。

阅读更多
版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/wangtaoking1/article/details/51554932
文章标签: kubernetes
个人分类: Docker/Kubernetes
上一篇字符串编码与Python 3编码
下一篇安装Python mysqlclient出现“OSError: mysql_config not found”错误
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭