我有一个kubernetes中的DNS映射问题。请看详细信息,将主机映射添加到Kubernetes中的/ etc/hosts中
我们有一些可以从互联网上访问的服务器。全球DNS将这些服务器的域名转换为公共互联网IP。 出于安全考虑,某些服务无法通过公共IP访问。
从公司内部,我们添加了具有专用IP的DNS映射到由kubernetes管理的docker容器内的/ etc/hosts以手动访问这些服务器。
我知道docker支持命令--add-host在执行“docker run”时更改/ etc/hosts。我不确定这个命令是否支持最新的kubernetes,比如kuber 1.4或1.5?
在另一方面,我们可以包装的启动脚本的泊坞窗容器,
- 追加映射到/ etc/hosts中首先
- 启动应用
我只想在每个容器中首次运行后更改文件一次。有没有简单的方法来做到这一点,因为映射关系可能在开发和生产环境或与kubernetes本身提供的相关的任何命令不同?
感谢您的帮助。
真的非常感谢您的更新。这很有用。我刚刚阅读了文档http://kubernetes.io/docs/user-guide/container-environment/并尝试了这一点。我认为这个命令需要稍微改成'exec:command: - “sh” - “-c” - “echo someip somedomain>/etc/hosts”。似乎kubernetes只是使用'os/exec exec.Command(args).Run()'来运行命令,以便不支持“|,>,>>”。感谢你的帮助:) – qingdaojunzuo
@qingdaojunzuo是的,你是正确的:所有这些命令部分的命令语法远不是用户友好的,在没有测试的情况下当场猜测它们是错误的方法:) –