ansible kubectl 等待节点就绪

标签 ansible kubernetes

是否有任何现有的 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/

相关文章:

json - Ansible - 将环境中的 JSON 字符串传递给 shell 模块

docker - 使用 Docker 管理开发/测试/生产环境

kubernetes - 在 statefulset 中跳过 pod 部署

kubernetes集群主节点未准备好

kubernetes - 如何列出Kubernetes服务的IPv6?

ansible - 拆分变量在 Ansible 中不起作用

logging - 如何获取 ansible-playbook 模块执行的日志/详细信息?

非 root 用户不允许 Ansible chown 操作

ubuntu - Kubernetes for i386 - 找不到二进制文件,无法编译(编译错误)

docker - 那里有什么容器管理解决方案?