成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Kubernetes 內部原理:架構

開發 架構
控制平面是 Kubernetes 集群的“大腦”,它協調和編排各種組件,以確保系統的期望狀態得以實現和維護。

在本文中,我們將深入探討 Kubernetes 架構,并探討其關鍵組件。

一個 Kubernetes 集群由兩個主要組件組成:

  • 控制平面節點
  • 工作節點

控制平面

控制平面是 Kubernetes 集群的“大腦”,它協調和編排各種組件,以確保系統的期望狀態得以實現和維護。控制平面進一步包括以下組件:

1. Kube-API 服務器

API 服務器是控制平面的中央管理點,它暴露 Kubernetes API,客戶端可以使用該 API 與集群進行交互。因此,當我們使用 kubectl 管理集群時,實際上是通過 HTTP REST API 與 API 服務器進行通信。kube-api 服務器負責以下任務:

  • API 管理:公開集群 API 端點并處理所有 API 請求。
  • 身份驗證(使用客戶端證書、令牌和 HTTP 基本身份驗證)和授權(ABAC 和 RBAC 評估)。
  • 處理 API 對象(如 pod、service 等)的API 請求和數據驗證。
  • 與 etcd 通信以存儲狀態和配置。
  • API 服務器協調控制平面和工作節點組件之間的所有進程。

2. etcd

etcd 是 Kubernetes 使用的分布式鍵值存儲,用于存儲集群的配置數據和資源的期望狀態。Kube-API 服務器使用 etcd 的觀察功能來跟蹤對象狀態的更改。它是控制平面中的唯一有狀態組件,負責以下任務:

  • 作為集群的唯一真相來源,確保一致性和數據持久性。
  • 充當后端服務發現和數據庫。
  • 存儲 Kubernetes 對象(如 pod、secret、daemon set、deployment、config map、stateful set 等)的所有配置、狀態和元數據。
  • 在鍵值對格式的 /registry 目錄鍵下存儲所有對象。例如,在默認命名空間下名為 Nginx 的 pod 的信息可以在 /registry/pods/default/nginx 下找到。

3. Kube-scheduler

Kube-scheduler 負責在工作節點上調度 pod。當我們創建一個 pod 并將其提交到 API 服務器時,調度程序會自動獲取 pod,根據可用資源和調度規則評估節點,并將 pod 分配給適當的節點。

  • 根據約束和可用資源確定每個 pod 在調度隊列中的有效放置節點。
  • 然后,調度程序對每個有效節點進行排名,并將 pod 綁定到合適的節點。集群中可以使用多個不同的調度程序;kube-scheduler 是參考實現。
  • 當我們部署一個 pod 時,我們指定了 pod 的要求,如CPU、內存、親和性、污點或容忍性、優先級、持久卷等。
  • Kubernetes 允許用戶使用自定義調度程序配置來開發自己的自定義調度程序。

4. Kube Controller 管理器

kube-controller-manager 是一個關鍵組件,運行著負責維護集群的期望狀態和管理系統不同方面的各種控制器。

每個控制器關注于集群管理的特定領域,自動化任務,確保資源的實際狀態與期望狀態相匹配。

以下是重要的內置 Kubernetes 控制器列表:

  • Node Controller:負責監控集群中的節點狀態。它會檢測節點故障并啟動操作以替換失敗的節點或將 pod 重新調度到健康的節點。
  • Replication Controller:確保 pod 的指定副本數始終運行。根據需要創建或終止 pod 以維護所需的副本計數。
  • Deployment Controller:擴展了 Replication Controller 的功能,允許您以聲明性方式定義和管理應用程序部署。它支持滾動更新、回滾和擴展。
  • StatefulSet Controller:通過確保穩定和有序的擴展和升級,管理有狀態應用程序。它為每個 pod 分配唯一的網絡標識,并在重新調度時保持其標識。
  • **Daemon

