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

如何使用Ansible k8s_info模块检查DaemonSet期望调度数与可用数是否相等

如何使用Ansible k8s_info模块检查DaemonSet的期望调度数与可用数是否相等?

我来分享下具体的实现方法,直接上实用的方案:

首先得明确DaemonSet状态里的两个核心字段:

  • desiredNumberScheduled: 集群中DaemonSet期望调度的Pod总数
  • numberAvailable: 当前实际处于可用状态的Pod数量

我们要做的就是验证这两个数值完全匹配,下面是完整的Ansible Playbook示例,既可以做一次性检查,也能用来等待DaemonSet完全就绪:

- name: "检查并等待DaemonSet达到就绪状态"
  k8s_info:
    api_key: "{{ k8s_api_key }}"
    kind: DaemonSet
    api_version: apps/v1
    name: fluentd
    namespace: openshift-logging
  register: ds
  until:
    - ds.resources is defined  # 确保成功获取到资源数据
    - ds.resources[0].status.desiredNumberScheduled == ds.resources[0].status.numberAvailable
  retries: 60  # 最多重试60次
  delay: 10    # 每次重试间隔10秒

代码细节说明:

  1. k8s_info模块:通过指定DaemonSet的名称、命名空间和API版本,精准获取目标资源的状态数据,并把结果存到ds变量里。
  2. until条件判断:
    • 先确认ds.resources已定义,避免因API调用失败导致后续判断报错;
    • 直接对比返回结果中第一个(也是唯一一个,因为指定了具体名称)资源的两个关键数值。

如果你更习惯用json_query处理结构化数据,也可以把第二个条件替换成:

- ds | json_query('resources[*].status.desiredNumberScheduled == resources[*].status.numberAvailable')

这个写法会对所有返回的DaemonSet资源(这里仅一个)做数值对比,返回true即表示两者相等。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 10:52:44