1. 程式人生 > >Kubernetes基本概念

Kubernetes基本概念

inf uid 概念 調整 abi set replica 功能 標記

Kubernete模型中的核心概念。這些核心概念反映了Kubernetes設計過程中對應用容器集群的認知模型。

集群組件,從架構上看,Kubernetes集群(Cluster)也采用了典型的“主-從”架構。一個集群主要由管理組件(Master)和工作節點(Node)組件構成。

Kubernetes集群的主要任務始終圍繞著應用的生命周期。通過將不同資源進行不同層次的抽象,Kubernetes提供了靈活可靠的生命周期管理。

資源的核心抽象主要包括:

  1. 容器組(Pod):由位於同一節點上若幹容器組成,彼此共享網絡命名空間和存儲卷(Volume)。Pod是Kubernetes中進行管理的最小資源單位,是最為基礎的概念。跟容器類似,Pod是短暫的,隨時可變的;
  2. 服務(Service):若幹(往往是同類型的)Pod形成的對外提供某個功能的抽象,不隨Pod改變而變化,帶有唯一固定的訪問路徑,如IP地址或者域名。
  3. 復制控制器(Replication Controller):負責啟動Pod,並維護其健康運行的狀態。是用戶管理Pod的句柄。
  4. 部署(Deployment):創建Pod,並可根據參數自動創建管理Pod的復制控制器,並且支持升級。1.2.0版本引入提供比復制控制器更方便的操作;
  5. 橫向Pod擴展器(Horizontal Pod Autoscaler,HPA):類似雲裏面的自動擴展組,根據Pod的使用率(典型如CPU)自動調整一個部署裏面Pod的個數,保障服務可用性;

技術分享圖片

還有一些管理資源相關的輔助概念,主要包括:

  1. 註解(Annotation):鍵值對,可以存放大量任意數據,一般用來添加對資源對象的詳細說明,可供其他工具處理。
  2. 標簽(Label):鍵值對,可以標記到資源對象上,用來對資源進行分類和篩選;
  3. 名字(Name):用戶提供給資源的別名,同類資源不能重名;
  4. 命名空間(Namespace):這裏是指資源的空間,避免不同租戶的資源發生命名沖突,另外可以進行資源限額;
  5. 持久卷(PersistentVolume):類似於Docker中數據卷的概念,就是一個數據目錄,Pod對其有訪問權限。
  6. 秘密數據(Secret):存放敏感數據,例如用戶認證的口令等;
  7. 選擇器(Selector):基於標簽概念的一個正則表達式,可通過標簽來篩選出一組資源;
  8. Daemon集(DaemonSet):確保節點上肯定運行某個Pod,一般用來采集日誌和監控節點;
  9. 任務(Job):確保給定數目的Pod正常退出(完成了任務);
  10. 入口資源(Ingress Resource):用來提供七層代理服務;
  11. 資源限額(Resource Quotas):用來限制某個命名空間下對資源的使用,開始逐漸提供多租戶支持;
  12. 安全上下文(Security Context):應用到容器上的系統安全配置,包括uid、gid、capabilities、SELinux角色等;
  13. 服務賬號(Service Accounts):操作資源的用戶賬號。

Kubernetes基本概念