容器云中大量容器之间在相同应用之间要互相联通,在不同应用之间则需要互相隔离,同时容器也是动态变化的,网络应该如何设计?
个人认为:
容器云网络其实不同于传统网络
传统运维环境中,应用对应IP是固定的,且应用开发人员自己掌控自己的服务器,能登录能操作。
应用上云后,应用开发只会面对云管平台,根本没有机器IP,用户,密码什么的都没有。且容器云一般都是通过SDN自我组网,内部ip都是自我分配调整的,外部根本无法使用,这种情况下,如果要将应用网络隔离其实意义不大。
如果一定要做,从技术上是可以的,可以在负责内部网络的SDN上面想办法。
有一类情况可能需要考虑:比如某类应用需要访问外网,某类应用只在内网区,这个其实就是传统网络分区,我的建议是:在不同的网络分区中分别建容器云集群,不要公用一个集群。
收起这个问题应该有多种解决方案,基本上就是把不同的应用容器放置在不同的vlan/vxlan中,通过让不同的vlan/vxlan不能互访而实现隔离。简单的方案可以尝试用docker overlay来解决,首先创建不同的network,然后在启动不同应用的容器时,使用--net参数指定容器所在的对应的vxlan即可。结果会看到同一个network中的容器是互通的,不同的network中的容器是不通的。
收起