如何在复制控制器运行时更​​改群集IP

时间:2018-09-23 14:56:25

标签: elasticsearch kubernetes

我正在使用Kubernetes 1.0.3,其中部署了一个主节点和5个小节点。 我有一个Elasricsearch应用程序,该应用程序使用复制控制器部署在3个节点上,并定义了服务。 现在,我向集群添加了一个新的奴才节点,并希望在新节点上运行容器elasticsearch。 我将复制控制器缩放到4,以便基于节点标签将Elasticsearch容器部署在新节点上。下面是我的问题,请让我知道是否有解决方案?

在RC中定义的群集IP错误,因为在service.yaml文件中是不相同的。现在,当我缩放RC新节点时,ES容器指向了错误的群集IP,因此新节点已安装没有加入ES群集。是否可以通过任何方式修改已部署RC的群集IP,以便在扩展RC时将映像部署到具有正确群集IP的新节点上?

由于我使用的是旧版本,所以看不到kubectl编辑命令,我尝试使用kubectl patch命令进行更改,但IP并未更改。

问题是我需要在生产集群上执行此操作,因此我无法删除现有的Pod,但唯一的选择是更改已部署RC的集群IP,然后进行扩展,以使用新的IP和映像相应地启动。

请让我知道我有什么办法吗?

1 个答案:

答案 0 :(得分:1)

Kubernetes为每个服务创建该(虚拟)ClusterIP。
如果我没记错的话,那么您在服务定义中定义的任何内容(应该与问题一起发布)都将被Kubernetes忽略。

我不太了解扩展的问题,但基本上,您想指向服务名称(由Kubernetes的内部DNS解析)而不是ClusterIP。
例如http://myelasticsearchservice代替http://1.2.3.4