代码之家  ›  专栏  ›  技术社区  ›  Auto-learner

如何使用shell脚本等待Kubernetes的pod列表成功

  •  2
  • Auto-learner  · 技术社区  · 6 年前

    我试图找到一个命令或一个示例shell片段,在那里我可以等待kubernetespods列表成功。我已经检查了 answer 但它没有给出任何产出。有人能指导我或建议一个方法,我对库伯内特斯完全陌生。

    kubectl -n test-ns get jobs -w
    
    NAME     DESIRED   SUCCESSFUL   AGE
    test-1    1         1            2d
    test-2    1         1            2d
    test-3    1         1            2d
    test-4    1         1            2d
    
    
    until kubectl get jobs -n test-ns  -o jsonpath='{.status.conditions[?(@.type=="Complete")].status}' | grep True ; do sleep 1 ; done
    

    这不会产生任何输出

    2 回复  |  直到 6 年前
        1
  •  3
  •   Noam Manos wim    4 年前

    要等待您的pods运行,请检查“condition=ready”并按应用程序标签进行筛选,例如:

    $ kubectl wait --for=condition=ready pod -l app=netshoot 
    pod/netshoot-58785d5fc7-xt6fg condition met
    
        2
  •  1
  •   Scott Stensland    6 年前

    你需要使用这个命令

    kubectl rollout status 
    
        3
  •  1
  •   Rico    6 年前

    如果您想使用kubectl here 在它得到所有工作的地方,你需要使用 .items[*]... 在你的JSONpath中(这个答案只针对一个特定的工作)。例如:

    kubectl -n test-ns get jobs \
      -o jsonpath='{.items[*].status.conditions[?(@.type=="Complete")].status}' \
      | grep True