国产一级一区二区_segui88久久综合9999_97久久夜色精品国产_欧美色网一区二区

掃一掃
關注微信公眾號

運維入坑必看:Kubernetes平臺架構解讀
2022-05-26   dbaplus社群

Kubernetes是一個開源容器編排平臺,管理大規模分布式容器化軟件應用, 是云計算發展演進的一次徹底革命性的突破。Kubernetes是谷歌的第三代容器管理系統,是Borg獨特的控制器和Omega靈活的調度器的組合。Kubernetes中的應用被打包成與環境完全分離的容器鏡像,并且自動配置應用并維護跟蹤資源分配。

Kubernetes是以 應用為中心 的技術架構與思想理念, 向下 屏蔽基礎設施差異,實現底層基礎資源統一調度及編排; 向上 通過容器鏡像標準化應用,實現應用負載自動化部署; 中間 通過Kubernetes通用的編排能力,開放API以及自定義CRD擴展能力,打造云原生操作系統能力,形成云計算新界面;助力研發團隊 快速構建標準化、彈性高可靠、松耦合、易管理維護的應用系統,提升交付效率,降低運維復雜度。 Kubernetes在技術架構方面具備三個能力:

  • 敏捷的彈性伸縮能力: 不同于虛擬機分鐘級的彈性伸縮響應,容器應用可實現秒級甚至毫秒級的彈性伸縮響應;
  • 智能的服務故障自愈能力: 容器應用具有極強的自愈能力,可實現應用故障的自動摘除與重構;
  • 大規模的復制分發能力: 容器應用標準化的交付制品,可實現跨平臺、跨區域,云邊一體規模化復制分發部署能力。

一、Kubernetes整體架構

Kubernetes是典型的 主從分布式架構,  集中式管理節點(Master Node),分布式的工作節點(Worker Node) 以及 輔助工具 組成。

1、集中式管理節點

集中式管理節點,對集群進行調度管理,有 四大核心組件:

  • API Server: 承擔集群的網關,實現統一認證鑒權對外服務,同時也是管理Node/Pod資源代理通道;
  • Scheduler: 資源調度器,除了Kubernetes默認的調度器,也支持自定義調度器;
  • ETCD: 集群狀態統一存儲,與Zookeeper類似的key-value存儲;
  • Controller Manger: 控制管理器實現自愈、擴容、應用生命周期管理、服務發現、路由、服務綁定等能力;Kubernetes默認提供Replication Controller、Node Controller、Namespace Controller、Service Controller、Endpoints Controller、Persistent Controller、DaemonSet Controller等控制器。

2、分布式的工作節點

分布式的工作節點,工作節點運行業務應用容器;默認會運行 三大核心組件 

  • Kubelet: 與管理節點通信并觸發指令執行,管理驅動網絡,存儲及容器運行時;
  • Kube Proxy: 通過DNS實現服務發現,借助iptables規則引導訪問至服務IP,并將重定向至正確的后端應用,實現高可用負載均衡能力;
  • Container Runtime: 容器運行時。為了擴展Kubernetes平臺適配能力,同時也標準化整個生態,通過 CNI與CSI標準規范網絡及存儲 的擴展;通過 CRI與OCI標準規范容器鏡像及容器運行時 的擴展;目前CRI支持的容器運行時有docker、rkt、cri-o、frankti、kata-containers和clear-containers等。

3、輔助工具

輔助工具,主要是輔助集群管理及網絡擴展:

  • kubectl 通過API Server進行交互,實現 集群管理的命令行工具;
  • Dashboard 是Kubernetes的web 用戶管理監控界面;
  • Core DNS 是可擴展的DNS服務器,實現 集群服務發現能力。

二、Kubernetes核心理念

1、POD容器組,Kubernetes最小調度單元

