iT邦幫忙

2022 iThome 鐵人賽

DAY 3
2
DevOps

30天準備CKA考試系列 第 3

Day 03:Kubernetes的架構

  • 分享至 

  • xImage
  •  

Day 03:Kubernetes的架構

Kubernetes的cluster通常會有Master Node與Worker Node,Master Node至少要有一個,而Worker Node則不一定會存在。

今天要介紹的是一個集群裡面會有哪些元件?而這些元件是做什麼的?了解這些會為未來Debug與新增、修改元件有幫助。

https://ithelp.ithome.com.tw/upload/images/20220918/20141794ArpNMT1jNo.png

Master Node

主要是用來管理集群,一個集群至少會有一個Master,如果是高可用 (High Availability) 的集群則會超過,其包含四大元件:

  • API-Server:使用者下的各種指令都是由這邊開始,它會去和各個元件進行互動,來完成使用者所下達的指令。
  • Controller-Manager:負責管理集群上各種物件,像是Node、Pod等等。
  • Etcd:這是一個key-value的資料庫,用來記錄集群上各物件的各種狀態。當集群發生災難導致資料遺失,可透過還原etcd來找回資料,而這部分的做法會在未來講到。
  • Scheduler:用來安排新增的Pod,應該在哪一個節點上運作,他會根據我們設定的各種條件,安排最符合條件的節點。

https://ithelp.ithome.com.tw/upload/images/20220918/20141794idwqMiWssq.png

Worker Node

一般來說,集群在建立時,都會預設禁止安排任務在Master上,所以通常都會在Worker上執行,其主要包含三大元件:

  • Kubelet:把Worker想像成郵輪的話,那它就是船長,要負責管理Worker上的各種物件,以及負責與Master進行聯繫。
  • Kube-Proxy:用來維護與實現節點上的各種網路規則。
  • Container-Runtime:用來建立容器,以前預設都是Docker,在版本1.24以後,Kubernetes已經改掉了,安裝集群時,會自動找已安裝之Container-Runtime。如果還想使用Docker的話,則必須使用cri-dockerd。

當我們使用kubectl建立一個Pod時,會發生什麼事?

kubectl是K8S的CLI-tool。我的理解是kubectl會先通過API-Server,然後在etcd紀錄,再去Scheduler判斷這個Pod最適合在哪一個節點建立,然後由Controller-Manager來管理。
離開Master後,會透過Kube-Proxy來呼叫Kubelet,而我們的船長大人Kubelet會去吩咐Container-Runtime完成這件事。

參考資料

https://kubernetes.io/zh-cn/docs/concepts/overview/components/

https://www.huweihuang.com/tags/#Kubernetes


上一篇
Day 02:CKA簡介
下一篇
Day 04:Pods
系列文
30天準備CKA考試30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
孤獨一隻雞
iT邦研究生 4 級 ‧ 2022-09-18 13:50:49

許願Golang教學

Calvin iT邦新手 3 級 ‧ 2022-09-19 18:06:15 檢舉

我認識一個Golang史詩級的大神

雷N iT邦研究生 1 級 ‧ 2022-09-27 09:23:27 檢舉

許願Golang教學

Calvin iT邦新手 3 級 ‧ 2022-09-27 23:15:33 檢舉

再......再一年

我要留言

立即登入留言