iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 9
0
Kubernetes

Kubernetes~成為Devops工程師的必經試煉系列 第 9

DAY9 運行Kubernetes 的核心 ~ Node

前言

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 負責

  • 維護Node狀態
  • 與Cloud Provider同步Node
  • 給Node分配容器CIDR
  • 刪除帶有NoExecute taint的Node上的Pods
  • 預設情況下,kubelet在啟動時會向master註冊自己,並創建Node資源。
$ kubectl get nodes                                                                
NAME       STATUS   ROLES    AGE   VERSION
minikube   Ready    master   17d   v1.10.0

也可以使用 kubectl describe nodes 取得該 Node 的詳細資料,以下以 minikube 為例

Node 的狀態

每個Node都包括以下狀態信息

  • 位置:包括 hostname、外網IP和內網IP
  • 條件(Condition):包括 OutOfDisk、Ready、MemoryPressure和DiskPressure
  • 容量(Capacity):Node上的可用資源,包括CPU、內存和Pod總數
  • 基本資訊(Info):包括內核版本、容器引擎版本、OS類型等

參考連結

  1. Nodes
  2. 名词解释:Node
  3. [Day 6] 實際環境運行的 Kubernetes - Node & Architecture Overview

上一篇
Day 8 照我的腳本管理資源~Replication Controller
下一篇
Day 10 建立起你與 Pod的溝通橋樑 Service
系列文
Kubernetes~成為Devops工程師的必經試煉17
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言