日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線(xiàn)溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
Kubernetes 內(nèi)部原理:架構(gòu)

在本文中,我們將深入探討 Kubernetes 架構(gòu),并探討其關(guān)鍵組件。

發(fā)展壯大離不開(kāi)廣大客戶(hù)長(zhǎng)期以來(lái)的信賴(lài)與支持,我們將始終秉承“誠(chéng)信為本、服務(wù)至上”的服務(wù)理念,堅(jiān)持“二合一”的優(yōu)良服務(wù)模式,真誠(chéng)服務(wù)每家企業(yè),認(rèn)真做好每個(gè)細(xì)節(jié),不斷完善自我,成就企業(yè),實(shí)現(xiàn)共贏。行業(yè)涉及成都濕噴機(jī)等,在網(wǎng)站建設(shè)、成都全網(wǎng)營(yíng)銷(xiāo)推廣、WAP手機(jī)網(wǎng)站、VI設(shè)計(jì)、軟件開(kāi)發(fā)等項(xiàng)目上具有豐富的設(shè)計(jì)經(jīng)驗(yàn)。

一個(gè) Kubernetes 集群由兩個(gè)主要組件組成:

  • 控制平面節(jié)點(diǎn)
  • 工作節(jié)點(diǎn)

控制平面

控制平面是 Kubernetes 集群的“大腦”,它協(xié)調(diào)和編排各種組件,以確保系統(tǒng)的期望狀態(tài)得以實(shí)現(xiàn)和維護(hù)??刂破矫孢M(jìn)一步包括以下組件:

1. Kube-API 服務(wù)器

API 服務(wù)器是控制平面的中央管理點(diǎn),它暴露 Kubernetes API,客戶(hù)端可以使用該 API 與集群進(jìn)行交互。因此,當(dāng)我們使用 kubectl 管理集群時(shí),實(shí)際上是通過(guò) HTTP REST API 與 API 服務(wù)器進(jìn)行通信。kube-api 服務(wù)器負(fù)責(zé)以下任務(wù):

  • API 管理:公開(kāi)集群 API 端點(diǎn)并處理所有 API 請(qǐng)求。
  • 身份驗(yàn)證(使用客戶(hù)端證書(shū)、令牌和 HTTP 基本身份驗(yàn)證)和授權(quán)(ABAC 和 RBAC 評(píng)估)。
  • 處理 API 對(duì)象(如 pod、service 等)的API 請(qǐng)求和數(shù)據(jù)驗(yàn)證。
  • 與 etcd 通信以存儲(chǔ)狀態(tài)和配置。
  • API 服務(wù)器協(xié)調(diào)控制平面和工作節(jié)點(diǎn)組件之間的所有進(jìn)程。

2. etcd

etcd 是 Kubernetes 使用的分布式鍵值存儲(chǔ),用于存儲(chǔ)集群的配置數(shù)據(jù)和資源的期望狀態(tài)。Kube-API 服務(wù)器使用 etcd 的觀察功能來(lái)跟蹤對(duì)象狀態(tài)的更改。它是控制平面中的唯一有狀態(tài)組件,負(fù)責(zé)以下任務(wù):

  • 作為集群的唯一真相來(lái)源,確保一致性和數(shù)據(jù)持久性。
  • 充當(dāng)后端服務(wù)發(fā)現(xiàn)和數(shù)據(jù)庫(kù)。
  • 存儲(chǔ) Kubernetes 對(duì)象(如 pod、secret、daemon set、deployment、config map、stateful set 等)的所有配置、狀態(tài)和元數(shù)據(jù)。
  • 在鍵值對(duì)格式的 /registry 目錄鍵下存儲(chǔ)所有對(duì)象。例如,在默認(rèn)命名空間下名為 Nginx 的 pod 的信息可以在 /registry/pods/default/nginx 下找到。

3. Kube-scheduler

Kube-scheduler 負(fù)責(zé)在工作節(jié)點(diǎn)上調(diào)度 pod。當(dāng)我們創(chuàng)建一個(gè) pod 并將其提交到 API 服務(wù)器時(shí),調(diào)度程序會(huì)自動(dòng)獲取 pod,根據(jù)可用資源和調(diào)度規(guī)則評(píng)估節(jié)點(diǎn),并將 pod 分配給適當(dāng)?shù)墓?jié)點(diǎn)。

  • 根據(jù)約束和可用資源確定每個(gè) pod 在調(diào)度隊(duì)列中的有效放置節(jié)點(diǎn)。
  • 然后,調(diào)度程序?qū)γ總€(gè)有效節(jié)點(diǎn)進(jìn)行排名,并將 pod 綁定到合適的節(jié)點(diǎn)。集群中可以使用多個(gè)不同的調(diào)度程序;kube-scheduler 是參考實(shí)現(xiàn)。
  • 當(dāng)我們部署一個(gè) pod 時(shí),我們指定了 pod 的要求,如CPU、內(nèi)存、親和性、污點(diǎn)或容忍性、優(yōu)先級(jí)、持久卷等。
  • Kubernetes 允許用戶(hù)使用自定義調(diào)度程序配置來(lái)開(kāi)發(fā)自己的自定義調(diào)度程序。