Pod是Kubernetes的 最小調度及資源分配單元, Pod之間相互隔離,通常情況一個Pod只建議運行一個容器,當某些容器之間關系非常緊密(Tightly coupled),可以運行在同一Pod運行多個容器方便一起調度管理。一個Pod就是一個應用運行實例,通過同時運行多個Pod來實現應用 橫向擴展 能力。Pod本身沒有自恢復能力,當調度或運行失敗時,需要管理節點的Controller根絕配置觸發實現Pod重啟、重建或遷移等操作。

從Pod啟動過程來看, Pod容器主要是 Pause Container,Init Container 以及 App Container 三種類型容器組成:

  • Pause Container: 又叫Infra Container,Pod通過Pause Container實現Pod多個容器網絡共享, Pause Container最先啟動并綁定Pod唯一IP地址與各種網絡資源,其他容器通過加入Pause  Container的Network namespace來實現網絡共享。Pause是C語言實現,鏡像非常小只有700KB左右,并且永遠處于Pause(暫停)狀態;官方鏡像是gcr.io/google_containers/pause-amd64:3.0,同時也支持自定義。
  • Init Container: Pod中可以自定義一個或者多個 Init Container  按照順序依次啟動 ,在應用Container之前啟動并執行一些輔助任務,比如執行腳本、拷貝文件到共享目錄、日志收集、應用監控等。將輔助功能與主業務容器解耦,實現獨立發布和能力重用。除了不支持Readiness Probe,其他與特性與普通容器保持一致。
  • App Container: Pod真正承接業務的Container,一般情況會獨立運行,如果是有微服務治理等需求會搭配Sidecar Container一起運行。在Init Container啟動完成之后, App Container會并行啟動, 但是需要等待所有 App Container 處于就緒狀態,整個Pod才算啟動成功。

從POD的資源隔離來看, Pod容器主要由Linux提供的Namespace和Cgroup能力實現的,Namespace實現進程間隔離,Cgroup實現進程資源控制;其中Namespace由ipc 、uts 、net 、mnt 、pid 各種資源空間聯合組成。

CRI 是Kubernetes v1.5引入的,將Kubelet與容器運行時解耦;CRI中定義了 容器  鏡像 的服務的接口,因為容器運行時與鏡像的生命周期是彼此隔離的,所以定義了 RuntimeService  ImageService 兩個服務,其中RuntimeService主要包含Sandbox和Container兩種容器的管理gRPC接口,Sandbox就是上面Pod啟動過程中提到的 Pause容器 。目前支持CRI的后端有cri-o,cri-containerd,rkt,frakti,docker等,cri-o是由redhat發起并開源且由社區驅動的container-runtime, 輕量化專為kubernetes而生, 主要目的就是替代docker作為kubernetes集群的容器運行時。

2、Volume存儲卷,Kubernetes復雜的存儲架構

存儲非常重要關鍵,同時也是生態與技術都比較復雜的領域,就linux、window兩個生態支持的文件系統就多達20+。 對于Kubernete存儲架構設計一直在持續演進完善,為了盡可能多地兼容各種存儲平臺,Kubernetes以in-tree plugin的形式默認對接很多不同類型的存儲系統; 同時也支持基于FlexVolume和CSI插件以out-of-tree plugin來實現自定義存儲服務。

對Kubernetes存儲,主要有 應用的基本配置文件讀取、密碼密鑰管理;應用的存儲狀態、數據存取,不同應用間數據共享 等三大使用場景。目前Kubernetes支持的Volume Plugins如下表:

Empty Dir: 生命周期與Pod保持一致,當Pod刪除后emptyDir中的數據也會被自動清除。當前 emptyDir支持的類型有內存、大頁內存、Node節點上Pod所在的文件系統。

  • ConfigMap: 主要是承擔配置中心,用于存儲應用的配置數據,比如Springboot應用properties配置文件數據,但是空間大小限制在1MB內。
  • Secret: 功能與ConfigMap類似,用于存儲應用的敏感數據,比如數據密碼、token、證書等,可以與ConfigMap聯合使用,同樣空間大小限制在1MB內。
  • HostPath: 將Node節點本地文件系統路徑映射到pod容器中使用。與emptyDir不同之處就是Pod刪除后,HostPath中的數據Kubernetes根據用戶的配置,可以不被清除。
  • In-tree網絡存儲: 網絡存儲跟隨Pod的生命周期,通過存儲插件對接不同類型存儲;其中FlexVolume雖然允許自定義開發驅動來掛載卷到集群Node節點上供Pod使用,但生命周期與pod同步。
  • PersistentVolumeClaim網絡存儲: 具有獨立的生命周期,可以通過存儲的out-tree插件對接不同類型存儲。當前支持的存儲插件類型有FlexVolume與CSI。

