📢 [文章新增公告] 新增 為 Kubernetes 而生的 GitOps 工具 - ArgoCD 介紹與說明統一機密、身份與加密的管理系統 - HashiCorp Vault 介紹與說明 文章,歡迎點擊前方連結前往查看 💙
目前 Blog 頁籤支援折疊側邊欄功能,在閱讀文章會更方便,歡迎多加利用 💪
用大型社區來介紹 Kubernetes 元件

用大型社區來介紹 Kubernetes 元件

發布於 2022-06-02 · 最後更新於 2025-07-06

前陣子對於 Kubernetes 部分內容還不是很清楚,在網路上閒逛的時候發現一篇很有趣的文章,標題是 『 給行銷跟業務的 Kubernetes 101 中翻中介紹 』,點進去後才發現,作者 Phil Huang 將 Kubernetes 元件的內容用大型住戶社區來介紹,讓我更清楚每一個元件的意思,以下我會用我理解的以及作者的思考邏輯來去寫這篇筆記,再次感謝作者文章 😍


Kubernetes 元件白話文


大型社區示意圖 (圖片來源:蘋果地產 )

大型社區示意圖 (圖片來源:蘋果地產)

可以看到上面這張圖片,他是一個很典型的大型社區,我們這次的 Kubernetes 元件白話文,會以大型社區來當作現實中的元件,以社區的例子來說明 Kubernetes 。


當然,我們之前的文章也有介紹過 Kubernetes,有興趣可以先飛回去看看!

Kubernetes (K8s) 介紹 - 基本

Kubernetes (K8s) 介紹 - 進階 (Service、Ingress、StatefulSet、Deployment、ReplicaSet、ConfigMap)

Kubernetes (K8s) 搭配 EFK 實作 (Deployment、StatefulSet、DaemonSet)

我們先想像一下我們建立 Kubernetes 完整的叢集服務,就好比是建立一個大型的社區,所以以下會將名詞與社區來做連結,那...開始囉!


Kubernetes 元件

  • Kubernetes:建立這個大型社區的藍圖,規劃的社區內的大大小小的設計。
  • 虛擬化平台、公有雲平台、實體機器:就是我們要蓋社區的地皮。(虛擬化平台:vSphere/Proxmox/VMware、公有雲平台:AWS/GCP/Azuer、實體機器:就是實體機器 😂)
  • OS 作業系統:每棟大樓的骨架和地基。
  • Master Node:住戶管委會所居住大樓 (真好自己有所屬的大樓XD),為了保證他們不會吵架,所以建議最少需要三棟。
  • Etcd Cluster:管委會的人,一樣為了怕一黨獨大(?,所以建議最少需要有三位管委,且互相投票選出一個頭頭。
  • Worker Node:就是偶們住戶所居住的大樓。
  • Pod:住戶,所以我們一棟 Worker Node 大樓,可以有很多 Pod 住戶。
  • Pod IP:每個住戶的門牌,既然是門牌,代表他也不會重複。
  • Container Registry:包裹集中的存放中心。
  • Container Images:還沒有被打開的包裹。
  • Containers:已經被打開且正在使用的包裹,那每個 Pod 住戶裡面,可以有一個或很多個以上的 Containers 包裹。
  • Service:社區裡面的社團,例如:羽球社、麻將社等等,可以集合大家的地方。
  • Service Mesh:社團的聯絡名冊,會記住誰是哪一個社團的成員。
  • Ingress Controller:社區的大門,可以指定讓社區成員都固定走同一個或是多個門的入口管控。
  • Egress Controller:社區的後門,可以指定讓社區成員都固定走同一個或是多個門的出口管控。
  • Internal DNS / Service Discovery:大樓住戶的電話簿。
  • External DNS:指向各大樓的路標。
  • OCI (Open Container Initiative):制定大樓鋼筋水泥或是行李箱標準的組織。
  • CRI (Container Runtime Interface):大樓鋼筋水泥的廠商。
  • CNI (Container Network Interface):大樓水電系統的廠商。
  • CSI (Container Storage Interface):大樓空間規劃的廠商。
  • Bastion:專門維護社區的工程車。

常用套件

  • Promethus:社區整體的監控中心 (Meterics),一堆攝影機的管理室 XD
  • Grafana:監控中心裡面大型的 LED 儀表板。
  • Elaticsearch:社區整體的情資中心 (Logging),這應該是一群愛八卦的大媽吧 😏
  • Kibana:情資中心裡面大型的 LED 訊息版。

常見問題

作者也有整理了一些常見的問題,我把它整理一下挑選出幾個我自己一開始也會有疑問的問題,我們一起來看看吧!一樣我會用我所理解的意思來介紹 ~

Q1:為什麼 Kubernetes 的最小單位是 Pod 這個要怎麼理解?

Ans : 試想一下,難道管委會會管你的包裹裡面內容物放什麼嗎 XD


Q2:Docker 在 Kubernetes 的角色是什麼?

Ans : 是眾多的 CRI (Container Runtime Interface) 選擇之一,也就是大樓的鋼筋水泥廠商有很多間,有一間叫做 Docker 的廠商特別有名。


Q3:呈上,那 CRI/CNI/CSI 是不是也可以替換成其他的廠商?

Ans : 當然可以,現在可以看到越來越多廠商都開始支援 Kubernetes 就是因為這個原因,因為一般情況下,Kubernetes 並不會特別限定 大樓鋼筋水泥廠商大樓水電系統廠商大樓空間規劃廠商,只要有符合特定的標準即可,但要留意 Kubernetes 的版號也會受到這三個介面支援發行的版號所影響,要留意相容性的問題!


Q4:整個住戶社區最重要的角色是什麼?

Ans : 那三棟管委會大樓,和裡面的的三位委員,三位掛掉一位還可以維持正常運作,掛掉兩位會維持唯獨運作。


Q5:Kubernetes、VM、Container 的差異性

Ans : 我們可以建立好一個大樓(VM),隨意放置一個或是多個包裹(Containers),必須手動管理這些包裹,如果資源不足或是這棟大樓倒了,就沒有辦法自動轉移這些包裹的內容了。

但如果是 Kubernetes,我們就可以建立多個大樓(VM),透過 Kubernetes 所規定的放置計畫 (例如:Deployment、DaemonSet),我們將可以統一調度這些 Pod,當某棟大樓資源不夠或是這棟大樓倒時,可以根據 Kubernetes 規則來進行搬遷或是擴充大樓。


Q6:為什麼有人會把 Container 跟 Pod 混在一起講

Ans : 因為大部分的情況下,都是一個住戶(Pod)放一個包裹(Container),,才會導致這樣的誤會。但實際上,一個住戶(Pod)是可以放一個或多個包裹在裡面的!


Q7:什麼是 Node Scaling ?

Ans : 可以把它理解成,當住戶太多時,Kubernetes 會自動或手動興建大樓,來把多出來的用戶給塞進去。


Q8:在 Q5 有提到放置計畫是什麼意思?

Ans : 只要你有需要將包裹放在社區內,都必須提出部署計畫(Deployment) 給管委會審核,只要通過審核,他們依照你事先聲明的計畫,盡最大可能性來放置包裹。

所以當我們有任何變更計畫時,都需要重新提交一份新的部署計畫給管委會重新審核和接受。


參考資料

給行銷跟業務的 Kubernetes 101 中翻中介紹