bash - 用于检查 openshift/kubernetes pod 是否准备就绪的 Bash 脚本
问题描述
我正在尝试创建一个 shell 脚本,该脚本将通过检查显示 1/1 的 READY 标题来验证某些 pod 是否已准备好。我尝试了两种方法。
1.
ready=$(oc get pods | awk '{print $2}' | tail -n +2) # prints 1/1 or 0/1 for each pod
until [[ ${ready} == "1/1" ]]
do
echo "Waiting for pods to be ready."
sleep 3
done
即使 pod 已准备好并在 READY 列中显示 1/1,上面的脚本也会一直说“等待 pod 准备好”。
2.
while true ; do
for i in 1 2 3; do
ready=`oc get pods | awk '{print $2}' | tail -n +2 | head -n $i`
if [[ "${ready}" == "1/1" ]]; then
echo "pods are up and running"
else
echo "waiting for pods to be ready"
sleep 10
break
fi
done
done
上面的脚本只是不断地打印等待 pod 准备好并且 pod 启动并运行。
任何帮助将不胜感激,我从 Bash 开始,不太确定该怎么做。
解决方案
我很惊讶到目前为止没有人提到实验性的,但官方的kubectl wait:
$ kubectl wait ([-f FILENAME] | resource.group/resource.name | resource.group [(-l label | --all)]) [--for=delete|--for condition=available]
推荐阅读
- mysql - SELECT 行条目中用逗号分隔的唯一单词
- r - 将其他行与当前行进行比较并在 R 中进行条件求和
- hive - Hive 中的时区问题
- flask - 在烧瓶安全中为 users.id 自定义主键
- python - 多索引列上的元素操作因连接或级别混淆而失败
- elasticsearch - elasticsearch如何对分数相同的文档进行排序?
- javascript - 如何在地图arcgis javascript上绘制几何环
- java - 如何在firebase中将旧数据与新数据相加
- flutter - 如何获取 json 数据并根据参数将其分离?
- jupyter-notebook - 在我的集群节点上启动 Jupyter notebook(高性能计算或 HPC 设施)