引入 PV、PVC、StorageClass 之后,資源管控更加靈活,團隊職責更加明確,研發人員只需考慮存儲需求(IO、容量、訪問模式等),不需要關注底層存儲細節;底層復雜的細節都由專業的集群管理與存儲管理員來完成。

CSI 是Kubernetes 1.9版本開始引入,建立一套標準的存儲管理接口,通過該接口為容器提供存儲服務。從而實現Kubernetes平臺與存儲服務驅動完全解耦。CSI主要包含 CSI Controller Server  CSI Node Server 兩個部分, Controller Server 主要實現創建、刪除、掛載、卸載等控制功能; Node Server 主要實現的是Node節點上的 mount、unmount的操作。

CSI Controller Server和External CSI SideCar是通過 Unix Socket 來進行通信的,CSI Node Server和Kubelet也是通過 Unix Socket 來通信。CSI實現類也日趨完善,比如ExpandCSIVolumes可以實現文件系統擴容;VolumeSnapshotDataSource可以實現數據卷的快照;VolumePVCDataSource實現自定義定PVC數據源;CSIInlineVolume在Volume中定義一些CSI的驅動。阿里云也開源了 阿里云盤、NAS、CPFS、OSS、LVM 等CSI存儲插件。

3、Ingress與Service,百花齊放的Kubernetes網絡

Kubernetes 容器網絡非常復雜,涉及的概念也比較多,比如Pod網絡,Service網絡,Cluster IP,NodePort,LoadBalancer和Ingress等,為此將Kubernetes 的網絡參考TCP/IP協議棧抽象為四層:

第0層: Node節點網絡比較簡單,就是保證Kubernetes 節點(物理或虛擬機)之間能夠正常IP尋址和互通的網絡,一般由底層(公有云或數據中心)網絡基礎設施支持。

第1層: Pod是Kubernetes的最小調度單元,Pod網絡就是確保Kubernetes集群中所有Pod(包括同一節點及不同節點上的Pod),邏輯上在同一個平面網絡內,能夠相互IP尋址和通信的網絡。是容器網絡最復雜部分,通過各種容器網絡插件滿足不同網絡需求,通過CNI標準化及開放網絡自定義能力。

第3層: 雖然單個Pod都有IP,但是與Pod生命周期一致,為了解決一組相同Pod統一穩定的訪問地址,并且將請求均衡的分發到后端Pod應用服務中。Kubernetes引入了Service網絡,以此實現服務發現(Service Discovery)和負載均衡(Load Balancing)能力,底層是通過Kube-Proxy+iptables轉發實現,對應用無侵入且不穿透代理,沒有額外性能損耗。

第4層: Kubernetes Service網絡是集群內部網絡,集群外部是無法訪問,需要將內部服務暴露外部才能訪問。Kubernetes通過NodePort,LoadBalancer和Ingress多個方式構建外部網絡接入能力。

CNI 最早是由CoreOS發起的容器網絡規范,是Kubernetes網絡插件的基礎。Container Runtime在創建容器時,先創建好network namespace,再調用CNI插件為network namespace配置網絡,最后啟動容器內進程。CNI插件包括CNI Plugin與IPAM Plugin兩部分:

  • CNI Plugin: 負責配置管理容器網絡,包括兩個基本的接口:
  • 網絡配置: AddNetwork(net NetworkConfig, rt RuntimeConf) (types.Result, error)
  • 清理網絡: DelNetwork(net NetworkConfig, rt RuntimeConf) error
  • IPAM Plugin: 負責容器IP地址分配,實現包括host-local和dhcp。

