zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    leetcode 5286 网格中的最短路径
    C++ STL
    Transformer解读
    global_steps
    tensorflow中的一些语法问题
    生成器与yield关键字
    CNN神经网络一维卷积和二维卷积
    electron-builder打包后,运行的程序左上角图标不显示,桌面和状态栏的显示正常,是什么情况。
    git慢设置代理
    js使用正则表达式获取字符串中特定的字符
  • 原文地址:https://www.cnblogs.com/wudongyu/p/15008725.html
Copyright © 2011-2022 走看看