Node是Pod真正運行的主機,可以是物理機或是虛擬機。為了管理Pod,每個Node節點上至少要運行container runtime(比如 docker 或者 rocket )、 kubelet 和kube-proxy 服務.
不像其他的資源(如Pod和Namespace),Node本質上不是Kubernetes來創建的,Kubernetes只是管理Node上的資源。雖然可以通過Manifest創建一個Node對象,但Kubernetes也只是去檢查是否真的是有這麼一個Node,如果檢查失敗,也不會往上調度Pod。
{
"kind": "Node",
"apiVersion": "v1",
"metadata": {
"name": "10.240.79.157",
"labels": {
"name": "my-first-k8s-node"
}
}
}
這個檢查是由 Node Controller 來完成的。 Node Controller 負責
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
minikube Ready master 17d v1.10.0
也可以使用 kubectl describe nodes 取得該 Node 的詳細資料,以下以 minikube 為例
每個Node都包括以下狀態信息