k8s排程 原理 K8s排程原理和Pod生命週期

2021-10-13 10:53:21 字數 1184 閱讀 3412

1、k8s排程原理

pod只存在某乙個物理節點上,可以執行多個container

2、pod的生命週期

暫停pod,可以暫停deployment

kubectl get depolyment

kubectl scale  --replicas=0  deployment/***

刪除pod。刪除之後,狀態變成succeed

kubectl delete pod  podname

3、資源限制

資源標籤  kubectl  label

資源限制: nodeselector

檢視有哪些label

kubectl  get node   --show-labels

打標籤: 給node2打上標籤

kubectl labels  node node2  disktype=ssd

修改***.yaml檔案

這樣pod就會在node2節點上。

4、排程約束

pod標籤: metadata:labels:***:yyyy

排程約束:spec:selector:***:yyyy

//給pod打標籤,然去找這個pod

排程約束: spec:podselector:matchlabels:***:yyyy

5、健康檢查

livenessprobe(容器級別)  //查詢容器出問題,嘗試進行重啟。在高可用場景下使用。

readinessprobe(容器級別) //查詢容器出問題,停止容器對外的服務。適用於滾動公升級、新應用上線,這時候可能**有問題。

restartpolicy(pod級別) ,當這個pod出現問題時,是restart,還是非restart。

例項1:

如下圖所示,對容器readiness-httpget, 設定健康檢查readinessprobe, 使用http的方式對index.html 進行查詢。

如果正常拿到,則認為容器是正常啟動的。inititaldelayseconds表示停止多少秒再進行檢查檢查。

peripdseconds: 表示查詢成功後,每隔多少秒進行反覆查詢

如果index.html 獲取不到,則認為容器異常,立刻停止容器對外的訪問,由其它pod提供服務。

例項2啟動過程中,傳遞乙個命令。該命令建立乙個檔案。每隔3秒檢查這個檔案是否存在。檢查到沒有這個檔案,則進行容器重啟。

K8s排程演算法註冊流程

我的k8s集群是二進位制搭建的,因此我在二進位制檔案中新增我的排程演算法,並且在相關檔案中註冊我的演算法。在kubernetes server二進位制檔案中 kubernetes pkg scheduler下有algorithm 和 algorithmprovider兩個模組 algorithm模組...

k8s 指定排程節點

pod.spec.nodename將 pod 直接排程到指定的 node 節點上,會跳過 scheduler 的排程策略,該匹配規則是強制匹配 我的節點 root master scheduler kubectl get node name status roles age version mast...

K8s部署prometheus監控K8s細節

prometheus 一些配置檔案可以再github上找到。部署 root kube prometheus manifests 目錄下所有檔案 部署 root kube prometheus manifests setup 目錄下所有檔案 要注意的是自己要建立乙個工作空間 如果報錯執行下面語句 部署...