南京h5網(wǎng)站開發(fā)seo根據(jù)什么具體優(yōu)化
文章目錄
- 1 K8S總體架構(gòu)
- 2 相關(guān)組件
- 2.1 控制面板組件
- 2.2 節(jié)點組件
- 2.3 附加組件
- 寫在最后
1 K8S總體架構(gòu)
K8S,全稱Kubernetes,是一個開源的容器部署和管理平臺,由Google開發(fā),后捐獻給云原生計算基金會(CNCF)。K8S提供了容器編排、容器運行時、以容器為中心的基礎設施編排、負載平衡、自我修復機制和服務發(fā)現(xiàn)等功能。K8S的架構(gòu)采用主從設備模型(Master-Slave架構(gòu)),即由Master節(jié)點負責集群的調(diào)度、管理和運維,Slave節(jié)點作為集群中的運算工作負載節(jié)點。
- 中央控制節(jié)點(Master Node): 位于集群的中心,包含API Server、Scheduler、Controller Manager和etcd等組件。這些組件協(xié)同工作,負責集群的管理、調(diào)度和狀態(tài)監(jiān)控。
- 工作節(jié)點(Worker Node): 圍繞在Master Node周圍,每個Node節(jié)點上運行Kubelet、Kube-Proxy和容器運行時等組件。這些節(jié)點負責執(zhí)行Master節(jié)點分配的任務,運行和管理容器實例。
- Pod: Pod是Kubernetes中的最小調(diào)度單元,由一個或多個容器組成,這些容器共享存儲和網(wǎng)絡資源。Pod是Kubernetes生態(tài)系統(tǒng)中的核心管理單元。作為最小調(diào)度單元,分布在各個Node節(jié)點上,由容器組成,共享存儲和網(wǎng)絡資源。
- 服務(Service): 為Pod提供穩(wěn)定的網(wǎng)絡接入點,實現(xiàn)服務發(fā)現(xiàn)和負載均衡。
2 相關(guān)組件
K8S的控制面板組件(Master)是集群的核心部分,負責整個集群的管理和調(diào)度。這些組件協(xié)同工作,確保了Kubernetes集群的穩(wěn)定運行和高效管理。而K8S的節(jié)點組件主要包括Node節(jié)點上的組件,這些組件負責在Node節(jié)點上運行容器化應用,并與管理節(jié)點(Master節(jié)點)進行通信。
2.1 控制面板組件
- etcd
● 功能:etcd是一個高度可靠的分布式鍵值存儲,用于存儲集群配置信息的持久化存儲。etcd保存了Kubernetes集群的所有狀態(tài)數(shù)據(jù),如Pods、Services等資源的定義和狀態(tài)。當數(shù)據(jù)發(fā)生變化時,etcd會快速地通知Kubernetes相關(guān)組件。
● 特點:etcd是一個獨立的服務組件,并不隸屬于Kubernetes集群。在生產(chǎn)環(huán)境中,etcd通常以集群方式運行,以確保服務的可用性。 - kube-apiserver
● 功能:kube-apiserver是Kubernetes集群的API服務器,是集群的前端服務器,提供了HTTP/HTTPS RESTful API,即Kubernetes API。所有的請求都需要經(jīng)過這個接口進行通信。它負責接收、校驗并響應所有的REST請求,并將結(jié)果狀態(tài)持久化存儲在etcd中。
● 認證與授權(quán):kube-apiserver支持多種身份驗證機制,如基于令牌、證書和用戶名/密碼的身份驗證。同時,它還使用RBAC(Role-Based Access Control)機制來管理Kubernetes資源的授權(quán)。
● 架構(gòu):kube-apiserver的架構(gòu)是一個多層的系統(tǒng),由HTTP Server提供HTTP(S)服務。所有的API請求都通過HTTP(S)進行傳輸,并由kube-apiserver處理。 - kube-controller-manager
● 功能:kube-controller-manager是Kubernetes集群中的控制器管理器,負責管理集群中所有的控制器(controller)。這些控制器包括節(jié)點控制器(Node Controller)、副本控制器(Replication Controller)等。它們不斷地監(jiān)聽集群狀態(tài)變化,并根據(jù)期望狀態(tài)和實際狀態(tài)的差異來進行調(diào)諧。
● 架構(gòu):從邏輯上講,每個控制器都是一個單獨的進程,但為了降低復雜性,它們都被編譯到同一個可執(zhí)行文件,并在同一個進程中運行。 - cloud-controller-manager(可選)
● 功能:cloud-controller-manager用于管理與特定云平臺相關(guān)的控制器。它的作用是將云平臺的功能封裝成Kubernetes的API,以便與其他組件進行交互。 - kube-scheduler
● 功能:kube-scheduler是Kubernetes集群的默認調(diào)度器,負責將新創(chuàng)建的Pod調(diào)度到合適的節(jié)點上。調(diào)度決策考慮的因素包括單個Pod及Pods集合的資源需求、軟硬件及策略約束、親和性及反親和性規(guī)范、數(shù)據(jù)位置、工作負載間的干擾及最后時限等。
● 調(diào)度算法:kube-scheduler通過Predicate(預選)和Priority(優(yōu)選)兩種調(diào)度算法來選擇最合適的節(jié)點。Predicate用于過濾掉不滿足條件的節(jié)點,Priority用于在剩余節(jié)點中選擇優(yōu)先級最高的節(jié)點。
2.2 節(jié)點組件
- kubelet:在每個節(jié)點上運行的代理,負責管理該節(jié)點上的容器、Pod 和容器相關(guān)的資源。是節(jié)點與主節(jié)點通信的橋梁,執(zhí)行主節(jié)點下發(fā)的指令。
- kube-proxy:網(wǎng)絡代理,負責實現(xiàn) Kubernetes 服務的網(wǎng)絡抽象和負載均衡。它將對服務的訪問轉(zhuǎn)發(fā)到后端的一組 Pod 上。提供服務的網(wǎng)絡訪問能力,確保服務的可靠性和可擴展性。
- 容器運行時(Container Runtime):負責在節(jié)點上運行容器的運行時環(huán)境。Kubernetes 支持多種容器運行時,如 Docker、containerd、CRI-O 等。是容器化應用運行的基礎,提供容器的創(chuàng)建、運行和管理能力。
2.3 附加組件
- kube-dns/coredns:DNS 服務,負責為 Pod 提供 DNS 解析服務,使得在集群內(nèi)部可以使用域名來訪問其他服務。
- Ingress Controller:負責將外部流量引入到集群內(nèi)部的服務,并執(zhí)行負載均衡、SSL 終止等功能。
- Monitoring and Logging:用于監(jiān)控和日志記錄集群中的應用程序和基礎設施,如 Prometheus、EFK Stack 等。
- Cluster Autoscaler:自動擴展集群節(jié)點數(shù)量,根據(jù)負載情況自動增加或減少節(jié)點數(shù)量以滿足需求。
- Horizontal Pod Autoscaler:自動擴展 Pod 的副本數(shù)量,根據(jù) CPU 使用率或自定義指標調(diào)整 Pod 的數(shù)量。
寫在最后
?本文已被專欄 Kubernetes 收錄,歡迎 點擊訂閱專欄
?以上便是本文的全部內(nèi)容啦!創(chuàng)作不易,如果你有任何問題,歡迎私信,感謝您的支持!