开发者社区> 问答> 正文

为什么不在docker中使用主机网络,因为docker和kubernetes网络非常复杂

使用docker可以简化CI / CD,但也会引入复杂性,并不是每个人都可以通过选择像Flannel,Calico这样的开源解决方案来保持docker网络。那么为什么不在docker中使用主机网络,或者在docker中使用主机网络时会丢失什么。我知道端口冲突是一点,还有什么点?

展开
收起
k8s小能手 2019-01-09 13:45:25 2721 0
1 条回答
写回答
取消 提交回答
  • 整合最优质的专家资源和技术资料,问答解疑

    您的问题的答案分为两部分:

    Pod必须具有单独的,可群集路由的IP地址,并且应该非常谨慎地回收它们
    如果您愿意,您可以不使用任何软件定义网络(SDN)
    因此,对于第一部分,提供足够大的CIDR以容纳支持每个命名空间中运行的每个Pod所需的地址范围通常是一个巨大的麻烦,并且空间足够大以避免长时间回收地址时间。因此,拥有SDN允许使用“假”地址,人们不必在知道的情况下打扰“真实”网络。没有路由器需要更新,没有防火墙,没有DHCP,等等。

    也就是说,与第二部分一样,您不必使用SDN:这正是容器网络接口(CNI)的设计目标。您可以使用最让您满意的CNI提供商,包括使用静态IP地址或外部网络的DHCP服务器。

    但是你对端口冲突的评论相当高,不仅仅是人们不愿意hostNetwork: true做的事情,而且也是如此。我实际上不确定默认的kubernetes调度程序是否知道hostNetwork: true并在其上声明ports:,containers:以避免共同调度两个会发生冲突的容器。我想尝试一下,看看,或者更好的是,不要尝试 - 使用CNI,这样下一个尝试与群集交互的穷人就找不到snowflake设置了。

    2019-07-17 23:24:56
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
应用 Docker 进行持续交付:用技术改变交付路程 立即下载
从Docker到容器服务 立即下载
构建基因数据应用生态系统—— docker in Bio/informatics 立即下载