Kubernetes(k8s)基礎簡介
目錄
- 一、Kubernetes概述
- (一)、Kubernetes是什么
- (二)、Kubernetes 作用
- (三)、Kubernetes的特性
- 二、Kubernetes架構與組件
- (一)、Kubernetes 架構圖
- (二)、各組件詳解
- Master組件
- Node組件
- 三、Kubernetes單節點
一、Kubernetes概述
(一)、Kubernetes是什么
-
Kubernetes是Google在2014年開源的一個容器集群管理系統,Kubernetes簡稱K8S,
-
K8S用于容器化應用程式的部署,擴展和管理,
-
K8S提供了容器編排,資源調度,彈性伸縮,部署管理,服務發現等一系列功能,
-
Kubernetes目標是讓部署容器化應用簡單高效,
-
官方網站:http://www.kubernetes.io
(二)、Kubernetes 作用
容器因為具有許多優勢而變得很流行,容器是打包和運行應用程式非常好的方式,在生產環境中會面臨一個問題:
在日常作業中,管理運行的應用程式,并確保不會停機,例如,如果一個容器發送故障,則需要啟動另一個容器,如果給系統處理,效率會較低
(三)、Kubernetes的特性
●自我修復
在節點故障時重新啟動失敗的容器,替換和重新部署,保證預期的副本數量;殺死健康檢查失敗的容器,并且在未準備好之前不會處理客戶端請求,確保線上服務不中斷,
●彈性伸縮
使用命令、UI或者基于CPU使用情況自動快速擴容和縮容應用程式實體,保證應用業務高峰并發時的高可用性;業務低峰時回收資源,以最小成本運行服務,
●自動部署和回滾
K8S采用滾動更新策略更新應用,一次更新一個Pod,而不是同時洗掉所有Pod,如果更新程序中出現問題,將回滾更改,確保升級不受影響業務,
●服務發現和負載均衡
K8S為多個容器提供一個統一訪問入口(內部IP地址和一個DNS名稱),并且負載均衡關聯的所有容器,使得用戶無需考慮容器IP問題,
●機密和配置管理
管理機密資料和應用程式配置,而不需要把敏感資料暴露在鏡像里,提高敏感資料安全性,并可以將一些常用的配置存盤在K8S中,方便應用程式使用,
●存盤編排
掛載外部存盤系統,無論是來自本地存盤,公有云(如AWS),還是網路存盤(如NFS、GusterfS、 Ceph)都作為集群資源的一部分使用,極大提高存盤使用靈活性,
●批處理
提供一次性任務,定時任務,滿足批量資料處理和分析的場景,
二、Kubernetes架構與組件
(一)、Kubernetes 架構圖

(二)、各組件詳解
Kubernetes屬于主從分布式架構,主要由Master Node和Worker Node組成,以及包括客戶端命令列工具kubectl和其它附加項,
Master組件

kube-apiserver
Kubernetes APl,集群的統一入口,各組件協調者,以RESTful API提供介面服務,所有物件資源的增刪改查和監聽操作都交給APIServer處理后再提交給Etcd存盤
kube-controller-manager
處理集群中常規后臺任務,一個資源對應一個控制器,而ControllerManager就是負責管理這些控制器的,
kube-scheduler
根據調度演算法為新創建的Pod選擇一個Node節點,可以任意部署,可以部署在同一個節點上,也可以部署在不同的節點上,
etcd存盤
分布式鍵值存盤系統,用于保存集群狀態資料,比如Pod、Service等物件資訊,
Node組件

kubelet
kubelet是Master在Node節點上的Agent,管理本機運行容器的生命周期,比如創建容器、Pod掛載資料卷、下載secretk 獲取容器和節點狀態等作業,kubelet將每個Pod轉換成一組容器,Kubelet是Kubernetes中最主要的控制器,它是Pod和Node API的主要實作者,Kubelet負責驅動容器執行層,在Kubernetes中,應用容器彼此是隔離的,并且與運行其的主機也是隔離的,這是對應用進行獨立解耦管理的關鍵點
kube-proxy
在Node節點上實作Pod網路代理,引到訪問至服務;并實作服務到Pod的路由和轉發,維護網路規則和四層負載均衡作業,
docker或rocket
容器引擎,運行容器,
三、Kubernetes單節點
單節點簡單架構圖

- 假設用戶需創建 nginx資源(網站/調度)
- 請求發送至master 首先需要經過apiserver(資源控制請求的唯一入口)
apiserver 接收到請求后首先會先記載在Etcd中 - Etcd的資料庫根據controllers manager(控制器) 查看創建的資源狀態(有無狀態化)
- 通過controllers 觸發 scheduler (調度器)
- scheduler 通過驗證演算法 驗證架構中的nodes節點,篩選出最適合創建該資源,接著分配給這個節點進行創建
- node節點中的kubelet 負責執行master給與的資源請求,根據不同指令,執行不同操作
- 對外提供服務則由kube-proxy開設對應的規則(代理)
- container 容器開始運行(runtime 生命周期開始計算)
- 外界用戶進行訪問時,需要經過kube-proxy 訪問到container
- 如果container 因故障而被銷毀了,master節點的controllers 會再次通過scheduler 資源調度通過kubelet再次創建容器,恢復基本條件限制
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/275131.html
標籤:其他
上一篇:kafka--生產者詳解
