1.kubelet參數解析:https://blog.csdn.net/qq_34857250/article/details/84995381node
2.如何在github中查找k8s代碼關鍵字?linux
如今我想查找k8s源碼中,關於kubelet參數pod-eviction-timeout的默認值是多少git
https://github.com/kubernetes/kubernetesgithub
先進入github對應的repository中,再Search關鍵字數據庫
3.計算節點頻繁發生OOM,linux中發生oom時,oom_killer如何決定首先殺掉哪一個進程:https://www.vpsee.com/2013/10/how-to-configure-the-linux-oom-killer/設計模式
爲了防止它殺死關鍵的應用程序,例如數據庫實例,能夠手動調整分數。這能夠經過/proc/[pid]/oom_score_adj(對於2.6.29以前的內核,使用/proc/[pid]/oom_adj)實現。oom_score_adj接受的值範圍是-1000到1000,(oom_adj接受的值範圍是-17到15)ide
在k8s的qos(quality of service)中,三個qos級別正是對應三個oom_score-adj值,經過調整該值來控制evict驅逐策略和system oom_killer的優先級。.net
guaranteed級別的pod的oom-score-adj= -998,而計算節點kubelet服務的oom-score-adi= -999設計
k8s doc: https://kubernetes.io/docs/tasks/administer-cluster/out-of-resource/3d
If the node experiences a system OOM (out of memory) event prior to the kubelet
being able to reclaim memory, the node depends on the oom_killer to respond.
The kubelet
sets a oom_score_adj
value for each container based on the quality of service for the Pod.
Quality of Service | oom_score_adj |
---|---|
Guaranteed |
-998 |
BestEffort |
1000 |
Burstable |
min(max(2, 1000 - (1000 * memoryRequestBytes) / machineMemoryCapacityBytes), 999),該值在2~999 |
4.容器設計模式:Sidecar
什麼是 Sidecar?在 Pod 裏面,能夠定義一些專門的容器,來執行主業務容器所須要的一些輔助工做,好比Init Container,它就是一個 Sidecar,它能夠將文件拷貝到共享目錄裏面,以便被同pod中的業務容器用起來。
優點就是在於其實將輔助功能從個人業務容器解耦了,因此我就可以獨立發佈 Sidecar 容器,而且更重要的是這個能力是能夠重用的,即一樣的一個監控 Sidecar 或者日誌 Sidecar,能夠被全公司的人共用的。這就是設計模式的一個威力。