容器化网络和日志的选型和落地

[TOC]linux

容器化网络和日志的选型和落地

网络选型(k8s和mesos)

思考 && 痛点

  1. 能否跨机器访问? 跨域访问?docker

    • flannel能够跨容器通讯
    • 跨主机的容器互联
    • 容器与外部互联
  2. 是否支持静态ip , 固定ip ? 域名访问?设计模式

    • 固定ip的话,那么就须要每次部署或者更新或重启的时候,ip保持不变
    • overlay network, Docker 1.6 能够实现跨主机通讯
  3. 是否支持dns?跨域

  4. 4层/7层访问网络

  5. 容器库容后的网络分布式

  6. ip端口,最好不要自行手动规划工具

  7. 网络策略,防护 ,隔离 ?性能

    • 容器集群不一样应用之间的网络隔离和流量限制

方案

  1. 方案类别阿里云

    • 隧道方案, 经过隧道,或者说Overlay Networking的方式:
      • Weave,UDP广播,本机创建新的BR,经过PCAP互通。
      • Open vSwitch(OVS),基于VxLAN和GRE协议,可是性能方面损失比较严重。
      • Flannel,UDP广播,VxLan。
    • 路由方案
      • Calico,基于BGP协议的路由方案,支持很细致的ACL控制,对混合云亲和度比较高。
      • Macvlan,从逻辑和Kernel层来看隔离性和性能最优的方案,基于二层隔离,因此须要二层路由器支持,大多数云服务商不支持,因此混合云上比较难以实现。
      • 性能好,没有NAT,效率比较高, 可是受限于路由表,另外每一个容器都有一个ip,那么业务ip可能会被用光.
  2. 网络的两大阵营设计

    • 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
  3. 常见的解决方案有:

    • 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 设置为三层交换机的子网网段,容器之间通讯走二层交换,容器与外部走三层交换机的网关。
  4. 业界经常使用网络选型

    • kubernetes + flannel

      • Flannel已经支持UDP、VxLAN、AWS VPC和GCE路由等数据转发模式。
      • kubernetes 下有 flannel、openvswitch和weave能够实现Overlay Network
      • 惟品会 contiv netplugin方案(固定外网ip) + flannel
      • 京东 Flannel + Neutron + OVS
    • Mesos + Calico

      • Mesos支持CNI标准规范
      • 一容器一ip, 网络隔离, ip分配, L3的虚拟网络
      • 去哪儿 Mesos + Calico
      • 七牛 Bridge+ NAT + Open vSwitch
    • contiv主要用户能够根据实例IP直接进行访问

    • 魅族云 OVS & VLAN + SR-IOV

    • ucloud: vswitch overlay的"大二层"网络SDN组网方案 + ipvlan

日志监控选型(包括监控,统计)

docker因为分层设计模式,容器里面没法固化数据, 容器销毁里面的数据就会丢失, 所以日志须要挂载到宿主机上, 或者使用分布式存储如ceph

  1. 监控可选方案

    • cAdvisor + InfluxDB + Grafana
    • cAdvisor + Prometheus + Grafana
    • Graphite
    • Zabbix
    • Datadog
  2. 日志可选方案

    • logstash
    • ELK
    • Graylog
    • flume
    • heka
    • fluentd
  3. 业界方案

    • 阿里云 : cAdvisor + InfuxDB + prometheus
    • 协程: ELK
    • 知乎: Graphite + cAdvisor
相关文章
相关标签/搜索