使用 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 資訊如下:
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 即可。