k8s对比不同环境获取副本数并更新

#!/bin/bash
get_pods_file=/"data/wudongyu/scripts/get_pods.sh"
#sed -i '1d' /data/wudongyu/scripts/prod.txt
scripts_path="/data/wudongyu/scripts"
read -p "请输入要参考的源环境名,获取k8s资源,譬如hwprod、hwbeta、hwprod-gray1: " env_src
case ${env_src} inhwprod|hwbeta|hwci)
        echo "输入的环境名正确,现在进行获取该环境的k8s资源信息"
        su - ${env_src} -c "${get_pods_file}"
        echo "获取k8s资源信息已完成";;
    *)
        echo "您输入的环境名错误,请重新运行脚本或联系管理员【dongyu】"
        sleep 3
        exit;;
esac
read -p "请输入要修改的目标环境的名称,譬如hwprod、hwbeta、hwprod-gray1、terminator:" env_dest
case ${env_dest} inhwprod-gray1|hwbeta|hwci|terminator)
        if [ ${env_src} == ${env_dest} ];then
            echo "您输入的源环境和目标环境相同,执行脚本无意义,请退出重试"
            exit
        else
            echo "您输入的环境名正确"
        fi;;
    *)
        echo "您输入的环境名错误,请重新运行脚本或联系管理员【dongyu】"
        exit;;
esac
read -p "请输入目标环境的副本数比例,比例数仅支持【0.25、0.3、0.5、0.75】: " rs_number
case ${rs_number} in
    0.2|0.3|0.5|0.75)
        cd ${scripts_path}
        cat prod.txt | grep -vE "apollo|NAMESPACE|kube-system|auth-center" | while read line;do 
            ns=`echo $line|awk '{print $1}'`
            dm=`echo $line|awk '{print $2}'`
            rs1=`echo $line|awk '{print $3}'`
            rs2=`echo "${rs1} * ${rs_number}"|bc`
            if [ ${rs1} == 1 ]||[ ${rs1} == 2 ];then
                su - ${env_dest} -c "kubectl scale --replicas=${rs1} deploy/${dm} -n ${ns}"
                #echo "su - ${env_dest} -c kubectl scale --replicas=${new_rs} deploy/${dm} -n ${ns}"
            else
                new_rs=`awk -v a=${rs2} 'BEGIN{print(int(a)==(a))?int(a):int(a)+1}'`
                if [ ${new_rs} -le 2 ];then
                    su - ${env_dest} -c "kubectl scale --replicas=2 deploy/${dm} -n ${ns}"
                    #echo "su - ${env_dest} -c kubectl scale --replicas=2 deploy/${dm} -n ${ns}"
                else
                    su - ${env_dest} -c "kubectl scale --replicas=${new_rs} deploy/${dm} -n ${ns}"
                    #echo "su - ${env_dest} -c kubectl scale --replicas=${new_rs} deploy/${dm} -n ${ns}"
                fi
            fi
        done
        echo "已更新完成!!!";;
    *)
        echo "您输入的副本数比例不符合要求,请重新运行脚本或联系管理员【dongwu】"
        exit;;
esac
原文地址:https://www.cnblogs.com/wudongyu/p/15008725.html