天天看點

k8s學習筆記二

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

k8s

繼續閱讀