Kuberntes杀死pod内的进程

时间:2017-04-14 11:26:49

标签: bash kubernetes

我使用以下代码随机杀死pod中的进程

   : ${DELAY:=30}

if [ "$#" -ne 1 ]; then
    echo "One argument expected specifying the time in seconds to run"
else
 end=$((SECONDS+$1))
 while [ $SECONDS -lt $end ]; do
  kubectl \
    -o 'jsonpath={.items[*].metadata.name}' \
    get pods | \
      tr " " "\n" | \
      shuf | \
      head -n 1 |
      #xargs -t --no-run-if-empty \

      kubectl exec $(head -n 1) -- kill -9 9
  #if [ $((SECONDS+${DELAY})) -lt $end ];then            #break loop if (seconds completed + delay) is greater than time specified in argument
  # sleep "${DELAY}"                                     #sleep so that pod gets completely deleted and a terminating pod not selecte
  #else
  # break
  #fi
 done
fi

脚本运行但没有显示输出,因为它进入某个无限循环。有人能在我出错的地方帮忙吗?

1 个答案:

答案 0 :(得分:1)

两件事: -o 'jsonpath={.items[*].metadata.name}'应该在kubectl get pods之后,否则kubectl将返回帮助消息。 另外,将-t添加到kubectl exec以查看终端中容器的输出。