[TOC]linux
容器化網絡和日誌的選型和落地
網絡選型(k8s和mesos)
思考 && 痛點
-
能否跨機器訪問? 跨域訪問?docker
- 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可能會被用光.
-
網絡的兩大陣營設計
-
常見的解決方案有:
- 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 設置爲三層交換機的子網網段,容器之間通訊走二層交換,容器與外部走三層交換機的網關。
-
業界經常使用網絡選型
日誌監控選型(包括監控,統計)
docker因爲分層設計模式,容器裏面沒法固化數據, 容器銷燬裏面的數據就會丟失, 所以日誌須要掛載到宿主機上, 或者使用分佈式存儲如ceph
-
監控可選方案
- cAdvisor + InfluxDB + Grafana
- cAdvisor + Prometheus + Grafana
- Graphite
- Zabbix
- Datadog
-
日誌可選方案
- logstash
- ELK
- Graylog
- flume
- heka
- fluentd
-
業界方案
- 阿里雲 : cAdvisor + InfuxDB + prometheus
- 協程: ELK
- 知乎: Graphite + cAdvisor