簡體   English   中英

創建一個“盡力而為”的 pod,它的 oom 分數不是 1000,而是 -999

[英]create a "Best-effort" pod and its oom score not 1000 but -999

創建一個部署如下:

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

登錄節點找到容器的pid,然后查看它的oom score:

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 ,這個 pod 應該是一個“盡力而為”的 pod,但它的 OOM_SCORE_ADJ 不是 1000但是-999。 順便說一句 -999 意味着不會被 oom 殺死。

在此問題之后,總結如何為 pod 找到正確的容器 pid / proc 可能是值得的:

運行一些應用程序:

$ kubectl run bootcamp --image=docker.io/jocatalin/kubernetes-bootcamp:v1

找到容器ID:

$ kubectl get pods --output=jsonpath='{.items[*].status.containerStatuses[*].containerID}'
docker://59f127d641cef9475309cbf4b5fc2e4a65f3e52a0e08112dccbc2c144a0e366f

找到相關的主機/節點:

$ kubectl get pods --output=jsonpath='{.items[*].status.hostIP}'                          
192.168.99.100

兩者也可以通過以下方式找到:

$ kubectl describe pod <podID>

通過 SSH 連接到節點,然后運行:

$ docker inspect 59f127d641cef9475309cbf4b5fc2e4a65f3e52a0e08112dccbc2c144a0e366f | grep Pid\":
"Pid": 18052,
$ cat /proc/18052/oom_*         
15
1000
1000

希望這在某些時候可以幫助其他人

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM