容器化網路和日誌的選型和落地

吳德寶AllenWu發表於2018-01-30

[TOC]

容器化網路和日誌的選型和落地

網路選型(k8s和mesos)

思考 && 痛點

  1. 可否跨機器訪問? 跨域訪問?

    • 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

相關文章