iT邦幫忙

2021 iThome 鐵人賽

DAY 29
0
DevOps

container & k8s 奏鳴曲系列 第 29

[13th][Day29] node

使用 k8s 的過程中,node , pod RC , service 等概念都可以看作是一種資源,透過 kubectl 或 api 呼叫來操作

今天來聊聊 node

node ,節點 ,在 k8s cluster 中,node 可以是一台實體機器,也能是一台 VM(virtual machine)。

每個 node 上執行用來啟動 & 管理 pod 的服務:Kubelet,被 Master 管理
node 上執行的服務包含 Kubelete , kube-proxy , docker-daemon

node 資訊如下:

  1. node address:主機的 IP位址或者 node ID
  2. node 執行狀態:有三種 ~~ pending、running、terminated
  3. node condition(條件):running 狀態 node 的執行條件,只有一種 - ready ,ready 表示 node 為健康狀態,可以接收由 k8s master 發送的建立 pod 的指令
  4. node 系統容量:node 可用的系統資源, cpu , memory , 最大可調用的 pod 數
  5. 其他:node 的其他資訊,比方說 node version ,kubenetes version , docker version , 作業系統 ... 等等

node 的管理
node 通常是實體機、VM、 或者 cloud provider 所提供的資源,並非由 k8s 所建。k8s 在系統內起一個 node 後,會對其進行一系列的檢查
是否可以連線?
服務是否正確啟動?
是否可以建立 pod?
如果檢查不通過,則該 node 會被標記為 not ready。

使用 node controller 對 node 進行管理,node controller 是 k8s master中的一個元件,主要功能包括:cluseter 內 node 資訊同步,單個 node 的生命週期管理。

node 資訊同步可以透過 kube-controller-manager 的參數 --node-sync-period 來設定同步的時間頻率。

node 的自動註冊
當 kubelet 的 -register-node 參數被設定為 true 時,kubelete 會向 apiserver 註冊。

kubelete 進行自動註冊的啟動參數如下:
--apiservers= : apiserver address
--kubeconfig= : 登錄 apiserver 所需憑證的目錄
--cloud_provider= : cloud provider address,用於取得自身的 metadata
--register-node= : 設定為 true 表示會自動註冊到 apiserver

除了自動管理 node 之外,cluster admin 也可以手動建立並修改 node object ,只要將 --register-node 設置為 false 即可。


上一篇
[13th][Day28] why k8s
下一篇
[13th][Day30] 結語
系列文
container & k8s 奏鳴曲30

尚未有邦友留言

立即登入留言