Set Controller**:確保在所有或一部分節點上運行特定 pod 的副本。通常用于任務,如節點監視代理或網絡組件。

  • Job Controller:管理批處理作業,確保特定任務或作業的完成次數達到了指定的要求。
  • CronJob Controller:允許您使用類似于 cron 的語法在指定間隔內調度任務。它根據定義的計劃創建作業。
  • Namespace Controller:確保集群中的每個命名空間都具有一組相應的資源,并強制資源隔離。
  • Service Account 和 Token Controller:自動為命名空間中的 pod 創建默認帳戶和訪問令牌。
  • Service Controller:監視服務和端點,并根據創建、刪除或重新調度 pod 的情況更新它們。
  • Endpoint Controller:維護 endpoint 對象,根據標簽選擇器將服務與 pod 匹配。

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

當 Kubernetes 部署在云環境中時,云控制器管理器充當 Kubernetes 集群和云平臺 API 之間的橋梁。它管理 Kubernetes 使用的云特定資源的生命周期。

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

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

  • Node Controller:管理 Kubernetes 節點與云實例之間的交互,處理節點的生命周期操作,如創建、刪除和調整大小。
  • Route Controller:處理服務的云特定網絡配置,例如創建負載均衡器或管理 IP 地址。
  • Volume Controller:與云存儲服務集成,以云特定方式提供和管理持久卷。
  • Service Controller:與云提供商的負載均衡器服務互動,以創建、管理和更新 Kubernetes 服務的負載均衡器。

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

(4)它與云提供商的 API 進行通信,執行操作,例如創建實例、配置網絡、管理存儲資源等。

(5)它確保適當管理安全設置和憑據,與云服務交互時進行管理。

工作節點

工作節點負責運行容器化應用程序。它包括以下組件。

  • kubelet
  • kube-proxy
  • 容器運行時

1. Kubelet

Kubelet 是 Kubernetes 控制平面和節點上運行的容器之間的關鍵橋梁,確保集群的期望狀態得以實現和維護。

它在集群中的每個節點上運行一個代理組件,以將節點的狀態和資源利用率報告給 Kubernetes 控制平面。它不以容器形式運行,而是由 systemd 管理的守護程序。

以下是 kubelet 的主要功能和職責:

  • 節點代理:kubelet 充當每個節點上的代理,將節點的狀態和容器的健康狀況報告給 Kubernetes 控制平面。
  • 健康監控:kubelet 連續監控 pod 中的容器的健康狀況。如果容器崩潰或變得不健康,kubelet 會采取適當的措施,如重新啟動容器或整個 pod。
  • Pod 管理:kubelet 管理節點上 pod 的狀態。它確保根據從 Kubernetes API 服務器接收的 pod 定義,指定的 pod 正在運行且健康。
  • Pod 網絡:kubelet 與網絡插件協作,為節點上的 pod 設置網絡。它為 pod 分配 IP 地址,并確保容器可以相互通信以及與外部世界通信。
  • 卷管理:kubelet 管理 pod 定義中指定的卷,根據需要附加和分離卷。它確保數據持久性并允許容器訪問共享存儲。
  • 資源管理:kubelet 強制執行 pod 定義中指定的資源約束,確保容器不會超出分配的 CPU 和內存限制。它還處理對 CPU 和內存等資源的請求。
  • 驅逐和清理:當節點上的資源變得稀缺時,kubelet 可以根據預定義的策略從 pod 中驅逐 pod,以釋放資源。它還在 pod 終止時清理任何剩余的資源。
  • 節點注冊:kubelet 向 Kubernetes 控制平面注冊節點,使控制平面能夠知道可用于調度 pod 的節點。

2. Kube 代理