容器網絡技術也在持續演進發展,社區開源的網絡組件眾多,比如Flannel、Calico、Cilium、OVN等,每個組件都有各自的優點及適應的場景,難以形成大一統的組件及解決方案。

4、Workload工作負載,Kubernetes應用中心理念

Kubernetes通過 工作負載Workload 實現應用管理部署與發布,踐行Kubernetes以應用為中心的理念。Kubernetes支持多種類型的工作負載,包含Deployment、StatefulSet、ReplicaSet、Job、CronJob、DaemonSet,以滿足不同場景的需求。

  • Deployment與ReplicaSet: 替換原來的 ReplicationController 對象,管理部署 無狀態應用 ,Deployment管理不同版本的ReplicaSet,ReplicaSet管理相同版本的Pod,通過Deployment調整 ReplicaSet的終態副本數,控制器會維持實際運行的Pod數量與期望的數量一致,Pod 出故障時會自動重啟或恢復。
  • StatefulSet: 管理部署 有狀態應用, 創建的Pod擁有根據規范創建的持久型標識符。Pod遷移或銷毀重啟后,標識符仍會保留。如每個Pod有序號,可以按序號創建更新或刪除;Pod有唯一網絡標志(hostname)或獨享的存儲PV,支持灰度發布等。
  • DaemonSet: 管理部署每個節點運行的 守護任務, 如監控、日志收集等。新加入的節點也運行,移出節點是需要刪除。也可以通過標簽的指定運行節點。
  • Job與Cronjob: Job是一次性 任務, 可創建一個或多個Pod,監控Pod是否成功運行或終止;根據Pod狀態設置重復次數、并發度、重啟策略。Cronjob是 定時調度 的Job,可以指定運行時間、等待時間、是否并行運行、運行次數限制。

在Kubernetes生態中,還有一些提供額外操作的第三方工作負載,同時也可以通過使用CRD自定義工作負載,還有就是Device Plugin驅動的硬件工作負載。

5、Controller控制器,Kubernetes集控管理中心

Controller Manager 作為Kubernetes集控管理中心,負責集群的Node、Pod副本、服務端點(Endpoint)、命名空間(Namespace)、服務賬號(ServiceAccount)、資源定額(ResourceQuota)的資源管理,并通過API Server接口實時監控集群的每個資源對象的狀態,一旦發生故障導致系統狀態發生變化,就會立即嘗試修復到“期望狀態”。

  • Replication Controller: 保證集群中一個RC所關聯的Pod副本數始終保持預設值。
  • ResourceQuota Controller: 確保Kubernetes中的資源對象在任何時候都不會超量占用系統物理資源。有容器,Pod以及Namespace三個級別。
  • Namespace Controller: 通過API Server定時讀取Namespace信息。如果Namespace被API標記為優雅刪除(即設置刪除期限,DeletionTimestamp),則將該Namespace狀態設置為“Terminating”,并保存到etcd中。同時刪除該Namespace下的ServiceAccount、RC、Pod等資源對象。
  • Endpoint Controller: Endpoints是Service對應所有Pod副本的訪問地址,Endpoint Controller主要負責監聽Service和對應的Pod副本的變化,從而生成和維護Endpoints對象控制器。

  • Deployment Controller: Deployment通過控制ReplicaSet,ReplicaSet再控制Pod,最終由 Deployment Controller 驅動達到期望狀態,Deployment Controller會監聽 DeploymentInformer、ReplicaSetInformer、PodInformer 三種資源。

另外,在Kubernetes v1.6引入了 云控制管理器Cloud Controller Manager(CCM), 提供與阿里公有云基礎產品對接的支持。

三、總結

總結一下,Kubernetes不僅是一個強大的容器編排系統本身,而且促進了一個龐大的工具和服務的生態系統, 云原生時代的操作系統,形成云計算新界面。    

