创build一个“尽力而为”的pod,其得分不是1000,而是-999
创build一个部署如下:
apiVersion: extensions/v1beta1 kind: Deployment metadata: labels: owt: hello pdl: com app: world idc: xg add: parameters-48 name: parameters-48 spec: replicas: 2 template: metadata: labels: name: parameters-48 spec: containers: - name: mofang-web image: registry.cc.com/online/mofang:stable nodeSelector: node:cc
login到节点find了容器的PID,然后检查其OOM分数:
cat /proc/21606/oom_adj -16 cat /proc/21606/oom_score 0 cat /proc/21606/oom_score_adj -999
根据用户指南页面: https : //github.com/kubernetes/community/blob/master/contributors/design-proposals/resource-qos.md ,此窗格应该是“尽力而为”窗格,但其OOM_SCORE_ADJ不是1000但是-999。 顺便说一句,999的手段不会被杀害。
在这个问题之后 ,可能值得总结一下如何为一个容器find正确的容器pid / proc:
运行一些应用程序
$ kubectl run bootcamp --image=docker.io/jocatalin/kubernetes-bootcamp:v1
findcontainerID:
$ kubectl get pods --output=jsonpath='{.items[*].status.containerStatuses[*].containerID}' docker://59f127d641cef9475309cbf4b5fc2e4a65f3e52a0e08112dccbc2c144a0e366f
find相关的主机/节点:
$ kubectl get pods --output=jsonpath='{.items[*].status.hostIP}' 192.168.99.100
两者都可以find:
$ kubectl describe pod <podID>
通过SSH连接到节点,然后运行:
$ docker inspect 59f127d641cef9475309cbf4b5fc2e4a65f3e52a0e08112dccbc2c144a0e366f | grep Pid\": "Pid": 18052, $ cat /proc/18052/oom_* 15 1000 1000
希望这可以帮助别人