帶你瞭解Kubernetes 系統架構

帶你瞭解Kubernetes 系統架構


什麼是 Kubernetes

Kubernetes 是 Google 開源的容器集群管理系統,其提供應用部署、維護、 擴展機制等功能,利用 Kubernetes 能方便地管理跨機器運行容器化的應用,其主要功能如下:

1、使用 Docker 對應用程序包裝 (package)、實例化 (instantiate)、運行 (run)。

2、 以集群的方式運行、管理跨機器的容器。

3、解決 Docker 跨機器容器之間的通訊問題。

4、Kubernetes 的自我修復機制使得容器集群總是運行在用戶期望的狀態。

當前 Kubernetes 支持 GCE、vShpere、CoreOS、OpenShift、Azure 等平臺,除此之外,也可以直接運行在物理機上。

帶你瞭解Kubernetes 系統架構


Kubernetes 特點

  • 可移植: 支持公有云,私有云,混合雲,多重雲(multi-cloud)
  • 可擴展: 模塊化, 插件化, 可掛載, 可組合
  • 自動化: 自動部署,自動重啟,自動複製,自動伸縮/擴展
帶你瞭解Kubernetes 系統架構


Kubernetes 架構

Kubernetes借鑑了Borg的設計理念,Kubernetes的整體架構跟Borg非常像,如下圖所示:

帶你瞭解Kubernetes 系統架構

Kubernetes主要由以下幾個核心組件組成:

  • etcd保存了整個集群的狀態;
  • apiserver提供了資源操作的唯一入口,並提供認證、授權、訪問控制、API註冊和發現等機制;
  • controller manager負責維護集群的狀態,比如故障檢測、自動擴展、滾動更新等;
  • scheduler負責資源的調度,按照預定的調度策略將Pod調度到相應的機器上;
  • kubelet負責維護容器的生命週期,同時也負責Volume(CVI)和網絡(CNI)的管理;
  • Container runtime負責鏡像管理以及Pod和容器的真正運行(CRI);
  • kube-proxy負責為Service提供cluster內部的服務發現和負載均衡;
帶你瞭解Kubernetes 系統架構


使用kubectl實現應用伸縮

帶你瞭解Kubernetes 系統架構

帶你瞭解Kubernetes 系統架構


使用Deployment擴展能確保在新的可用Node資源上創建Pods,縮小比例將減少Pod的數量到理想狀態。如果伸縮需求是0,將會終止Deployment指定的所有Pod;

運行應用將要考慮一些情況,需要將流量分配給所有實例。Service集成了負載均衡器,可以將網絡流量分配到Deployment暴露的所有Pod中。Service將使用Endpoints持續監控運行的Pod,用來確保僅將流量分配到可用的Pod。


分享到:


相關文章: