需要通过ansible获取pod运行的节点名称,但不使用kubectl或命令/shellansible my_k8s -m k8s_info -a "kind=pod namespace=default name=testpod"它给予了关于此Pod不带节点信息的ansible_facts谢谢k8s模块也没有关于节点的内容
ansible my_k8s -m k8s_info -a "kind=pod namespace=default name=testpod"
vsdwdz231#
正如你所说,Ansible K8s模块不提供节点信息。但是,您可以通过运行以下命令将Ansible Playbook运行到所有K8s节点(可能通过创建专用主机文件)来解决此问题:
hostname && ls -l /var/log/pods | awk '{print $9}' | grep -i NAMESPACE | grep -i POD_NAME
保存输出将为您提供所需的主机名/pod关联。为此,您可以按照以下链接中描述的步骤操作:Ansible: Store command's stdout in new variable?
1条答案
按热度按时间vsdwdz231#
正如你所说,Ansible K8s模块不提供节点信息。
但是,您可以通过运行以下命令将Ansible Playbook运行到所有K8s节点(可能通过创建专用主机文件)来解决此问题:
保存输出将为您提供所需的主机名/pod关联。为此,您可以按照以下链接中描述的步骤操作:Ansible: Store command's stdout in new variable?