【k8s】k8s master 节点上pod被驱逐原因分析

解读一下 pod kubewatch-jlfsb 无法在master01节点无法成功运行的原因

$ kubectl get pods -A |grep  0/1 
kube-system               kubewatch-jlfsb                                     0/1     Evicted             0          3m10s


$ free -h
              total        used        free      shared  buff/cache   available
Mem:            15G        5.0G        2.8G        820M        7.7G        8.8G
Swap:            0B          0B          0B



$ kubectl describe pod kubewatch-jlfsb -n kube-system
Name:           kubewatch-jlfsb
Namespace:      kube-system
Priority:       0
Node:           xt-master01/
Start Time:     Mon, 09 Sep 2024 10:20:39 +0800
Labels:         app=kubewatch
                controller-revision-hash=648d99c657
                pod-template-generation=1
Annotations:    <none>
Status:         Failed
Reason:         Evicted
Message:        The node was low on resource: memory. Container kubewatch was using 374076Ki, which exceeds its request of 0.
IP:
IPs:            <none>
Controlled By:  DaemonSet/kubewatch
Containers:
  kubewatch:
    Image:      deploy.bocloud.k8s:40443/paas/boc-kubewatch:boc3.3
    Port:       <none>
    Host Port:  <none>
    Liveness:   http-get http://127.0.0.1:9008/boc-kubewatch/apiHealthCheck delay=120s timeout=2s period=30s #success=1 #failure=5
    Environment:
      cluster_type:           https
      cluster_realmasterip:   10.12.32.108
      cluster_masterip:       127.0.0.1
      cluster_port:           6443
      cluster_token:          xxxxxxxxxx
      cluster_platformtype:   kubernetes
      cluster_envid:          35
      cluster_envname:        test-1-pro-default
      cluster_clusterid:      6
      cluster_clusterName:    k8s集群
      cluster_partitionid:    180
      cluster_partitionname:  test-1-pro-default
      cluster_networkname:
      cluster_boc:            http://10.12.32.6:30000/
    Mounts:
      /logs/ from boc-kubewatch-log (rw)
      /var/run/secrets/kubernetes.io/serviceaccount from default-token-wm2pc (ro)
Volumes:
  boc-kubewatch-log:
    Type:          HostPath (bare host directory volume)
    Path:          /opt/deploy/docker/logs/boc-kubewatch
    HostPathType:
  default-token-wm2pc:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  default-token-wm2pc
    Optional:    false
QoS Class:       BestEffort
Node-Selectors:  <none>
Tolerations:     node-role.kubernetes.io/master:NoSchedule
                 node.kubernetes.io/disk-pressure:NoSchedule
                 node.kubernetes.io/memory-pressure:NoSchedule
                 node.kubernetes.io/network-unavailable:NoSchedule
                 node.kubernetes.io/not-ready:NoExecute
                 node.kubernetes.io/pid-pressure:NoSchedule
                 node.kubernetes.io/unreachable:NoExecute
                 node.kubernetes.io/unschedulable:NoSchedule
Events:
  Type     Reason     Age        From                  Message
  ----     ------     ----       ----                  -------
  Normal   Scheduled  <unknown>  default-scheduler     Successfully assigned kube-system/kubewatch-jlfsb to xt-master01
  Normal   Pulled     3m24s      kubelet, test-master01  Container image "deploy.bocloud.k8s:40443/paas/boc-kubewatch:boc3.3" already present on machine
  Normal   Created    3m24s      kubelet, test-master01  Created container kubewatch
  Normal   Started    3m24s      kubelet, test-master01  Started container kubewatch
  Warning  Evicted    2m30s      kubelet, test-master01  The node was low on resource: memory. Container kubewatch was using 374076Ki, which exceeds its request of 0.
  Normal   Killing    2m30s      kubelet, test-master01  Stopping container kubewatch

从你提供的信息来看,这个 Pod (kubewatch-jlfsb) 在 Kubernetes 集群中无法正常运行,原因是节点的资源不足。以下是详细的分析:

1. Pod 状态

Pod 状态显示为 Evicted,这意味着 Pod 被驱逐了。驱逐通常发生在节点资源紧张时,Kubernetes 会驱逐一些 Pod 以释放资源。

2. 原因

kubectl describe pod 的输出中,我们可以看到具体的驱逐原因是:

Reason:         Evicted
Message:        The node was low on resource: memory. Container kubewatch was using 374076Ki, which exceeds its request of 0.

这表示节点内存不足。Pod 的容器使用了 374076 KiB 的内存,而容器的内存请求是 0。虽然容器的请求为 0,Kubernetes 仍然会依据实际使用的内存量来决定是否驱逐 Pod。

3. 节点内存状况

你提供的 free -h 输出显示:

Mem:            15G        5.0G        2.8G        820M        7.7G        8.8G
Swap:            0B          0B          0B
  • 总内存:15GB
  • 已用内存:5.0GB
  • 空闲内存:2.8GB
  • 缓存/缓冲:7.7GB

虽然空闲内存有 2.8GB,看起来还不算特别低,但 Kubernetes 的调度和驱逐机制可能会认为已经不足以支持新的或现有的 Pod。

4. QoS 类别

该 Pod 的 QoS 类别是 BestEffort,这意味着它没有设置任何资源请求和限制。BestEffort 类别的 Pod 是在资源紧张时最容易被驱逐的,因为它们没有明确的资源需求保证。

5. 处理建议

为了避免类似的情况,你可以考虑以下几种措施:

  1. 设置资源请求和限制
    在 Pod 的配置中设置 CPU 和内存的请求(requests)和限制(limits),这有助于 Kubernetes 更好地管理资源并减少 Pod 被驱逐的概率。例如:

    resources:
      requests:
        memory: "500Mi"
        cpu: "250m"
      limits:
        memory: "1Gi"
        cpu: "500m"
    
  2. 监控和优化节点资源

    • 监控节点的资源使用情况,确定是否有其他占用大量资源的进程或 Pod。
    • 优化 Pod 的资源使用,确保节点上的资源分配合理。
  3. 增加节点内存
    如果节点资源总是不足,可以考虑增加节点的内存。

  4. 检查节点压力
    节点上可能存在其他资源压力(如磁盘压力、网络不可用等),确保节点的总体健康状态良好。

通过这些措施,你可以减少 Pod 被驱逐的可能性,并提高系统的稳定性。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,271评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,275评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,151评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,550评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,553评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,559评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,924评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,580评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,826评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,578评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,661评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,363评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,940评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,926评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,156评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,872评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,391评论 2 342

推荐阅读更多精彩内容