k8s官方文檔:
https://kubernetes.io/zh/docs/home/
前提
掌握容器技術:Docker,Containerd等
K8S優勢
- 使用簡單,少量人/小團隊可以輕松維護大型分布式系統
- 全面擁抱微服務架構,快速迭代,快速部署
- 移植性高,隨時可以將系統搬遷到公有雲
- 彈性擴容,輕松應對突發流量
- K8S超強的橫擴能力,增加自身競爭力
K8S資源
- Pod:k8s的基本資源,由一個或者多個容器組成(sidecar)
- Label:附加到某個資源,方便管理與查詢,可進行資源的綁定
- Deployment:最常見的控制器,用於管理Pod(StatefulSet,DaemonSet,Job,CronJob)
- Service:為Pod提供負載,提供對外訪問
- Namespace:隔離資源,權限控制
K8S的核心組件與工作原理
Master節點
- apiserver:集群的管理者與協調者,提供rest api可以對資源進行管理
- etcd:存儲集群數據
- kube-controller-manager:管理集群中的控制器。當發現某種資源的狀態發生變化時,Controller會嘗試將其調整到期望狀態。比如NodeController,發現某個Node宕機,就會及時發現故障,並啟動修復
- kube-scheduler:根據算法,為pod選擇一個合適的node。起到承上起下的作用,承上接受ConrollerManager創建的新Pod的任務,為其找到對應的Node,啟下指的是跟通知Node的kubelet,讓其接管Pod的創建工作
Node節點
- kubelet:管理Node上的Pod,創建,刪除等
- kube-proxy:Pod的網絡代理,設置網絡轉發規則
