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 目錄下所有檔案 要注意的是自己要建立乙個工作空間 如果報錯執行下面語句 部署...