容器化网络和日志的选型和落地
[TOC]
容器化网络和日志的选型和落地
网络选型(k8s和mesos)
思考 && 痛点
可否跨机器访问? 跨域访问?
- flannel可以跨容器通信
- 跨主机的容器互联
- 容器与外部互联
是否支持静态ip , 固定ip ? 域名访问?
- 固定ip的话,那么就需要每次部署或者更新或重启的时候,ip保持不变
- overlay network, Docker 1.6 可以实现跨主机通信
是否支持dns?
4层/7层访问
容器库容后的网络
ip端口,最好不要自行手动规划
网络策略,防御 ,隔离 ?
- 容器集群不同应用之间的网络隔离和流量限制
方案
方案类别
- 隧道方案, 通过隧道,或者说Overlay Networking的方式:
- Weave,UDP广播,本机建立新的BR,通过PCAP互通。
- Open vSwitch(OVS),基于VxLAN和GRE协议,但是性能方面损失比较严重。
- Flannel,UDP广播,VxLan。
- 路由方案
- Calico,基于BGP协议的路由方案,支持很细致的ACL控制,对混合云亲和度比较高。
- Macvlan,从逻辑和Kernel层来看隔离性和性能最优的方案,基于二层隔离,所以需要二层路由器支持,大多数云服务商不支持,所以混合云上比较难以实现。
- 性能好,没有NAT,效率比较高, 但是受限于路由表,另外每个容器都有一个ip,那么业务ip可能会被用光.
- 隧道方案, 通过隧道,或者说Overlay Networking的方式:
网络的两大阵营
Docker Libnetwork Container Network Model(CNM)阵营(Docker Libnetwork的优势就是原生,而且和Docker容器生命周期结合紧密)
- Docker Swarm overlay
- Macvlan & IP network drivers
- Calico
- Contiv(from Cisco)
Container Network Interface(CNI)阵营 (CNI的优势是兼容其他容器技术(e.g. rkt)及上层编排系统(Kuberneres & Mesos))
- Kubernetes
- Weave
- Macvlan
- Flannel
- Calico
- Contiv
- Mesos CNI
常见的解决方案有:
- flannel vxlan,overlay方式
- calico,三层隔离,跨子网部署时,如果网关不支持BGP,则需要走ipip tunnel的overlay方式
- ipvlan macvlan,物理二层/三层隔离,目前需要pipework工具在单个节点上配置,仅做了vlan隔离,不解决arp广播
- swarm native vxlan,跟flannel vxlan类似
- neutron sdn,选择就多种了,ml2+ovsplugin,midonet,vlan or vxlan
- contiv,思科主导,sdn解决方案,可以用纯软的ovs,也可以用ovs+cisco硬件sdn controller
- linux bridge+三层交换机:host上 linux bridge 设置为三层交换机的子网网段,容器之间通信走二层交换,容器与外部走三层交换机的网关。
业界常用网络选型
kubernetes + flannel
- Flannel已经支持UDP、VxLAN、AWS VPC和GCE路由等数据转发模式。
- kubernetes 下有 flannel、openvswitch和weave可以实现Overlay Network
- 唯品会 contiv netplugin方案(固定外网ip) + flannel
- 京东 Flannel + Neutron + OVS
Mesos + Caclio
- Mesos支持CNI标准规范
- 一容器一ip, 网络隔离, ip分配, L3的虚拟网络
- 去哪儿 Mesos + Caclio
- 七牛 Bridge+ NAT + Open vSwitch
contiv主要用户可以根据实例IP直接进行访问
魅族云 OVS & VLAN + SR-IOV
ucloud: vswitch overlay的"大二层"网络SDN组网方案 + ipvlan
日志监控选型(包括监控,统计)
docker由于分层设计模式,容器里面无法固化数据, 容器销毁里面的数据就会丢失, 因此日志需要挂载到宿主机上, 或者使用分布式存储如ceph
监控可选方案
- cAdvisor + InfluxDB + Grafana
- cAdvisor + Prometheus + Grafana
- Graphite
- Zabbix
- Datadog
日志可选方案
- logstash
- ELK
- Graylog
- flume
- heka
- fluentd
业界方案
- 阿里云 : cAdvisor + InfuxDB + prometheus
- 协程: ELK
- 知乎: Graphite + cAdvisor
mesos和k8s选型
- 有哪些是支持的好,另外一个支持不了的, 有状态服务? 为啥 ?
相关推荐
xysoul 2020-11-03
ChlatZed 2020-10-27
谢恩铭 2020-10-23
liverlife 2020-10-10
somyjun 2020-09-29
xiaoying 2020-09-28
Assdqd 2020-08-15
really0 2020-08-13
akcsdno 2020-08-07
urmsone 2020-08-03
JackZhou 2020-08-01
先得道后求术 2020-07-31
lantingyue 2020-07-30
丽丽 2020-07-26
Veechange 2020-09-01
shurenyun 2020-08-19
aoxixi 2020-08-19
willluckysmile 2020-08-18
shenxiuwen 2020-07-16