Kube 代理,即 Kubernetes 代理,是運行在 Kubernetes 集群中每個節點上的網絡代理。其主要功能是管理 pod 和服務之間的網絡通信,為容器化應用程序提供可靠和一致的網絡環境。它負責以下任務:

  • 服務發現:Kube 代理負責在集群內啟用服務發現。它根據服務規范中定義的標簽和選擇器,維護網絡規則,將請求從服務轉發到適當的 pod。
  • 負載均衡:Kube 代理為具有多個副本或實例的服務實施負載均衡。它將傳入請求分發給與服務的選擇條件相匹配的可用 pod。
  • 網絡地址轉換(NAT):Kube 代理對出站流量執行網絡地址轉換(NAT)。這確保來自 pod 的流量看起來是從主機的 IP 地址發出的,從而允許外部系統正確響應。
  • ClusterIP 服務:對于 ClusterIP 服務(僅在集群內部可訪問),Kube 代理設置 IPTables 規則,將流量轉發到根據其標簽選擇器匹配的正確 pod。
  • NodePort 服務:Kube 代理配置主機的防火墻,以將傳入流量轉發到 NodePort 服務的適當 pod。這允許使用每個節點上的靜態端口外部訪問服務。
  • 高可用性:Kube 代理致力于確保服務的高可用性。如果 pod 不可用或添加/刪除了,Kube 代理會自動更新網絡配置以正確路由流量。
  • 健康檢查:Kube 代理監視與服務相關的端點和 pod 的健康狀況。如果 pod 變得不健康,Kube 代理停止轉發流量。

3. 容器運行時

容器運行時環境負責根據 pod 規范創建、啟動、停止和管理容器。

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

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

Kubernetes 的架構促進了分布式微服務導向的方法,使開發人員可以專注于應用程序邏輯,而平臺負責部署、擴展和負載均衡。

無論是在本地、云中還是混合環境中,Kubernetes 的架構使組織能夠高效地管理復雜的容器化工作負載,同時秉承模塊化、抽象和自動化的原則。

責任編輯:趙寧寧 來源: 小技術君
相關推薦

2019-12-06 11:18:07

LinuxCPU架構

2009-09-14 10:35:15

Linq內部執行原理

2017-02-27 09:21:23

Kubernetes架構service

2022-07-03 13:58:53

YAMLKubernetes容器

2021-01-12 14:46:34

Kubernetes開發存儲

2023-04-17 08:13:13

KubernetesPod

2023-09-27 12:22:50

Kafka架構

2023-06-07 15:25:19

Kafka版本日志

2011-10-08 14:09:27

JavaScript

2022-09-05 08:39:04

kubernetesk8s

2018-07-27 10:39:13

對象存儲Git

2022-07-14 08:02:57

Netty網絡模塊

2023-11-01 14:49:07

2022-07-14 14:18:59

Kubernetes架構

2020-05-19 21:40:35

Tomcat架構Connector

2010-02-04 11:06:14

2015-07-01 13:34:22

Kubernetes應用部署模型

2023-09-07 23:59:44

網絡Kubernetes局域網

2020-03-12 11:29:51

JavaScript瀏覽器語言

2020-03-05 16:47:51

Git內部儲存
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲精品中文字幕在线观看 | 91免费在线看 | 草比网站 | www.国产视频 | 日韩在线精品 | 视频一区二区在线观看 | 久久国产亚洲精品 | 精品成人免费一区二区在线播放 | 久草热在线 | 亚洲欧美日本在线 | 亚洲品质自拍视频网站 | 久久久久久国产精品免费免费狐狸 | 麻豆91精品91久久久 | 日韩一区二区在线视频 | 成人1区| 久久久久久久国产精品视频 | 一本一道久久a久久精品蜜桃 | 成人在线观看中文字幕 | 国产精品久久久久久网站 | 亚洲视频在线一区 | 91在线色视频 | 真人毛片| 国产高清精品一区二区三区 | 国产中文一区二区三区 | 一级做a爰片久久毛片免费看 | 四虎成人在线播放 | 中文字幕第90页 | 欧美一区成人 | 国产一区二区精品 | 羞羞色在线观看 | 亚洲成av人片在线观看无码 | 国产欧美久久精品 | 黄网免费看| 欧产日产国产精品国产 | www.亚洲.com | 亚州av| 九九热国产视频 | 免费黄色大片 | 成人性视频免费网站 | 日本淫视频 | 五月婷婷亚洲 |