免费爱碰视频在线观看,九九精品国产屋,欧美亚洲尤物久久精品,1024在线观看视频亚洲

      Kubernetes 架構(gòu)

      Kubernetes 架構(gòu)

      在本文中,將介紹各種 Kubernetes 組件。

      什么是 Kubernetes?

      Kubernetes 是一個(gè)可移植、可擴(kuò)展的開源平臺(tái),用于管理容器工作負(fù)載和服務(wù),有助于聲明式配置和自動(dòng)化。

      Kubernetes 架構(gòu)或組件

      Kubernetes 集群由一個(gè)控制平面和一組 工作機(jī)器(稱為節(jié)點(diǎn))組成。節(jié)點(diǎn)可以是虛擬機(jī)或物理服務(wù)器。應(yīng)該有至少一個(gè)控制平面節(jié)點(diǎn)(正式稱為主節(jié)點(diǎn))來(lái)管理集群和至少一個(gè)工作節(jié)點(diǎn)(或從節(jié)點(diǎn))。控制平面節(jié)點(diǎn)和工作節(jié)點(diǎn)都有自己的組件。

      控制平面節(jié)點(diǎn)的組件:

      • Kube API Server
      • Kube Scheduler
      • etcd
      • Kube Controller Manager
      • Cloud Controller Manager

      1. Kube API Server:

      控制平面的關(guān)鍵組件是 Kube API Server,它公開了一個(gè) HTTP API,允許最終用戶、集群的各個(gè)部分和外部組件相互通信。

      Kubernetes API 讓我們可以查詢和操作 Kubernetes 中不同 API 對(duì)象的狀態(tài),比如 Pod、服務(wù)、復(fù)制控制器等。

      Kubernetes API 服務(wù)器的主要實(shí)現(xiàn)是kube-apiserver。kube -apiserver旨在水平擴(kuò)展,即通過(guò)部署更多實(shí)例進(jìn)行擴(kuò)展。您可以運(yùn)行多個(gè)kube-apiserver實(shí)例并平衡這些實(shí)例之間的流量。

      與 API Server 的交互可以通過(guò)三種方式完成:

    1. UI
    2. API
    3. CLI Kubectl
    4. 2. Kube Scheduler

      調(diào)度程序監(jiān)控新創(chuàng)建的 Pod,并選擇一個(gè)工作節(jié)點(diǎn)供他們運(yùn)行。

      3.etcd

      etcd 是一個(gè)一致且高可用性的鍵值存儲(chǔ)組件,存儲(chǔ) Kubernetes 的所有集群數(shù)據(jù)備,包括集群狀態(tài)、集群配置等。

      我們可以用 Zookeeper 和 Consul 等其他鍵值存儲(chǔ)替換ectd,但是,etcd 是官方支持的 k/v 存儲(chǔ),并且是 Kubernetes 推薦和生產(chǎn)測(cè)試的選擇。

      4. Kube Controller Manager

      通過(guò) apiserver 監(jiān)視集群的共享狀態(tài)并進(jìn)行更改以將當(dāng)前狀態(tài)移回所需狀態(tài)的控制循環(huán)。

      Kubernetes 帶有一組內(nèi)置控制器,它們?cè)?kube-controller-manager 下運(yùn)行,例如Job 控制器和Deployment 控制器。

      5.cloud Controller Manager

      云控制器管理器讓我們 將集群鏈接到特定云提供商的 API,并將與該云平臺(tái)交互的組件與僅與我們的集群交互的組件分開。

      cloud-controller-manager 僅運(yùn)行特定于特定云提供商的控制器。

      工作節(jié)點(diǎn)的組件:

      節(jié)點(diǎn)組件在每個(gè)節(jié)點(diǎn)上運(yùn)行。它的工作是維護(hù)運(yùn)行中的 pod 并提供 Kubernetes 運(yùn)行時(shí)環(huán)境。

      • Kubelet
      • Kube Proxy
      • Container runtime
      • Containers & Pods

      1. kubelet

      Kubelet 相當(dāng)于代理,分布在每個(gè)節(jié)點(diǎn),定期從kube-apiserver組件接收新的或修改的Pod規(guī)范,并確保Pod及其容器在期望規(guī)范下運(yùn)行。同時(shí)該組件作為工作節(jié)點(diǎn)的監(jiān)控組件,向kube-apiserver匯報(bào)主機(jī)的運(yùn)行狀況。

      2. Kube proxy

      Kube Proxy 是運(yùn)行在每個(gè)節(jié)點(diǎn)上的網(wǎng)絡(luò)代理。它維護(hù)節(jié)點(diǎn)上的網(wǎng)絡(luò)規(guī)則,這些網(wǎng)絡(luò)規(guī)則允許從集群內(nèi)部或外部的網(wǎng)絡(luò)會(huì)話與我們的 Pod 進(jìn)行網(wǎng)絡(luò)通信。

      3.Container runtime

      容器運(yùn)行時(shí),也稱為容器引擎,是一個(gè)軟件組件,它的工作是運(yùn)行容器。具體來(lái)說(shuō),容器運(yùn)行時(shí)負(fù)責(zé)驗(yàn)證和加載容器鏡像,監(jiān)控系統(tǒng)資源,隔離和分配資源,還負(fù)責(zé)容器生命周期的管理。

      為了執(zhí)行所有這些活動(dòng),容器運(yùn)行時(shí)使用標(biāo)準(zhǔn)化接口來(lái)協(xié)調(diào)資源,包括:

      • 容器存儲(chǔ)接口 (CSI)管理容器如何訪問(wèn)存儲(chǔ)設(shè)備
      • 容器網(wǎng)絡(luò)接口 (CNI)說(shuō)明 容器如何通過(guò)網(wǎng)絡(luò)進(jìn)行通信

      容器運(yùn)行時(shí)的一些示例是containerd、CRI-O、Docker Engine 和 Mirantis Container Runtime。

      4. 容器和 Pod

      Pod 是 Kubernetes中最小的單元。Pod 抽象出容器層,因此您可以直接與 Kubernetes 層交互。

      Pod 旨在在多個(gè)容器中運(yùn)行一個(gè)應(yīng)用程序。例如,DB Pod、Job Pod、Frontend App Pod 和后端 API Pod。我們可以在同一個(gè) Pod 中運(yùn)行多個(gè)應(yīng)用程序,但這些容器將緊密耦合。

      每個(gè) Pod 都有自己的私有 IP 地址。容器將在不同的端口上運(yùn)行。容器可以通過(guò) localhost 相互通信。

      每個(gè) Pod 都可以附加一個(gè)共享存儲(chǔ)卷。Pod 中的所有容器將共享相同的卷。

      當(dāng) Pod 中最后一個(gè)剩余的容器死亡或崩潰時(shí),Pod 也會(huì)如此。當(dāng)創(chuàng)建一個(gè)新 Pod 來(lái)替換死掉或崩潰的 Pod 時(shí),該 Pod 將分配一個(gè) IP 地址。IP 地址對(duì)于 Pod 來(lái)說(shuō)是臨時(shí)的,默認(rèn)情況下它們不會(huì)持久存在。

      上面的 K8s 架構(gòu)中還提到了其他可選的 K8s 對(duì)象,例如 Deployment、ReplicaSet 等,我將在單獨(dú)的文章中解釋。

      鄭重聲明:本文內(nèi)容及圖片均整理自互聯(lián)網(wǎng),不代表本站立場(chǎng),版權(quán)歸原作者所有,如有侵權(quán)請(qǐng)聯(lián)系管理員(admin#wlmqw.com)刪除。
      (0)
      用戶投稿
      上一篇 2022年6月21日 15:23
      下一篇 2022年6月21日 15:24

      相關(guān)推薦

      聯(lián)系我們

      聯(lián)系郵箱:admin#wlmqw.com
      工作時(shí)間:周一至周五,10:30-18:30,節(jié)假日休息