sh Bash函数按名称空间刷新所有部署中的所有pod

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sh Bash函数按名称空间刷新所有部署中的所有pod相关的知识,希望对你有一定的参考价值。

# based on the "patch deployment" strategy in this comment:
# https://github.com/kubernetes/kubernetes/issues/13488#issuecomment-372532659
# requires jq

# $1 is a valid namespace
function refresh-all-pods() {
  echo
  DEPLOYMENT_LIST=$(kubectl -n $1 get deployment -o json|jq -r .items[].metadata.name)
  echo "Refreshing pods in all Deployments"
  for deployment_name in $DEPLOYMENT_LIST ; do
    TERMINATION_GRACE_PERIOD_SECONDS=$(kubectl -n $1 get deployment "$deployment_name" -o json|jq .spec.template.spec.terminationGracePeriodSeconds)
    if [ "$TERMINATION_GRACE_PERIOD_SECONDS" -eq 30 ]; then
      TERMINATION_GRACE_PERIOD_SECONDS='31'
    else
      TERMINATION_GRACE_PERIOD_SECONDS='30'
    fi
    patch_string="{\"spec\":{\"template\":{\"spec\":{\"terminationGracePeriodSeconds\":$TERMINATION_GRACE_PERIOD_SECONDS}}}}"
    kubectl -n $1 patch deployment $deployment_name -p $patch_string
  done
  echo
}

refresh-all-pods $NAMESPACE

以上是关于sh Bash函数按名称空间刷新所有部署中的所有pod的主要内容,如果未能解决你的问题,请参考以下文章

sh 从所有名称空间中删除被逐出的pod(也是ImagePullBackOff和ErrImagePull)

bash 中的访问修饰符

sh 简单的bash脚本,用于获取并将执行文件夹中的所有repos拉到它们所在的最新分支

是否可以删除命名空间中的所有Google Cloud Datastore Kinds?

Linux / Bash,使用ps -o按特定名称获取进程?

Bash - 在文件之前列出所有子目录中的目录名称的程序