《二》Kubernetes概述

Kubernetes是什麼

  • Kubernetes是Google在2014年開源的一個容器集羣管理系統,Kubernetes簡稱K8S。
  • K8S用於容器化應用程序的部署,擴展和管理。
  • K8S提供了容器編排,資源調度,彈性伸縮,部署管理,服務發現等一系列功能。
  • Kubernetes目標是讓部署容器化應用簡單高效。
  • 官網:http://www.kubernetes.io/

Kubernetes特性

自我修復
在節點故障時從新啓動失敗的容器,替換和從新部署,保證預期的副本數量;殺死健康檢查失敗的容器,而且在未準備好以前不會處理客戶端請求,確保線上服務不中斷。node

彈性伸縮
使用命令、UI或者基於CPU使用狀況自動快速擴容和縮容應用程序實例,保證應用業務高峯併發時的高可用性;業務低峯時回收資源,以最小成本運行服務。算法

自動部署和回滾
K8S採用滾動更新策略更新應用,一次更新一個Pod,而不是同時刪除全部Pod,若是更新過程當中出現問題,將回滾更改,確保升級不受影響業務。docker

服務發現和負載均衡
K8S爲多個容器提供一個統一訪問入口(內部IP地址和一個DNS名稱),而且負載均衡關聯的全部容器,使得用戶無需考慮容器IP問題。api

機密和配置管理
管理機密數據和應用程序配置,而不須要把敏感數據暴露在鏡像裏,提升敏感數據安全性。並能夠將一些經常使用的配置存儲在K8S中,方便應用程序使用。安全

存儲編排
掛載外部存儲系統,不管是來自本地存儲,公有云(如AWS),仍是網絡存儲(如NFS、GlusterFS、Ceph)都做爲集羣資源的一部分使用,極大提升存儲使用靈活性。網絡

批處理
提供一次性任務,定時任務;知足批量數據處理和分析的場景。架構

Kubernetes集羣架構與組件

如圖:
《二》Kubernetes概述併發

《二》Kubernetes概述

說明:
k8s的總體架構主要分爲兩個部分: master(控制節點)和node(計算節點)
Master組件:
kube-apiserver
Kubernetes API,集羣的統一入口,各組件協調者,以RESTful API提供接口
服務,全部對象資源的增刪改查和監聽操做都交給APIServer處理後再提交給
Etcd存儲。負載均衡

kube-controller-manager
處理集羣中常規後臺任務,一個資源對應一個控制器,而ControllerManager
就是負責管理這些控制器的。分佈式

kube-scheduler
根據調度算法爲新建立的Pod選擇一個Node節點,能夠任意部署,能夠部署在
同一個節點上,也能夠部署在不一樣的節點上。

etcd
分佈式鍵值存儲系統。用於保存集羣狀態數據,好比Pod、Service等對象信息。

Node組件:
kubelet
kubelet是Master在Node節點上的Agent,管理本機運行容器的生命週期,好比創
建容器、Pod掛載數據卷、下載secret、獲取容器和節點狀態等工做。kubelet將每
個Pod轉換成一組容器。

kube-proxy
在Node節點上實現Pod網絡代理,維護網絡規則和四層負載均衡工做。

docker或rocket
容器引擎,運行容器。

Kubernetes核心概念

《二》Kubernetes概述

Pod
• 最小部署單元
• 一組容器的集合
• 一個Pod中的容器共享網絡命名空間
• Pod是短暫的

Controllers
• ReplicaSet : 確保預期的Pod副本數量
• Deployment : 無狀態應用部署
• StatefulSet : 有狀態應用部署
• DaemonSet : 確保全部Node運行同一個Pod
• Job : 一次性任務
• Cronjob : 定時任務
更高級層次對象,部署和管理Pod

Service
• 防止Pod失聯
• 定義一組Pod的訪問策略

Label : 標籤,附加到某個資源上,用於關聯對象、查詢和篩選Namespaces : 命名空間,將對象邏輯上隔離Annotations :註釋

相關文章
相關標籤/搜索