4. Kube Controller 管理器

kube-controller-manager 是一個(gè)關(guān)鍵組件,運(yùn)行著負(fù)責(zé)維護(hù)集群的期望狀態(tài)和管理系統(tǒng)不同方面的各種控制器。

每個(gè)控制器關(guān)注于集群管理的特定領(lǐng)域,自動(dòng)化任務(wù),確保資源的實(shí)際狀態(tài)與期望狀態(tài)相匹配。

以下是重要的內(nèi)置 Kubernetes 控制器列表:

  • Node Controller:負(fù)責(zé)監(jiān)控集群中的節(jié)點(diǎn)狀態(tài)。它會(huì)檢測(cè)節(jié)點(diǎn)故障并啟動(dòng)操作以替換失敗的節(jié)點(diǎn)或?qū)?pod 重新調(diào)度到健康的節(jié)點(diǎn)。
  • Replication Controller:確保 pod 的指定副本數(shù)始終運(yùn)行。根據(jù)需要?jiǎng)?chuàng)建或終止 pod 以維護(hù)所需的副本計(jì)數(shù)。
  • Deployment Controller:擴(kuò)展了 Replication Controller 的功能,允許您以聲明性方式定義和管理應(yīng)用程序部署。它支持滾動(dòng)更新、回滾和擴(kuò)展。
  • StatefulSet Controller:通過(guò)確保穩(wěn)定和有序的擴(kuò)展和升級(jí),管理有狀態(tài)應(yīng)用程序。它為每個(gè) pod 分配唯一的網(wǎng)絡(luò)標(biāo)識(shí),并在重新調(diào)度時(shí)保持其標(biāo)識(shí)。
  • **Daemon

Set Controller**:確保在所有或一部分節(jié)點(diǎn)上運(yùn)行特定 pod 的副本。通常用于任務(wù),如節(jié)點(diǎn)監(jiān)視代理或網(wǎng)絡(luò)組件。

  • Job Controller:管理批處理作業(yè),確保特定任務(wù)或作業(yè)的完成次數(shù)達(dá)到了指定的要求。
  • CronJob Controller:允許您使用類(lèi)似于 cron 的語(yǔ)法在指定間隔內(nèi)調(diào)度任務(wù)。它根據(jù)定義的計(jì)劃創(chuàng)建作業(yè)。
  • Namespace Controller:確保集群中的每個(gè)命名空間都具有一組相應(yīng)的資源,并強(qiáng)制資源隔離。
  • Service Account 和 Token Controller:自動(dòng)為命名空間中的 pod 創(chuàng)建默認(rèn)帳戶(hù)和訪(fǎng)問(wèn)令牌。
  • Service Controller:監(jiān)視服務(wù)和端點(diǎn),并根據(jù)創(chuàng)建、刪除或重新調(diào)度 pod 的情況更新它們。
  • Endpoint Controller:維護(hù) endpoint 對(duì)象,根據(jù)標(biāo)簽選擇器將服務(wù)與 pod 匹配。

5. 云控制器管理器 (CCM)

當(dāng) Kubernetes 部署在云環(huán)境中時(shí),云控制器管理器充當(dāng) Kubernetes 集群和云平臺(tái) API 之間的橋梁。它管理 Kubernetes 使用的云特定資源的生命周期。

(1)它從主 Kubernetes 控制平面中卸載了云特定的控制循環(huán)和功能,減少了其復(fù)雜性,使其更易于維護(hù)和擴(kuò)展。

(2)它托管各種云特定控制器,負(fù)責(zé)管理特定于云提供商的資源。這些控制器包括:

  • Node Controller:管理 Kubernetes 節(jié)點(diǎn)與云實(shí)例之間的交互,處理節(jié)點(diǎn)的生命周期操作,如創(chuàng)建、刪除和調(diào)整大小。
  • Route Controller:處理服務(wù)的云特定網(wǎng)絡(luò)配置,例如創(chuàng)建負(fù)載均衡器或管理 IP 地址。
  • Volume Controller:與云存儲(chǔ)服務(wù)集成,以云特定方式提供和管理持久卷。
  • Service Controller:與云提供商的負(fù)載均衡器服務(wù)互動(dòng),以創(chuàng)建、管理和更新 Kubernetes 服務(wù)的負(fù)載均衡器。

