使用docker可以简化CI / CD,但也会引入复杂性,并不是每个人都可以通过选择像Flannel,Calico这样的开源解决方案来保持docker网络。那么为什么不在docker中使用主机网络,或者在docker中使用主机网络时会丢失什么。我知道端口冲突是一点,还有什么点?
您的问题的答案分为两部分:
Pod必须具有单独的,可群集路由的IP地址,并且应该非常谨慎地回收它们
如果您愿意,您可以不使用任何软件定义网络(SDN)
因此,对于第一部分,提供足够大的CIDR以容纳支持每个命名空间中运行的每个Pod所需的地址范围通常是一个巨大的麻烦,并且空间足够大以避免长时间回收地址时间。因此,拥有SDN允许使用“假”地址,人们不必在知道的情况下打扰“真实”网络。没有路由器需要更新,没有防火墙,没有DHCP,等等。
也就是说,与第二部分一样,您不必使用SDN:这正是容器网络接口(CNI)的设计目标。您可以使用最让您满意的CNI提供商,包括使用静态IP地址或外部网络的DHCP服务器。
但是你对端口冲突的评论相当高,不仅仅是人们不愿意hostNetwork: true做的事情,而且也是如此。我实际上不确定默认的kubernetes调度程序是否知道hostNetwork: true并在其上声明ports:,containers:以避免共同调度两个会发生冲突的容器。我想尝试一下,看看,或者更好的是,不要尝试 - 使用CNI,这样下一个尝试与群集交互的穷人就找不到snowflake设置了。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。