文章目錄
- 一、入門須知
- 二、Kubernetes特性
- 三、微服務部署:藍綠部署、滾動部署、灰度發布、金絲雀發布
- 四、Kubernetes集群架構與組件
- 4.1、Master組件
- 4.1.1、kube-apiserver
- 4.1.2、kube-controller-manager
- 4.1.3、kube-scheduler
- 4.1.4、etcd
- 4.2、Node組件
- 4.4、kubelet
- 4.4.1、kube-proxy
- 4.4.2、docker或rocket
- 五、Kubernetes核心概念
一、入門須知
1.熟悉Linux基礎命令
2.熟悉Docker基本管理
3.了解SSL證書作業原理
4.了解負載均衡作業原理(L4/L7)
5.了解集群,分布式概念
6.了解域名決議原理
7.了解網路協議
二、Kubernetes特性
●自我修復
在節點故障時重新啟動失敗的容器,替換和重新部署,保證預期的副本數量:殺死健康檢查失敗的容器,并且在未準備好之前不會處理客戶端請求,確保線上服務不中斷,
●彈性伸縮
使用命令、U或者基于CPU使用情況自動快速打容和縮容應用程式實體,保證應用業務高峰并發時的高可用性:業務低峰時回收資源,以最小成本運行服務,
●自動部署和回滾
K8S采用滾動更新策略更新應用,一次更新一個Pod,而不是同時洗掉所有Pod,如果更新程序中出現問題,將回滾更改,確保升級不受影響業務,
●服務發現和負載均衡
K8S為多個容器提供一個統一訪問入口 (內部IP地址和一個DNS名稱),并且負載均衡關聯的所有容器,使得用戶無需考慮容器IP問題,
●機密和配置管理
管理機密資料和應用程式配置,而不需要把敏感資料暴露在鏡像里,提高敏感資料安全性,并可以將一些常用的配置存盤在K8S中,方便應用程式使用,
●存盤編排
掛載外部存盤系統,無論是來自本地存盤,公有云(如AWS),還是網路存盤(如NFS. GlusterFS、 Ceph) 都作為集群資源的一部分使用,極大提高存盤使用靈活性,
●批處理
提供一次性任務,定時任務;滿足批量資料處理和分析的場景,
三、微服務部署:藍綠部署、滾動部署、灰度發布、金絲雀發布
在專案迭代的程序中,不可避免需要”上線”, 上線對應著部署,或者重新部署;部臀對應著修改;修改則意味著風險,
目前有很多用于部署的技術,有的簡單,有的復雜;有的得停機,有的不需要停機即可完成部署,本文的目的就是將目前常用的布署方案做一個總結,
四、Kubernetes集群架構與組件


4.1、Master組件
4.1.1、kube-apiserver
Kubernetes API,集群的統一入口, 各組件協調者,以RESTful API提供介面服務,所有物件資源的增刪改查和監聽操作都交給APIServer處理后再提交給Etcd存盤,
4.1.2、kube-controller-manager
處理集群中常規后合任務,一個資源對應一個控制器,而ControllerManager就是負責管理這些控制器的,
4.1.3、kube-scheduler
根據調度演算法為新創建的Pod選擇一個Node節點,可以任意部署可以部署在同一個節點上,也可以部署在不同的節點上,
4.1.4、etcd
分布式鍵值存盤系統,用于保存集群狀態資料,比如Pod、Service 等物件資訊,
4.2、Node組件
4.4、kubelet
kubelet是Master在Node節點上的Agent,管理本機運行容器的生命周期,比如創建容器、Pod掛載資料卷、下載secret、獲取容器和節點狀態等作業,kubelet將每個Pod轉換成一組容器,
4.4.1、kube-proxy
在Node節點上實作Pod網路代理,維護網路規則和四層負載均衡作業,
4.4.2、docker或rocket
容器引擎,運行容器,
五、Kubernetes核心概念

●Pod
最小部署單元
一組容器的集合
一個Pod中的容 器共享網路命名空間
Pod是短暫的
●Controllers
ReplicaSet :確保預期的Pod副本數量
Deployment :無狀態應用 部署
StatefulSet :有狀態應用 部署
DaemonSet :確保所有Node運行同一個Pod
Job :一次性任務
Cronjob:定時任務
更高級層次物件,部署和管理Pod
●Service
防止Pod失聯
定義一組Pod的訪 問策略
● Label: 標簽,附加到某個資源上,用于關聯物件、查詢和篩選
●Namespaces: 命名空間,將物件邏輯上隔離
●Annotations :注釋
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/275447.html
標籤:其他
