如何通过Ansible获取Pod所在Node名称(禁用kubectl及命令/Shell)
用Ansible的k8s_info模块获取Pod所在Node名称的解决方案
- Pod的节点信息实际存在于返回结果的
spec.nodeName字段中,只需正确提取即可。 - 编写Ansible Playbook捕获并提取目标字段:
- name: 获取指定Pod的详细信息 k8s_info: kind: Pod namespace: default name: testpod register: pod_details - name: 输出Pod运行的Node名称 debug: msg: "目标Pod运行节点: {{ pod_details.resources[0].spec.nodeName }}" - 补充说明:
- 若需要节点IP,可提取
pod_details.resources[0].status.hostIP字段 - 若返回的
resources为空,先验证Pod名称、命名空间是否正确,确保Pod处于正常运行状态 - 检查kubernetes.core集合版本,旧版本可能存在字段兼容问题,更新命令:
ansible-galaxy collection install kubernetes.core --upgrade
- 若需要节点IP,可提取
内容的提问来源于stack exchange,提问作者tuytuy20
相关产品推荐
相关产品推荐

