iT邦幫忙

2024 iThome 鐵人賽

DAY 8
0

kubelet 可作為在 Kubernetes 叢集內每個節點上執行的主要「節點代理」。

其主要職責包括:

Pod 管理

確保 PodSpecs(定義 Pod 的 YAML 或 JSON 物件)中所述的容器正在運作且健康。

a

每個節點都運行一個 kubelet 服務進程,默認監聽 Port 10250。

Port 10250 是 Kubernetes 中 kubelet 服務進程的默認通訊端口。
kubelet 通常會監聽這個端口以便接收來自 master 節點的指令和發送節點狀態資訊。
這個端口也用於提供 API 端點,讓 Kubernetes 控制平面和其他工具可以與 kubelet 進行通訊。

  • 接收並執行 master 發送的指令。
  • 管理 Pod 及 Pod 中的容器。
  • 每個 kubelet 進程會在 API Server 上註冊節點的自身資訊,定期向 master 節點匯報節點的資源使用情況,並通過 cAdvisor 監控節點和容器的資源。

節點註冊

節點在 Kubernetes 集群中註冊時,使用主機名稱、覆蓋標誌或雲端提供者的特定邏輯來向 Kubernetes API 伺服器報告其存在。

  • 主機名稱:節點會使用其主機名稱來進行註冊,這有助於在集群內部識別每個節點。
  • 命令行標誌:通過指定特定的配置選項來覆蓋默認設定,確保節點的註冊資訊符合集群的要求。
  • 雲端提供者的邏輯:在使用雲端平台時,節點可以根據雲端提供者提供的 API 自動註冊。這樣可以動態管理節點的加入和退出。

kubelet 的命令行標誌可以用來:

  • 設置節點名稱:使用 --hostname-override 標誌可以指定節點的主機名稱,覆蓋系統默認的主機名稱。
  • 設定端口:通過 --port 標誌可以設置 kubelet 監聽的端口。
  • 配置資源限制:例如,通過 --max-pods 標誌來設置節點上能夠運行的最大 Pod 數量。

其他命令行指令可以參考這裡

資源管理

節點負責有效地管理和監控資源的使用,包括:

  • Pod 管理:節點會啟動、停止和重啟 Pod,並確保它們按照設定的要求運行。
  • 容器管理:節點內部的容器會根據需求進行管理,包括資源分配、性能監控以及容器的生命週期管理。
  • 資源監控:透過工具如 cAdvisor,節點能夠實時監控自身和 Pod 的資源使用情況,例如 CPU、內存和磁碟 I/O,以確保資源的高效利用和及時預警。

通訊

節點與 Kubernetes 控制平面之間的通訊至關重要,它包括:

  • 指令接收與執行:節點會接收來自控制平面的指令,並執行這些指令以管理 Pod 和容器的狀態。
  • 狀態報告:節點定期向控制平面報告其狀態和資源使用情況,幫助控制平面作出調度和資源分配的決策。
  • 健康檢查:節點定期檢查自身和 Pod 的健康狀況,並將結果回報給控制平面,確保集群的穩定性和高效運行。

從本質上講,kubelet 在維護 Kubernetes 叢集的運作穩定性和效率方面發揮著至關重要的作用。

Reference


上一篇
[Day 7] Container Runtimes
下一篇
[Day 9] Kubernetes Networking
系列文
關於新手會想知道Kubernetes的幾件事情30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言