k8s-Node(節點)


k8s-Node(節點)

Node(節點)是k8s集群中相對於Master而言的工作主機。Node可以是一台物理主機,也可以是一台虛擬機(VM)。
在每個Node上運行用於啟動和管理Pid的服務Kubelet,並能夠被Master管理。
在Node上運行的服務進行包括Kubelet、kube-proxy和docker daemon。

Node信息如下:
Node地址:主機的IP地址,或者Node ID。
Node運行狀態:包括Pending、Running、Terminated三種狀態。
Node Condition(條件):描述Running狀態Node的運行條件,目前只有一種條件----Ready。Ready表示Node處於健康狀態,可以接收從Master發來的創建Pod的指令。
Node系統容量:描述Node可用的系統資源,包括CPU、內存數量、最大可調度Pod數量等。
其他:Node的其他信息,包括實例的內核版本號、k8s版本號、Docker版本號、操作系統名稱等。

1. Node的管理
Node通常是物理機、虛擬機或者雲服務商提供的資源,並不是由k8s創建的。
我們說k8s創建一個Node,僅僅表示k8s在系統內部創建了一個Node對象,創建后即會對其進行一系列健康檢查,包括是否可以連通、服務是否正確啟動、是否可以創建Pod等。
如果檢查未能通過,則該Node將會在集群中被標記為不可用(Not Ready)。

2. 使用Node Controller對Node進行管理
Node Controller是k8s Master中的一個組件,用於管理Node對象。
它的兩個主要功能包括:集群范圍內的Node信息同步,以及單個Node的生命周期管理。
Node信息同步可以通過kube-controller-manager的啟動參數--node-sync-period設置同步的時間周期。

3. Node的自注冊
當Kubelet的--register-node參數被設置為true(默認值即為true)時,Kubelet會向apiserver注冊自己。這也是k8s推薦的Node管理方式。

Kubelet進行自注冊的啟動參數如下:
--apiservers=: apiserver地址;
--kubeconfig=: 登錄apiserver所需憑據/證書的目錄;
--cloud_provider=: 雲服務商地址,用於獲取自身的metadata;
--register-node=: 設置為true表示自動注冊到apiserver。

4. 手動管理Node
k8s集群管理員也可以手工創建和修改Node對象。
當需要這樣操作時,先要將Kubelet啟動參數中的--register-node參數的值設置為false。這樣,在Node上的Kubelet就不會把自己注冊到apiserver中去了。
另外,k8s提供了一種運行時加入或者隔離某些Node的方法。具體操作請參考第四章。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM