是否有任何现有的 ansible 模块可以用于以下操作。
我可以等待 kubectl get nodes
STATUS
=Ready
?
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
master1 NotReady master 42s v1.8.4
最佳答案
kubectl wait
命令
Kubernetes 支持使用 kubectl wait从 v1.11 版本开始。
它等待一个或多个资源的特定条件。
在 ansible 任务中使用 kubectl wait 命令:
- name: Wait for all k8s nodes to be ready
shell: kubectl wait --for=condition=Ready nodes --all --timeout=600s
register: nodes_ready
- debug: var=nodes_ready.stdout_lines
如果您只想检查某些特定节点的条件,可以使用 --selector
代替 --all
,如下所示:
- name: Wait for k8s nodes with node label 'purpose=test' to be ready
shell: kubectl wait --for=condition=Ready nodes --selector purpose=test --timeout=600s
register: nodes_ready
- debug: var=nodes_ready.stdout_lines
关于ansible kubectl 等待节点就绪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47438010/