如何通过改写来控制/ etc / hosts文件

时间:2018-10-16 18:11:43

标签: linux kubernetes debian debian-jessie

我正在使用Debian Jessie映像在AWS上部署Kops Kubernetes集群。

我的是一个混合环境,其中我的工件位于DC的物理环境中。现在,我遇到了一个问题,除非在/ etc / hosts文件中指定工件FQDN和IP,否则我的工作节点无法从工件中提取图像。

因此,这是手动编辑,执行此操作后一切正常。因此,我继续将数据添加到Kops辅助节点组的其他userdata中,但是一段时间后,我发现辅助节点上的主机文件已被覆盖,并且在节点重新启动后也很明显。

那我该如何解决!!

2 个答案:

答案 0 :(得分:1)

real 的答案是运行您自己的DNS服务器,或者至少使用DNS主机名进行解析。如果您的路由器支持,则可以设置本地主机名(machine-1.local)

如果这不可能,那么如果您拥有虚拟机,则可以尝试使用puppet之类的解决方案。另外,我相信Kubernetes确实具有DNS插件。另外,您可以在启动时使用crontab来写入hosts文件,但这是一个肮脏的解决方案。

此外,每次DHCP更新时,主机文件都会被重写。您可以使用静态IP,但同样,DNS是必经之路。

答案 1 :(得分:0)

另一种解决方法是将其放入您的/etc/rc.local文件中:

如果文件存在,请将其添加到末尾:

echo '<ip-address-of-artifactory> <fqdn-of-artifactory>' >> /etc/hosts

如果文件不存在,请创建它:

$ cat << EOF > /etc/rc.local
#!/bin/sh -e
#
echo '<ip-address-of-artifactory> <fqdn-of-artifactory>' >> /etc/hosts
EOF
$ chmod 755 /etc/rc.local
$ reboot # check that it works