從設計理念方面, Kubernetes是以 應用為中心 的構理念, 向下 屏蔽基礎設施差異,實現底層基礎資源統一調度及編排; 向上 通過容器鏡像標準化應用,實現應用負載自動化部署; 中間 通過Kubernetes通用的編排能力,開放API以及自定義CRD擴展能力;

從技術架構方面, Kubernetes是典型的分布式主從架構,由Master控制節點與可以水平擴展的Worker工作節點組成,Master實現集中式控制管理,Worker實現分布式運行;與Openstack的架構還有基于SpringCloud研發的分微服業務應用沒有太大區別。

從設計模式方面, Kubernetes通過定義大量的模型(原語、資源對象、配置、常用的 CRD),通過配置管理模型實現集群資源的控制;雖然模型多切復雜,可以分層(核心層,隔離與服務訪問層,調度層,資源層)逐步理解。

從平臺擴展方面, Kubernetes是一個開放可擴展平臺,不僅有開發的API,開放標準(CNI,CSI,CRI等)以及CRD,不僅是一個單純運行時平臺,同時面向運維的開發平臺。

熱詞搜索:

上一篇:Observability助力業務成功
下一篇:為什么需要帶寬監控工具?

分享到: 收藏
国产一级一区二区_segui88久久综合9999_97久久夜色精品国产_欧美色网一区二区
久久影院午夜论| 一区二区欧美国产| 欧美日韩一区 二区 三区 久久精品| 欧日韩精品视频| 日本一区二区三区四区| 日本在线不卡视频| 欧美网站大全在线观看| 国产精品国产三级国产普通话三级| 偷拍亚洲欧洲综合| 91免费版在线看| 日韩理论电影院| 国产成人综合亚洲网站| 欧美精品一区二区在线播放| 日韩在线观看一区二区| 91精品1区2区| 亚洲曰韩产成在线| 精品视频一区三区九区| 亚洲美女一区二区三区| 色欧美88888久久久久久影院| 国产精品久久久久久久久晋中 | 国产精品69毛片高清亚洲| 欧美一级免费观看| 久久激情综合网| 久久色成人在线| 成人av资源站| 一区二区三区成人在线视频| 欧美日韩一区二区在线视频| 亚洲va欧美va人人爽午夜| 欧美日本在线视频| 蜜臀av性久久久久蜜臀av麻豆 | 日韩影院在线观看| 欧美一级高清片| 国精产品一区一区三区mba视频| 亚洲精品在线观| 不卡av在线网| 亚洲综合色区另类av| 正在播放一区二区| 国产在线播精品第三| 亚洲欧洲三级电影| 91精品婷婷国产综合久久 | 欧美xxxxx牲另类人与| 韩国一区二区三区| 国产精品国产三级国产aⅴ中文 | 丝袜亚洲另类丝袜在线| 日韩美女天天操| 99视频精品在线| 日韩av一区二区在线影视| 日韩精品一区在线观看| 国产不卡一区视频| 亚洲bt欧美bt精品| 国产亚洲欧美激情| 国产九九视频一区二区三区| 国产精品高清亚洲| 欧美一区日韩一区| www.在线成人| 老色鬼精品视频在线观看播放| 国产精品欧美一区喷水| 欧美日韩黄视频| 成人午夜看片网址| 蜜桃视频一区二区三区在线观看| 中文字幕永久在线不卡| 91精品国产欧美一区二区成人| 粉嫩aⅴ一区二区三区四区五区| 亚洲午夜免费福利视频| 久久精品欧美日韩精品| 69精品人人人人| 91久久精品一区二区二区| 国产黄色成人av| 狠狠色狠狠色合久久伊人| 五月激情综合网| 亚洲天堂成人在线观看| 久久久久久久久一| 91精品国产综合久久国产大片| 成人精品电影在线观看| 国产麻豆日韩欧美久久| 亚洲va欧美va人人爽| 亚洲第四色夜色| 亚洲男人都懂的| 1区2区3区国产精品| 国产精品久久久久四虎| 久久久蜜臀国产一区二区| 日韩视频在线永久播放| 在线观看91av| 91麻豆精品国产91久久久更新时间 | 日韩欧美一区在线观看| 欧美日韩高清一区| 在线影视一区二区三区| 91免费视频大全| 色悠久久久久综合欧美99| 91丨porny丨户外露出| 成人丝袜高跟foot| 成人av影院在线| 成人精品电影在线观看| 成人教育av在线| 91国产福利在线| 欧美日韩高清影院| 欧美一区二区在线观看| 日韩欧美一区在线观看| 久久久久国产精品麻豆| 欧美国产亚洲另类动漫| 国产精品毛片久久久久久| 欧美经典三级视频一区二区三区| 国产色爱av资源综合区| 中文字幕中文字幕中文字幕亚洲无线| 国产精品国产成人国产三级| 亚洲欧美日韩一区二区 | 久久午夜免费电影| 国产视频一区二区在线| 综合电影一区二区三区| 午夜电影一区二区| 毛片一区二区三区| 成人99免费视频| 欧美日韩一级片在线观看| 日韩精品专区在线影院观看| 久久久久久亚洲综合影院红桃| 中文字幕在线不卡| 日韩制服丝袜av| 国产成人精品网址| 欧美日韩中文字幕一区| 精品国偷自产国产一区| 亚洲人成精品久久久久| 视频精品一区二区| 国产大陆a不卡| 欧美日韩精品一区视频| 精品国产一区二区亚洲人成毛片| 欧美国产日韩a欧美在线观看| 亚洲精品免费视频| 久久精品国产精品青草| 91亚洲精华国产精华精华液| 在线观看国产日韩| 26uuu亚洲| 亚洲自拍与偷拍| 国产又黄又大久久| 欧美剧情电影在线观看完整版免费励志电影| 91精品国产综合久久香蕉的特点| 中日韩av电影| 精品一区二区三区视频在线观看 | 夜夜嗨av一区二区三区四季av| 免费成人在线网站| 色先锋久久av资源部| 久久夜色精品国产噜噜av| 亚洲一级电影视频| 成人高清在线视频| 久久伊人蜜桃av一区二区| 日韩av在线播放中文字幕| 91久久奴性调教| 国产精品狼人久久影院观看方式| 精品系列免费在线观看| 88在线观看91蜜桃国自产| 亚洲色图.com| 99久久免费视频.com| 国产亚洲综合色| 韩国精品在线观看| 日韩精品资源二区在线| 日韩高清在线不卡| 欧美日韩久久不卡| 香蕉成人伊视频在线观看| 91啪亚洲精品| 亚洲欧美怡红院| 成人app软件下载大全免费| 国产欧美一区二区精品性色超碰 | 日韩一区有码在线| 成人黄色777网| 国产精品天美传媒沈樵| 国产寡妇亲子伦一区二区| 精品久久久久久综合日本欧美| 亚洲第四色夜色| 欧美日韩国产免费| 天天色图综合网| 这里是久久伊人| 日韩制服丝袜av| 91精品国产乱| 男男视频亚洲欧美| 日韩你懂的在线播放| 青青草国产精品亚洲专区无| 337p亚洲精品色噜噜狠狠| 九九九精品视频| 久久亚洲精品国产精品紫薇| 国产曰批免费观看久久久| 国产日韩欧美在线一区| 成人av片在线观看| 亚洲欧美乱综合| 精品视频在线视频| 久久成人久久鬼色| 久久这里只有精品6| 成人黄色网址在线观看| 夜夜精品浪潮av一区二区三区| 欧美亚洲国产bt| 男男成人高潮片免费网站| 国产精品毛片久久久久久| 欧美视频在线一区二区三区| 久久精品国产精品亚洲红杏| 亚洲国产成人自拍| 欧美无砖砖区免费| 久久精品国产亚洲aⅴ| 亚洲国产成人一区二区三区| 色综合天天综合网天天狠天天| 成人激情文学综合网| 国产精品区一区二区三区| 色综合久久久久综合|