(3)CCM 管理云資源,確保它們與 Kubernetes 資源定義的期望狀態(tài)相匹配。例如,它可能根據(jù)縮放要求創(chuàng)建或釋放云實(shí)例。

(4)它與云提供商的 API 進(jìn)行通信,執(zhí)行操作,例如創(chuàng)建實(shí)例、配置網(wǎng)絡(luò)、管理存儲(chǔ)資源等。

(5)它確保適當(dāng)管理安全設(shè)置和憑據(jù),與云服務(wù)交互時(shí)進(jìn)行管理。

工作節(jié)點(diǎn)

工作節(jié)點(diǎn)負(fù)責(zé)運(yùn)行容器化應(yīng)用程序。它包括以下組件。

  • kubelet
  • kube-proxy
  • 容器運(yùn)行時(shí)

1. Kubelet

Kubelet 是 Kubernetes 控制平面和節(jié)點(diǎn)上運(yùn)行的容器之間的關(guān)鍵橋梁,確保集群的期望狀態(tài)得以實(shí)現(xiàn)和維護(hù)。

它在集群中的每個(gè)節(jié)點(diǎn)上運(yùn)行一個(gè)代理組件,以將節(jié)點(diǎn)的狀態(tài)和資源利用率報(bào)告給 Kubernetes 控制平面。它不以容器形式運(yùn)行,而是由 systemd 管理的守護(hù)程序。

以下是 kubelet 的主要功能和職責(zé):

  • 節(jié)點(diǎn)代理:kubelet 充當(dāng)每個(gè)節(jié)點(diǎn)上的代理,將節(jié)點(diǎn)的狀態(tài)和容器的健康狀況報(bào)告給 Kubernetes 控制平面。
  • 健康監(jiān)控:kubelet 連續(xù)監(jiān)控 pod 中的容器的健康狀況。如果容器崩潰或變得不健康,kubelet 會(huì)采取適當(dāng)?shù)拇胧?,如重新啟?dòng)容器或整個(gè) pod。
  • Pod 管理:kubelet 管理節(jié)點(diǎn)上 pod 的狀態(tài)。它確保根據(jù)從 Kubernetes API 服務(wù)器接收的 pod 定義,指定的 pod 正在運(yùn)行且健康。
  • Pod 網(wǎng)絡(luò):kubelet 與網(wǎng)絡(luò)插件協(xié)作,為節(jié)點(diǎn)上的 pod 設(shè)置網(wǎng)絡(luò)。它為 pod 分配 IP 地址,并確保容器可以相互通信以及與外部世界通信。
  • 卷管理:kubelet 管理 pod 定義中指定的卷,根據(jù)需要附加和分離卷。它確保數(shù)據(jù)持久性并允許容器訪(fǎng)問(wèn)共享存儲(chǔ)。
  • 資源管理:kubelet 強(qiáng)制執(zhí)行 pod 定義中指定的資源約束,確保容器不會(huì)超出分配的 CPU 和內(nèi)存限制。它還處理對(duì) CPU 和內(nèi)存等資源的請(qǐng)求。
  • 驅(qū)逐和清理:當(dāng)節(jié)點(diǎn)上的資源變得稀缺時(shí),kubelet 可以根據(jù)預(yù)定義的策略從 pod 中驅(qū)逐 pod,以釋放資源。它還在 pod 終止時(shí)清理任何剩余的資源。
  • 節(jié)點(diǎn)注冊(cè):kubelet 向 Kubernetes 控制平面注冊(cè)節(jié)點(diǎn),使控制平面能夠知道可用于調(diào)度 pod 的節(jié)點(diǎn)。

2. Kube 代理

