You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何复现DaemonSet部署后无就绪Pod场景及获取错误事件

DaemonSet部署后无Pod就绪的复现与错误事件排查

一、复现DaemonSet部署后无Pod就绪的场景

你可以通过修改示例DaemonSet配置,人为制造异常来触发无Pod就绪的情况,常见触发方式包括:

  • 镜像拉取失败:将容器镜像替换为不存在的地址,比如把quay.io/fluentd_elasticsearch/fluentd:v2.5.2改成invalid/fluentd:wrong-tag
  • 权限不足:挂载主机上容器无访问权限的目录(如/root),导致容器启动失败
  • 资源不足:将CPU/内存请求调至节点无法承载的数值,比如把CPU请求改为2000m,Pod会因资源不够处于Pending状态
  • 配置错误:写错挂载卷名称、hostPath路径不存在等

以下是修改后可复现镜像拉取失败场景的DaemonSet配置:

apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: fluentd
  namespace: logging
  labels:
    app: fluentd-logging
spec:
  selector:
    matchLabels:
      name: fluentd
  template:
    metadata:
      labels:
        name: fluentd
    spec:
      containers:
      - name: fluentd-elasticsearch
        # 改为不存在的镜像地址,触发拉取失败
        image: invalid/fluentd:wrong-tag
        resources:
          limits:
            memory: 200Mi
          requests:
            cpu: 100m
            memory: 200Mi
        volumeMounts:
        - name: varlog
          mountPath: /var/log
      terminationGracePeriodSeconds: 30
      volumes:
      - name: varlog
        hostPath:
          path: /var/log

二、使用字段选择器获取DaemonSet相关错误事件

要筛选出与目标DaemonSet关联的事件,可使用kubectl get events命令配合字段选择器,对应的规则为:involvedObject.kind=DaemonSet,involvedObject.name="你的DaemonSet名称"

具体命令示例(替换fluentd为你的DaemonSet名称,logging为对应命名空间):

kubectl get events -n logging --field-selector involvedObject.kind=DaemonSet,involvedObject.name=fluentd

该命令会列出所有关联到fluentd DaemonSet的事件,包含镜像拉取失败、资源不足等错误信息,可直接用于定位Pod无法就绪的原因。


内容的提问来源于stack exchange,提问作者susanna

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 12:07:16