iT邦幫忙

2024 iThome 鐵人賽

DAY 6
0
Kubernetes

關於新手會想知道Kubernetes的幾件事情系列 第 6

[Day 6] Understanding Kubernetes Architecture

  • 分享至 

  • xImage
  •  

Kubernetes 是一個 client-server 的架構,主要有

  1. Master nodes
  2. Worker nodes

以下介紹 Kubernetes 的組成

Kubernetes Components

a

nodes

在每個 Kubernetes cluster 中,至少要有一個 worker node,它們是用來部署容器的工作節點的集合,也是實際工作發生的地方。

每個節點可以容納多個 pod,而每個 pod 內運行著 container。

c

每個節點中包含以下三個部份組成:

  1. Container Runtime:這是運行容器的軟體,例如 Docker 或者 containerd。它負責拉取容器鏡像並運行容器。

  2. kubelet:這是節點上的主要代理程式,負責監控 pod 和 container 的狀態,並確保它們按照 Kubernetes 控制平面發出的指令運行。kubelet 會定期向 control plane 報告節點和 pod 的狀態。

  3. kube-proxy:這是一個網路代理,負責實現 Kubernetes 服務的網絡功能。它處理網絡規則以確保 pod 之間的網絡通信和負載均衡。

這些元件同時工作,確保 Kubernetes cluster 中的應用程序能夠可靠地運行和管理。

control plane

在 Kubernetes 控制平面(Control Plane)中,有許多工具用來管理整個 cluster 的運作。

主要的工具包括:

  1. Kube-API Server:這是 Kubernetes control plane 的核心元件,負責處理所有 REST API 請求,協調所有 Kubernetes 元件之間的互動。

  2. Kube-Scheduler:這個元件負責將新建立的 pod 分配到合適的 node 上運行。它根據資源需求、策略和當前的負載狀況進行調度。

  3. Kube-Controller-Manager:它管理 Kubernetes 控制器,這些控制器負責執行 cluster 中的各種自動化任務,例如節點管理、複製控制和終止不健康的 pod。

  4. etcd:這是一個分佈式鍵值儲存,儲存了 cluster 的所有數據和配置資訊。etcd 是 Kubernetes 的可靠數據儲存層,用於實現高可用性和數據一致性。

  5. Cloud-Controller-Manger: 當 Kubernetes 要與雲端平台結合時,cloud controller manager 就是 Kubernetes 跟雲端平台 API 溝通的橋樑。

Kubernetes Cluster Addon Components

與先前介紹的核心元件不同,以下的附加元件是用來確保系統整體運行的完整性:

CoreDNS

CoreDNS 是 Kubernetes 中的一個 DNS 服務器,用於在 cluster 內提供名稱解析服務。它可以將服務名稱解析為相應的 IP 地址,使 pod 之間的溝通更加順暢。

Web UI

Kubernetes 提供了一個基於網頁的用戶界面(Web UI),也稱為 Dashboard,用於視覺化管理 Kubernetes cluster。通過這個界面,管理員可以查看 cluster 狀態、部署應用程序、管理資源和監控 cluster 性能。

Container Resource Monitoring

容器資源監控是指監控 Kubernetes cluster 中各個容器的資源使用情況,例如 CPU、內存、磁盤和網路等。

Cluster-level Logging

Cluster-level Logging 是指集中收集和管理 Kubernetes cluster 中所有應用程序和系統組件的日誌。這些日誌可以用於故障排除和性能分析。

Network Plugins

Network Plugins 是用來實現和擴展 Kubernetes 網路功能的元件。

Reference


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

尚未有邦友留言

立即登入留言