Kube 代理,即 Kubernetes 代理,是運(yùn)行在 Kubernetes 集群中每個(gè)節(jié)點(diǎn)上的網(wǎng)絡(luò)代理。其主要功能是管理 pod 和服務(wù)之間的網(wǎng)絡(luò)通信,為容器化應(yīng)用程序提供可靠和一致的網(wǎng)絡(luò)環(huán)境。它負(fù)責(zé)以下任務(wù):

  • 服務(wù)發(fā)現(xiàn):Kube 代理負(fù)責(zé)在集群內(nèi)啟用服務(wù)發(fā)現(xiàn)。它根據(jù)服務(wù)規(guī)范中定義的標(biāo)簽和選擇器,維護(hù)網(wǎng)絡(luò)規(guī)則,將請(qǐng)求從服務(wù)轉(zhuǎn)發(fā)到適當(dāng)?shù)?pod。
  • 負(fù)載均衡:Kube 代理為具有多個(gè)副本或?qū)嵗姆?wù)實(shí)施負(fù)載均衡。它將傳入請(qǐng)求分發(fā)給與服務(wù)的選擇條件相匹配的可用 pod。
  • 網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT):Kube 代理對(duì)出站流量執(zhí)行網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)。這確保來(lái)自 pod 的流量看起來(lái)是從主機(jī)的 IP 地址發(fā)出的,從而允許外部系統(tǒng)正確響應(yīng)。
  • ClusterIP 服務(wù):對(duì)于 ClusterIP 服務(wù)(僅在集群內(nèi)部可訪(fǎng)問(wèn)),Kube 代理設(shè)置 IPTables 規(guī)則,將流量轉(zhuǎn)發(fā)到根據(jù)其標(biāo)簽選擇器匹配的正確 pod。
  • NodePort 服務(wù):Kube 代理配置主機(jī)的防火墻,以將傳入流量轉(zhuǎn)發(fā)到 NodePort 服務(wù)的適當(dāng) pod。這允許使用每個(gè)節(jié)點(diǎn)上的靜態(tài)端口外部訪(fǎng)問(wèn)服務(wù)。
  • 高可用性:Kube 代理致力于確保服務(wù)的高可用性。如果 pod 不可用或添加/刪除了,Kube 代理會(huì)自動(dòng)更新網(wǎng)絡(luò)配置以正確路由流量。
  • 健康檢查:Kube 代理監(jiān)視與服務(wù)相關(guān)的端點(diǎn)和 pod 的健康狀況。如果 pod 變得不健康,Kube 代理停止轉(zhuǎn)發(fā)流量。

3. 容器運(yùn)行時(shí)

容器運(yùn)行時(shí)環(huán)境負(fù)責(zé)根據(jù) pod 規(guī)范創(chuàng)建、啟動(dòng)、停止和管理容器。

一些常用的 Kubernetes 容器運(yùn)行時(shí)包括 Docker、containerd、CRI-O、rkt(發(fā)音為 "rocket")等。

  • 容器管理:容器運(yùn)行時(shí)環(huán)境負(fù)責(zé)根據(jù) pod 定義創(chuàng)建、啟動(dòng)、停止和管理容器。
  • 鏡像管理:它根據(jù) pod 定義中指定的鏡像引用從容器倉(cāng)庫(kù)(如 Docker Hub、Google Container Registry 等)拉取容器鏡像。
  • 資源隔離和管理:運(yùn)行時(shí)環(huán)境確保容器根據(jù)其 pod 配置中指定的 CPU、內(nèi)存和其他資源擁有適當(dāng)?shù)馁Y源級(jí)別。
  • 網(wǎng)絡(luò)和通信:它設(shè)置容器的網(wǎng)絡(luò),確保它們可以相互通信以及與集群內(nèi)外的服務(wù)通信。這可能涉及配置網(wǎng)絡(luò)命名空間、IP 地址和端口映射。
  • 容器安全性:運(yùn)行時(shí)環(huán)境通過(guò)強(qiáng)制容器之間的隔離,防止它們?cè)L問(wèn)彼此的文件系統(tǒng)或資源。它還可能實(shí)施其他安全措施,如 AppArmor 或 SELinux。
  • 卷和存儲(chǔ)管理:運(yùn)行時(shí)環(huán)境管理附加到容器的卷,確保數(shù)據(jù)持久性并允許容器訪(fǎng)問(wèn)共享存儲(chǔ)。
  • 生命周期管理:它處理容器的完整生命周期,包括啟動(dòng)、停止、重啟和清理容器。
  • 健康監(jiān)控和重啟:運(yùn)行時(shí)環(huán)境監(jiān)視容器的健康狀況,并可以自動(dòng)重啟崩潰或變得不健康的容器。
  • 與硬件和內(nèi)核的交互:運(yùn)行時(shí)環(huán)境與主機(jī)操作系統(tǒng)的內(nèi)核進(jìn)行交互,管理容器資源使用、網(wǎng)絡(luò)命名空間、進(jìn)程隔離和其他低級(jí)操作。

Kubernetes 的架構(gòu)促進(jìn)了分布式微服務(wù)導(dǎo)向的方法,使開(kāi)發(fā)人員可以專(zhuān)注于應(yīng)用程序邏輯,而平臺(tái)負(fù)責(zé)部署、擴(kuò)展和負(fù)載均衡。

無(wú)論是在本地、云中還是混合環(huán)境中,Kubernetes 的架構(gòu)使組織能夠高效地管理復(fù)雜的容器化工作負(fù)載,同時(shí)秉承模塊化、抽象和自動(dòng)化的原則。


新聞名稱(chēng):Kubernetes 內(nèi)部原理:架構(gòu)
鏈接分享:http://www.dlmjj.cn/article/dhpgjsc.html