部署kubernetes出现“etcd cluster is unavailable or misconfigured”错误

来源:互联网 发布:teamviewer 12mac版 编辑:程序博客网 时间:2024/04/27 21:43

问题


在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 misconfigurederror #0: dial tcp 127.0.0.1:4001: getsockopt: connection refusederror #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即可成功部署。

0 1
原创粉丝点击