我想从 kubernetes 命名空间检查未运行/完成的 pod 的状态 900 秒,如果这些 pod 仍未运行/完成,则在 900 秒后退出脚本
这是我的脚本,除了脚本本身的退出外,它都有效:
STARTTIME=$(date +%s)
my_namespace=dummy
status="false"
for ((i = 0 ; i <= 60 ; i++)); do
result_getpods="$(kubectl get po -n "$my_namespace" | grep -v -E
'Completed|Running' | { grep -v -E 'RESTARTS' || true; })"
if [[ "$result_getpods" != "" ]]; then
echo "Pods status for $my_namespace"
kubectl get po -n "$my_namespace" | grep -v -E
'Completed|Running|Evicted' | grep -v -E 'RESTARTS'
echo "$(date +%Y_%m_%d-%H:%M:%S). Some pods are still not
running."
echo "Checked $i times."
sleep 15s
status="false"
if [[ "$(($(date +%s) - ${STARTTIME}))" -eq 900 ]]; then
badstatus="$(kubectl get po -n "$my_namespace" | grep -v -E
'Completed|Running|Evicted' | grep -v -E 'RESTARTS' | wc -l)"
echo "$(date +%Y_%m_%d-%H:%M:%S). $badstatus pods are still
not running."
echo "Checked $i times."
exit -1
fi
else
echo "Pods status for $my_namespace."
kubectl get po -n "$my_namespace"
echo "It takes $(($(date +%s) - ${STARTTIME})) seconds to
complete this task."
echo "Deployment success."
echo "Checked $i times."
status="true"
break
fi
done
if [[ "$status" == "false" ]]; then
echo "$(date +%Y_%m_%d-%H:%M:%S). Some pods are still not running"
exit -1
fi
• 列出工作节点中运行的所有 kubernetes pod,按磁盘空间使用情况排序
• 如何调试作业中意外终止的 Kubernetes pod?
• pod被kube-scheduler调度完成后如何触发webhook修改pod
• LoadBalancer 或 Nodeport 服务未从本地主机连接到 minikube 内的 pod
• kubectl exec with curl Connection refused
• 如何从集群中运行的 pod 安装带有 Go Helm-SDK 的 Helm chart?
• Kubernetes:正在运行的 pod 数量与所需状态不匹配
• Kubernetes 修复“Init:CrashLoopBackOff”问题
• 在 Kubernetes 中运行的 Spark 使用什么主 URL?
• 在不使用向下 API 或环境变量方法的情况下从容器获取 Pod 自身的详细信息
• 有没有办法在部署期间绕过节点的 maxpodrange 检查?
• 如何将 Backstage 连接到 Kubernetes 集群以发现 pod
• 使用 kubernetes 的普罗米修斯 Torchserve 指标