HWCloudEngine / hybrid_cloud

6 stars 12 forks source link

[Docker]Docker Network(Kuryr) #78

Open nkzhangni opened 8 years ago

nkzhangni commented 8 years ago

Goal:Delivery Docker service in Hybird cloud, achieve to commercial product standard.

nkzhangni commented 8 years ago

Feature List:

一、Kuryr: 1. docker使用新建的neutron网络 -----done

  1. docker使用已有的neutron网络 -----done
  2. 适配FSP版本(修改kuryr代码或者升级neutron) -----done 4. 支持裸机和虚拟机运行 -----done
  3. 为运行状态的容器挂卷
  4. 同一个minion节点同一网络内pod互通 -----done
  5. 不同minion节点上同一网络内pod互通 -----done 8. 不同网络的pod不通 -----done
  6. 同一网络pod和vm互通(low,一般三层互通) -----done 10. 支持connect容器时指定ip,使容器迁移时ip保持不变 二、Kubernetes 1.支持不同应用pod网络隔离 1.1.支持一个pod具有多网卡,多网络平面 -----done
  7. 集群支持多网络平面 -----done
  8. 支持pod创建时设定网络平面 -----done 4. 支持service public ip使用neutron提供的网络
  9. 网络流量配置(low)
  10. 支持网络管理(low) 7.支持恢复pod时指定ip,使pod迁移时ip保持不变(kuryr缺少将之前创建的port绑定到新容器的能力) 8.Autoscaling 新建POD自动添加到LB -----done 9.使用Neutron LB替换Service -----done

三、性能测试 VXLAN、Vlan、FLAT -----done

a982420606 commented 7 years ago
在rc恢复容器时保证ip不变这个特性中,由于mini结点挂掉时,容器很有可能没有死掉,这样它就会占据着ip,使新创的pod无法再用该ip。所以我们的做法是,在这种情况下,允许新创的pod抢占ip,这样既可以保证新创的pod ip不变,又能让挂掉的mini结点不占据着已经无用的ip。
不过这种方案在特殊情况下也不是很恰当,比如mini结点的kubelet服务先挂,然后docker服务正常退出,这样该结点的容器的ip都会解除。那么在master结点上,从发现node挂掉,到创建新的pod之间的这段时间,原ip有可能会被其他容器/vm使用,此时新恢复的pod便会抢占该ip(只抢容器),使得其他容器出问题。
a982420606 commented 7 years ago
在多网络的显示中,我们在pod的Status结构体中扩展了一个字段AllPodIPs,为了更好的体现网络和IP的对应关系,也为指定IP创pod时方便查找网络,我们在该字段存放了pod所有的网络与ip地址。显示结果如下:

allPodIPs:

nkzhangni commented 7 years ago

progress: Specifying ip when starting container is done.