部署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即可成功部署。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值