Kubernetes (K8S) 基本介紹

 Kubernetes 是一個 自動化部署、擴展、管理應用程式的平台。
本文與 GDSC 計畫合作,介紹 Kubernetes (K8S) 元件及原理。

3大優點介紹
  • 同時部署多個容器到多台機器上(Deployment)。
  • 服務的乘載量有變化時,可以對容器做自動擴展(Scaling)。
  • 管理多個容器的狀態,自動偵測情況,若失效或錯誤,及重啟故障的容器 (self-healing) 。
Kubernetes 架構基礎元件介紹
  • Cluster -集群
    • 多個 Worker 與 Master 的集合在一起的的組件
  • Master Node -Master 節點
    • 運作的指揮中心
    • 管理所有其他 Node
  • Worker Node -worker 節點 
    • 運作的最小硬體單位
    • 硬體資源的提供者 
    • 可以是 實體機器 或 虛擬機
  • Pod
    • Kubernetes 當中最小的組件單元
    • 可以有一個或是多個 Container,但通常都只有一個
    • 同一個 Pod 中 Containers 共享資源及網路
Kubernetes 他管理著一系列的主機或伺服器(Worker Node),,Node 當中有各自獨立運作的Pod。
Pod 的功能要比喻的話,可以說成是 container 的集合,這些 container 將一個 Pod 的應用 build 起來。
(例如:今天有一個網頁應用服務,我這個 Pod 應用中可能會需要哪些功能的  comtainer)
這麼多的 Pod ,Node,就會需要一個 coordinator (協調員)的角色來負責,調度、負載均衡,或是失效後重建,使服務能夠穩定運行。
這個協調員就叫做 Master Node,Master Node 透過與 Worker Node 上的 API 通道進行通訊,並藉由 API 即時監控 Node 及 Pod 的資源使用狀況 (satus)。
當 Pod 失效、崩潰時,負責重建的 Pod ,我們稱之為 Replica Set (副本集),他們是重要的功臣,就像伺服器上的乖乖一樣,讓我們的應用程式能夠長久且穩定的運行。

下圖展示 Kubernetes Architecture 
上方紅色框框即為 協調工作的Master Node
Kubernetes Architecture (整個黑框稱為一個 cluster)

Master Node component


  • Controller-manager –儀表板的角色
    • 負責監視 Cluster 狀態
    • 與 API 進行通訊 負責建立、刪除、管理資源,確認狀態沒問題
  • Scheduler –資源調度
    • 根據資源規定,協調出一個最適合運行的 Node 並且讓該裡面的 Pod 運行
  • API server –資料匯流排(總線)
    • 處理傳入請求並更新狀態
    • Node 之間的溝通橋樑
  • Etcd –資料庫的角色
    • 存放 Kubernetes Cluster 的資料作為備份
    • 僅 API 可直接拜訪(access),其他都須經由 API server
Worker Node component

黃框為 Kubelet,紅框為 proxy
  • Kubelet -Node 擔任 資源管理員 的角色
    • 按照指示啟動,停止 Pods
    • 監控所有 Pods 的狀態並負責與 Master 溝通
  • Kube-proxy 擔任 通訊代理 的角色
    • Node 傳訊員(得知最新狀態)
    • 更新 Node 的 iptables (清單)
    • 將 K8s 服務代理轉發至外部網路

留言

這個網誌中的熱門文章

生成式AI將電信業推向新紀元

O-RAN O-Cloud 介紹

「強化全民數位韌性」之前?先來聊聊什麼是 O-RAN 吧!| 科普教育