shell脚本

发布时间 2023-08-01 06:00:46作者: 随风2020
#系统瘦身:所有deploy replicas缩为1,所有pod资源缩为 0.5cpu 256M
#适用于一个deploy中只有一个container的deploy
#参数1:namespace环境变量
#环境瘦身
function Slimming()
{
  deployments=$(kubectl get deploy  -n ${NAMESPACE} | grep -v 'NAME' | cut -d ' ' -f 1)
  for element in ${deployments[@]}
  do
    containerName=$(kubectl -n ${NAMESPACE}  get deploy  $element -owide | grep -v 'NAME' | awk '{print $7}')
    #${containerName}在json中是字符串类型,json串中必须使用双引号应用
    #不能直接包含在双引号中,否者shell不会替换为参数值
    #通过前后字符串来拼接,注意不要前后字符串都别缺少双引号
    kubectl -n ${NAMESPACE}  patch deploy ${element} -p '{"spec":{"template":{"spec":{"containers":[{"name": "'${containerName}'","resources":{"limits":{"cpu":"1","memory":"1Gi"},"requests":{"cpu":"1","memory":"1Gi"}}}]}}}}'
    kubectl -n ${NAMESPACE}  patch hpa  ${element}  -p '{"spec":{"minReplicas":1,"maxReplicas":1}}'
  done
}