• <strike id="fdgpu"><input id="fdgpu"></input></strike>
    <label id="fdgpu"></label>
    <s id="fdgpu"><code id="fdgpu"></code></s>

  • <label id="fdgpu"></label>
  • <span id="fdgpu"><u id="fdgpu"></u></span>

    <s id="fdgpu"><sub id="fdgpu"></sub></s>
    您當前的位置是:  首頁(yè) > 資訊 > 國內 >
     首頁(yè) > 資訊 > 國內 >

    Kubernetes網(wǎng)絡(luò )、監控技術(shù)全面解讀!

    2019-06-21 10:32:41   作者:君子蘭   來(lái)源:云技術(shù)   評論:0  點(diǎn)擊:


      宇宙文明的技術(shù)進(jìn)步與其可控制的能源總量息息相關(guān),從低到高可以確定文明發(fā)展的三種類(lèi)型:類(lèi)型一、能夠充分利用行星資源;類(lèi)型二、能夠收集整個(gè)恒星系統的能源;類(lèi)型三、可以利用星系系統的能源。
      —— 1964年,天體物理學(xué)家尼古拉-卡爾達舍夫
      如果從資源利用的角度劃分,云計算可以劃分為兩個(gè)類(lèi)型,類(lèi)型一:基于傳統虛擬化構建的云,這是目前大部分云的形態(tài)。類(lèi)型二:基于容器構建的云,這是云必然的未來(lái)。容器對資源的利用率要提高一個(gè)數量級,更重要的是顆粒度更細,自動(dòng)化程度更高。容器是傳統虛擬化效率的數百倍,滾滾洪流,不可阻擋。
      更高的類(lèi)型,也意味著(zhù)更復雜,筆者尤其關(guān)注容器云在網(wǎng)絡(luò )、監控兩方面面臨巨大的挑戰。
      一、容器常見(jiàn)的網(wǎng)絡(luò )解決方案概述和對比
      容器常見(jiàn)的網(wǎng)絡(luò )標準有兩種,分別是Docker公司提出的CNM(Container Network Model),和CoreOS公司提出的CNI(Container Network Interface)。
      1. CNM介紹
      Libnetwork是CNM規范的規范實(shí)現,Libnetwork提供Docker守護程序和網(wǎng)絡(luò )驅動(dòng)程序之間的接口。網(wǎng)絡(luò )控制器負責將驅動(dòng)程序與網(wǎng)絡(luò )配對。每個(gè)驅動(dòng)程序負責管理其擁有的網(wǎng)絡(luò ),包括提供給該網(wǎng)絡(luò )的服務(wù)。 每個(gè)網(wǎng)絡(luò )有一個(gè)驅動(dòng)程序,多個(gè)驅動(dòng)程序可以與連接到多個(gè)網(wǎng)絡(luò )的容器同時(shí)使用。
      Libnetwork提供Docker守護程序和網(wǎng)絡(luò )驅動(dòng)程序之間的接口,圖來(lái)源:thenewstack.io
      2. CNI介紹
      CNI已經(jīng)成為云原生應用基金會(huì )(CNCF)的正式項目,用于編寫(xiě)插件以配置Linux容器中的網(wǎng)絡(luò )接口。CNI僅關(guān)注容器的網(wǎng)絡(luò )連接并在刪除容器時(shí)刪除分配的資源。CNI提供了廣泛的支持,并且規范易于實(shí)現,支持第三方插件。
      CNI是向網(wǎng)絡(luò )添加和刪除容器的最小規范,圖來(lái)源:thenewstack.io
      目前主流的容器云都是基于Kubernetes構建,CNI也是Kubernetes所采用的網(wǎng)絡(luò )標準。常見(jiàn)的CNI網(wǎng)絡(luò )插件有:
      圖來(lái)自于網(wǎng)絡(luò ),出處不可考
      1)常見(jiàn)的CNI插件介紹
    • Calico:Calico使用純L3方法提供簡(jiǎn)單,可擴展的網(wǎng)絡(luò )。Calico還提供無(wú)狀態(tài)IP-in-IP模式,除了可擴展的網(wǎng)絡(luò ),Calico還提供策略隔離。Calico是一個(gè)基于BGP的純三層的數據中心網(wǎng)絡(luò )方案(不需要Overlay)。
    • Flannel:flannel一種簡(jiǎn)單易用的方法,可以配置為Kubernetes設計的layer3網(wǎng)絡(luò )結構。flannel基于Linux TUN/TAP,使用UDP封裝IP包來(lái)創(chuàng )建overlay網(wǎng)絡(luò ),并借助etcd維護網(wǎng)絡(luò )的分配情況。
    • Canal:Canal支持Flannel和Calico,提供開(kāi)箱即用的VXLAN網(wǎng)絡(luò ),同時(shí)還允許利用Calico策略隔離。
    • Cilium:Cilium是一個(gè)開(kāi)源軟件,用于透明地提供和保護使用Kubernetes、Docker和Mesos等Linux容器管理平臺部署的應用程序服務(wù)之間的網(wǎng)絡(luò )和API連接。Cilium的基礎是名為BPF的新Linux內核技術(shù),它可以在Linux本身內動(dòng)態(tài)插入強大的安全性、可見(jiàn)性和網(wǎng)絡(luò )控制邏輯。
    • kopeio-networking:kopeio-networking是專(zhuān)為Kubernetes而設計的,充分利用了Kubernetes API,因此更簡(jiǎn)單,更可靠。
    • kube-router:Kube-router是專(zhuān)為Kubernetes打造的專(zhuān)用網(wǎng)絡(luò )解決方案,旨在提供操作簡(jiǎn)單性和性能。Kube-router將pod網(wǎng)絡(luò )解決方案,服務(wù)代理和網(wǎng)絡(luò )策略實(shí)施器作為一體化解決方案。
    • Romana:Romana為pod網(wǎng)絡(luò )使用標準的第3層網(wǎng)絡(luò )。Romana支持Kubernetes網(wǎng)絡(luò )策略API,使群集跨網(wǎng)絡(luò )可用區域分割,Romana支持各種網(wǎng)絡(luò )拓撲,包括第2層和第3層網(wǎng)絡(luò )。節點(diǎn)之間的路由在本地安裝,必要時(shí)使用BGP或OSPF分發(fā)到網(wǎng)絡(luò )設備。
      Weave Net:Weave Net支持多主機容器網(wǎng)絡(luò ),可以跨越不同的云網(wǎng)絡(luò )配置,簡(jiǎn)化Kubernetes上運行的舊工作負載。
      2)CNI插件項目Forks數量比較
      Github上被Forks的數量對比,圖來(lái)源chrislovecnm.com
      3)CNI插件項目10Gbit網(wǎng)絡(luò )下的CPU消耗比較
      10Gbit網(wǎng)絡(luò )下的CPU消耗比較,圖來(lái)源itnext.io
      由于篇幅所限,本文僅對CNI插件做簡(jiǎn)單介紹,如果對CNI插件有進(jìn)一步興趣,可以查閱相關(guān)項目官方文檔。
      二、Kubernetes的監控解決方案介紹
      Kubernetes因為狀態(tài)一直動(dòng)態(tài)變化,因此監控也是一個(gè)難點(diǎn),常見(jiàn)的監控工具有:
    • Kubelet: Kubelet通過(guò)Kubernetes API服務(wù)器監視PodSpecs,并收集資源利用率統計信息以及pod和事件狀態(tài)。
    • cAdvisor:cAdvisor是一個(gè)開(kāi)源容器資源使用和性能分析代理,專(zhuān)為容器而構建。在Kubernetes中,cAdvisor被集成到Kubelet二進(jìn)制文件中。cAdvisor自動(dòng)發(fā)現機器中的所有容器,并收集CPU,內存,文件系統和網(wǎng)絡(luò )使用情況統計信息。
    • Prometheus:Prometheus可以原生地監測Kubernetes,Prometheus Operator簡(jiǎn)化了Kubernetes上的Prometheus設置,并允許使用Prometheus適配器提供自定義指標API。 Prometheus提供強大的查詢(xún)語(yǔ)言和內置儀表板,用于查詢(xún)和可視化數據。
    • Sysdig:Sysdig將來(lái)自系統調用,Kubernetes事件,Prometheus指標,statsD,JMX等的數據整合到一個(gè)頁(yè)面中,從而提供環(huán)境的全面信息。Sysdig還提供了API來(lái)查詢(xún),以提供強大且可定制的解決方案。Sysdig和Sysdig Inspect能夠自由地執行故障排除,性能分析和取證。
    • Jaeger:Jaeger是優(yōu)步科技發(fā)布的追蹤系統,用于在復雜的分布式系統中進(jìn)行故障排除和監控事務(wù)。
    • Weave Scope:Weave Scope是Weaveworks開(kāi)發(fā)的監控工具。Weave Scope在Kubernetes集群中生成進(jìn)程,容器和主機的映射,以幫助實(shí)時(shí)了解Docker容器。還可基于圖形UI管理容器并在容器上運行診斷命令。
      目前主流的Kubernetes監控方式通過(guò)Prometheus,通過(guò)Grafana展現。
      通過(guò)Prometheus監控Kubernetes,通過(guò)Grafana展現,圖來(lái)源:grafana.com
      從上面的介紹可以看出,Kubernetes在網(wǎng)絡(luò )、服務(wù)狀態(tài)、監控方面有各種解決方案,每種解決方案可以說(shuō)都有優(yōu)缺點(diǎn)。筆者最近參加了UCloud的TIC大會(huì ),現場(chǎng)聽(tīng)了UCloud優(yōu)刻得實(shí)驗室負責人葉理燈關(guān)于Kubernetes的一個(gè)分享,葉理燈的分享干貨很多,比如基于RBAC實(shí)現賬號管理隔離,有狀態(tài)和無(wú)狀態(tài)服務(wù)的管理。筆者特別關(guān)注了UCloud在Kubernetes網(wǎng)絡(luò )和監控解決方案的獨到之處,和大家分享下。
      三、KUN和UK8S網(wǎng)絡(luò )和監控幾個(gè)厲害的玩法
      葉理燈介紹了UCloud基于Kubernetes打造的內部容器云平臺(簡(jiǎn)稱(chēng)KUN)和針對外部用戶(hù)的容器管理服務(wù)UK8S。KUN的主要實(shí)現方法之一是K8S+Docker,通過(guò)Docker提高運維部署效率和運維環(huán)境的一致性,通過(guò)K8S實(shí)現跨可用區容災和Auto Scaling能力,從而實(shí)現高可用、在線(xiàn)升級、自動(dòng)擴縮、負載均衡、日志查看、資源監控等多種功能。而UK8S可以讓用戶(hù)直接在上面部署、管理、擴展容器化應 , 需關(guān) Kubernetes集群 身的搭建及維護等運維類(lèi) 作。UK8S完全兼容原 的Kubernetes API,以UCloud私有 絡(luò )為基礎,并整合了ULB、UDisk、EIP、VPC等云產(chǎn)品。
      1. UK8S網(wǎng)絡(luò )特點(diǎn)-連放五個(gè)大招
      UK8S在網(wǎng)絡(luò )上有五個(gè)大招,全面支持IPV6,實(shí)現了容器云和現有公有云的無(wú)縫融合,并且在性能和云主機一致:
    • UK8S全面支持IPV6,并且能夠做到核 基礎 絡(luò ) 需修改,underlay,Pod與集群外部互通。
    • 研CNI插件,與VPC?絡(luò )深度集成
    • 利口SecoryIP,API實(shí)現IP管理
    • overlay,性能與云主機致
    • Pod 絡(luò )可與物理云托管云直接互通
      令人印象深刻的是,UCloud自研的CNI(Container Network Interface)插件,使UK8S擁有與云主機等同的網(wǎng)絡(luò )性能(目前最高可達10 Gb/s,100萬(wàn)pps)。
      2. 一站式Kubernetes服務(wù)(UK8S)打造
      在管理服務(wù)方面,UK8S支持完全的容器化和微服務(wù)化,可以確保所有管理服務(wù)全部運行在內部KUN平臺上,基于KUN的API對服務(wù)模塊進(jìn)行動(dòng)態(tài)管理;一個(gè)集群對應生成一個(gè)Watcher,容易進(jìn)行橫向擴展;基于Watcher+Redis緩存的方式,保證用戶(hù)在控制臺獲取集群信息的速度足夠快,相當于用K8S管理K8S。
      托管方面,采用“UK8S+托管物理機”的模式可以合理利用存量物理資源,且無(wú)需運維管理UK8S集群以及部署外部負載均衡,業(yè)務(wù)高峰可隨時(shí)擴容集群,幫助用戶(hù)有效利用存量IT資源。例如,Master節點(diǎn)部署在共有云上,Node節點(diǎn)分為公有云和托管云兩部分,兩個(gè)區的網(wǎng)絡(luò )實(shí)現了互聯(lián)互通等。
      例如:元年科技CTO 楊熠提到:“使用UK8S,開(kāi)發(fā)者可以像使用普通云服務(wù)器一樣迅速搭建K8S環(huán)境。在享受K8S帶來(lái)的便利的同時(shí),能夠讓開(kāi)發(fā)人員集中注意力在業(yè)務(wù)實(shí)現的細節,而不必在基礎架構搭建上浪費太多的精力。UCloud為此提供的專(zhuān)業(yè)、快速的服務(wù)和響應機制幫助我們成功的將整個(gè)環(huán)境從自建K8S平滑遷移到UK8S。”
      3.KUN監控特點(diǎn)介紹
      UCloud KUN的監控系統方案基于Prometheus構建,Prometheus部署于K8S集群中,使用HostPath存儲數據、Metrics采集,使用 Alert Manager 聚合報警,調用 Monitor Manager 提供的 Web Hook;自研 Monitor Manager 可以實(shí)現告警信息的發(fā)送,發(fā)送渠道包括郵件和微信,告警組管理、互相監控探測功能、報警收斂;使用 Grafana 實(shí)現 Web 可視化。
      筆者總結KUN監控有兩個(gè)企業(yè)用戶(hù)特別關(guān)心的點(diǎn):
    • 研 Monitor Manager:實(shí)現告警信息的發(fā)送,發(fā)送渠道包括郵件和微信,告警組管理,互相監控探測功能,報警收斂。
    • 監控系統 可 :冗余部署每個(gè) AZ 下運 個(gè) Prometheus,各個(gè) Prometheus 獨 運 ,采集同樣的數據;每個(gè) AZ 下運 個(gè) Alert Manager,每個(gè) Alert Manager 接受兩個(gè) Prometheus 的消息,他們之間互為 peer,去除冗余報警。
      為了實(shí)現監控系統的高可用,UCloud采取了冗余部署方案,Monitor Manager 部署在 K8S集群之外,跨AZ部署互相監控;通過(guò)微信和聽(tīng)云從外部對 Monitor Manager 進(jìn)行監控;Prometheus 配置DeadMansSwitch 規則,實(shí)現一個(gè)永遠觸發(fā)的告警,MonitorManager 對其進(jìn)行檢測,當較長(cháng)時(shí)間沒(méi)有收到報警時(shí),說(shuō)明監控告警系統不工作了,發(fā)出告警;Grafana 使用 PVC 進(jìn)行配置文件的存儲。
      4. 一個(gè)終極厲害的玩法
      因為UK8S在網(wǎng)絡(luò )上能夠做到和公有云全面融合,還可以有一個(gè)厲害的玩法--平滑遷移。因為Pod具有與VM等同的 絡(luò )待遇,讓VM與容器混合部署成為可能,也讓業(yè)務(wù)遷移到K8S更簡(jiǎn)單。
      總結:使用UK8S,就是抓住未來(lái)
      Kubernetes已經(jīng)發(fā)布整整5年了,但是Kubernetes還在飛速發(fā)展,絲毫沒(méi)有停下來(lái)的跡象,相反還在不斷攻城略地,Kubernetes就是現在明顯能抓住的未來(lái)。在Kubernetes落地過(guò)程中,網(wǎng)絡(luò )和監控面臨很大挑戰,也有很多解決方案。UCloud在云計算方面有將近十年的技術(shù)積累,推出的UK8S托管方案,如利劍出鞘,斬斷任何容器難題,讓用戶(hù)輕松步入容器時(shí)代,使用UK8S,就是抓住未來(lái)。
    【免責聲明】本文僅代表作者本人觀(guān)點(diǎn),與CTI論壇無(wú)關(guān)。CTI論壇對文中陳述、觀(guān)點(diǎn)判斷保持中立,不對所包含內容的準確性、可靠性或完整性提供任何明示或暗示的保證。請讀者僅作參考,并請自行承擔全部責任。

    專(zhuān)題

    CTI論壇會(huì )員企業(yè)

    亚洲精品网站在线观看不卡无广告,国产a不卡片精品免费观看,欧美亚洲一区二区三区在线,国产一区二区三区日韩 安福县| 紫阳县| 琼中| 壶关县| 庆元县| 井陉县| 福贡县| 榆树市| 武义县| 屯门区| 三门县| 招远市| 会泽县| 岑巩县| 双辽市| 永安市| 安图县| 肥西县| 安庆市| 禄劝| 囊谦县| 册亨县| 兴仁县| 黄冈市| 河间市| 清原| 淮滨县| 抚顺市| 民乐县| 盐亭县| 镇宁| 义乌市| 江油市| 南投市| 上饶县| 合水县| 高邑县| 黄石市| 高雄县| 积石山| 建平县| http://444 http://444 http://444 http://444 http://444 http://444