Kubernetes吊舱彼此看不见

时间:2019-06-04 16:18:37

标签: kubernetes vmware kubernetes-helm

我使用here中的Helm图表并在运行以下Helm命令之后,在Kubernetes集群上部署了ElasticSearch集群:

helm install stable/elasticsearch --name crv-elasticsearch  --set data.persistence.storageClass=nfs-client,data.storage=10Gi --set master.persistence.storageClass=nfs-client --set cluster.name=k8s-elk

我创建了3个吊舱。但是,如果我查看日志,就会发现错误:

[o.e.d.z.ZenDiscovery     ] [crv-elasticsearch-master-0] not enough master nodes discovered during pinging (found [[Candidate{node={crv-elasticsearch-master-0}{4pQmoRkoTK28uWahaOo6Xw}{Bl_5yXubSQCld9eQ0zykgw}{10.233.67.55}{10.233.67.55:9300}, clusterStateVersion=-1}]], but needed [2]), pinging again
[2019-06-04T16:12:16,206][WARN ][o.e.d.z.UnicastZenPing   ] [crv-elasticsearch-master-0] failed to resolve host [crv-elasticsearch-discovery]
java.net.UnknownHostException: crv-elasticsearch-discovery

elasticsearch吊舱似乎没有看到对方。

我在VMWare vSphere上部署了一个K8s集群。

1 个答案:

答案 0 :(得分:0)

好的。我已经找到了解决问题的答案,它与ElasticSearch或Helm无关,而与Kubernetes和Flannel有关。

我已经部署了一个由6个VM组成的Kubernetes集群:3个主节点和3个节点。 VM是使用VMWare技术创建的。之后,使用KubeSpray设置Kubernetes集群,其中Flannel是Kubernetes网络的实现。

Flannel需要端口8472(默认值)来执行与Vxlan相关的某些操作,并且您会在KubeSpray Ansible剧本中找到属性flannel_backend_port。 VMWare还为Vxlan使用了端口8472,因此您必须将flannel_backend_port的值从8472更改为另一个(给一个明确的端口,而不是8472),然后重新运行KubeSpray Ansible剧本,或仅使用kubectl -f apply

这是我所遇到的真正问题。请注意,因为在我的上下文中,真正的问题是VMWare,所以与不使用VMWare来解决此问题相比,很有可能。