魅族容器云平台自动化运维实践
1、容器网络的方面我们采用的是 calico 的方案。主机通过 BGP 直接和核心路由设备对接,这里也可以用 RouteReflector 替代。控制层面走 BGP,数据层面走三层路由。网络封包会经过主机的netfilter框架,最后经由主机forward chain 进入容器,默认都会被conntrack。部署方面,Calico通过 k8s 的 Daemonset 方式,部署非常方便
2、优化主要是针对 conntrack,建议尽量使用headless service,少产生iptables rule。同时,对 conntrack 用量进行监控。容错方面,容器会主动去 ping交换机,确保网络的连通性。当 calico 出现问题的时候,容器是不会加入服务的,由此来保证服务的可靠性。
3、对于我们系统,绝大部分流量来自外部 LVS,其可信任度高,默认的方式会产生大量的 conntrack 记录,所以应当把LVS 过来的流量直接给bypass conntrack。经过生产实践效果验证,no mesh 模式的稳定性要优于mesh模式。异常处理主要分为 POD主动检测网络和 calico 的整体健康监控告警。