Kubernetes 基本概念和術語


Kubernetes 基本概念和術語

    Kubernetes 中大部分概念如 Node、Pod、Replication Controller、 Service 等都可以看做一種 "資源對象",幾乎所有的資源對象都可以通過 Kubernetes提供的 kubectl 工具(或者API遠程調用)執行增、刪、查、改等操作並將其保存在etcd中持久化存儲。從這個角度來看,Kubernetes其實是一個高度自動化的資源控制系統,它通過追蹤對比etcd庫里保存的"資源期望狀態"與當前環境中"實際資源狀態"的差異來實現自動控制和自動糾錯的高級功能。

    在介紹資源對象之前,我們先了解一下Kubernetes集群的兩種管理角色: Master 和 Node。

1、Master

    Kubernetes里的 Master指的是集群控制節點,每個 Kubernetes集群里需要有一個 Master節點來負責整個集群的管理和控制,基本上 Kubernetes的所有控制命令都發給它,它來負責具體的執行過程,我們后面執行的所有命令基本都是在 Master節點上運行的。 Master節點通常會占據一個獨立的服務器(高可用部署建議用3台服務器),其主要原因是它太重要了,是整個集群的“首腦”,如果宕機或者不可用,那么對集群內容器應用的管理都將失效。

Master節點上運行着以下一組關鍵進程。

  • Kubernetes API Server(kube-apiserver)提供了 Http Rest接口的關鍵服務進程,是Kubernetes里所有資源的增、刪、改、查等操作的唯一入口,也是集群控制的入口進程。
  • Kubernetes Controller Manager( kube-controller-manager)Kubernetes里所有資源對象的自動化控制中心,可以理解為資源對象的“大總管”。
  • Kubernetes Scheduler( kube-scheduler)負責資源調度(Pod調度)的進程,相當於公交公司的“調度室”。

    另外,在 Master節點上還需要啟動一個etcd服務,因為 Kubernetes里的所有資源對象的數據全部是保存在etcd中的。

2、Node

     除了 Master, Kubernetes集群中的其他機器被稱為Node節點,在較早的版本中也被稱為Minion。與 Master一樣,Node 節點可以是一台物理主機,也可以是一台虛擬機。Node節點才是 Kubernetes集群中的工作負載節點,每個Node都會被 Master分配一些工作負載( Docker容器),當某個Node宕機時,其上的工作負載會被 Master自動轉移到其他節點上去。

每個Node節點上都運行着以下一組關鍵進程。

  • kubelet負責Pod對應的容器的創建、啟停等任務,同時與 Master節點密切協作,實現集群管理的基本功能。
  • kube-proxy實現 Kubernetes Service 的通信與負載均衡機制的重要組件。
  • Docker Engine( docker)Docker引擎,負責本機的容器創建和管理工作。

    Node節點可以在運行期間動態增加到 Kubernetes集群中,前提是這個節點上已經正確安裝、配置和啟動了上述關鍵進程,在默認情況下 kubelet會向 Master注冊自己,這也是 Kubernete推薦的Node管理方式。一旦Node被納入集群管理范圍, kubelet進程就會定時向 Master節匯報自身的情報,例如操作系統、 Docker版本、機器的CPU和內存情況,以及當前有哪些Pod在運行等,這樣 Master可以獲知每個Node的資源使用情況,並實現高效均衡的資源調度策略。而某個Node超過指定時間不上報信息時,會被 Master判定為“失聯”,Node的狀態被標記不可用( Not Ready),隨后Master會觸發“工作負載大轉移”的自動流程。

    我們可以執行下述命令查看集群中有多少個Node:

[root@localhost ~]# kubectl get nodes 
NAME        STATUS    AGE
127.0.0.1   Ready     6h
[root@localhost ~]# 

    然后,通過kubectl describe node < node_name > 來查看某個Node的詳細信息。

 


免責聲明!

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



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