k8s學習筆記二

在這裏插入圖片描述

基本概念

k8s集羣主要包含三個平面:控制層面,計算層面和數據層面。

控制層面是整個集羣的大腦,負責控制、調度集羣資源,包括kube-apiserver、kube-controller-manager、kube-scheduler三個組件;
計算層面負責運行工作負載,是控制平面調度的對象,包括kubelet、kube-proxy組件;
數據層面用來存儲整個集羣持久化數據,比如我們提交的配置文件以及集羣狀態信息等,指etcd集羣。

cluster:kubernetes集羣本身;
namespace:k8s集羣中的命名空間,用於隔離部署在集羣中的應用,方便按團隊和項目進行授權;
service :用於實現服務發現功能,便於部署到集羣內的服務能夠互相訪問;
node:組成k8s集羣的物理節點,包括控制節點和計算節點;
pod:k8s的最小調度單位,用於同步調度多個應用容器;
kubectl:通常通過kubectl這個命令行客戶端來控制Kubernetes集羣。

configmap:用來聲明應用的配置文件,在容器啓動前掛載到應用容器內供應用使用;
secert: 和configmap類似,是加密的,主要應對敏感配置文件需要加密的需求;
ReplicaSet:用於控制pod的副本數,動態擴容;
DeployMent:用於控制ReplicaSet,微應用提供滾動升級的能力;
ingress:用於對外暴露部署在k8s中的服務;
volume:k8s集羣中的存儲卷,跟docker的存儲卷類似(Docker的存儲卷作用範圍是一個容器,而k8s的存儲卷作用範圍是一個頗多,每個pod中聲明的存儲卷由pod中所有容器共享);
Service Account: 服務賬戶爲計算機進程和k8s集羣中運行的pod賬戶提供標識;
ABAC:基於角色的訪問控制,主要解決誰能訪問哪些api的問題。

基礎組件

Kubernetes-api-server: 對外暴露Kubernetes API,所有對集羣的操作都是通過這組API完成,包括客戶端下單應用編排命令給Kubernetes集羣;kubelet上報集羣資源使用情況;以及各個組件之間的交互都是通過這套API完成的。

Kubernetes-controller-manager:負責整個Kubernetes集羣的管理工作,保證集羣中各種資源處於期望狀態。當監控到集羣中某個資源狀態與期望狀態不符時,controller-manager會觸發調度操作。

Kubernetes-scheduler:調度器負責Kubernetes集羣的具體調度工作,接收來自controller-manager觸發的調度請求,然後根據請求規格,調度約束,整體資源情況進行調度計算,最後將任務發送到目標節點有kubelet組件執行。

etcd:一個搞笑的kv存儲系統,在k8s中用於存儲持久化數據;

kubelet:是node節點上的核心組件,負責與docker daemont進行交互運行docker容器;配置網絡和數據卷;監控並上傳節點使用情況以供調度使用;

kube-proxy:主要負責service endpoint到pod實例的請求轉發及負載均衡的規則管理。

參考博客:https://github.com/zhukunJ/Kubernetes/blob/master

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章