zoukankan      html  css  js  c++  java
  • k8s每日备份脚本

    #!/bin/bash
    init_dir=/opt/k8s_backup/k8s_yaml_`whoami`
    mkdir -p ${init_dir}/{clusterrole,clusterrolebinding,configmap,daemonsets,deployments,statefulsets,ingresses,nodes,ns,sa,secrets,services,files,pv,pvc}

    cd ${init_dir}/ns
    kubectl get namespaces|grep -vE "kube-*|default|^NAME"|while read line
    do
    echo $line
    ns=`echo $line|awk '{print $1}'`
    kubectl get ns ${ns} -o yaml > ${ns}.yaml
    done

    cd ${init_dir}/pvc
    kubectl get pvc --all-namespaces|grep -vE "kube-*|default|^NAME"|while read line
    do
    echo $line
    ns=`echo $line|awk '{print $1}'`
    deploy=`echo $line|awk '{print $2}'`
    kubectl get pvc ${deploy} -n ${ns} -o yaml > ${deploy}.yaml
    done

    cd ${init_dir}/pv
    kubectl get pv -o yaml > pv.yaml

    cd ${init_dir}/deployments
    kubectl get deployments --all-namespaces |grep -vE "^NAME"|while read line
    do
    echo $line
    ns=`echo $line|awk '{print $1}'`
    deploy=`echo $line|awk '{print $2}'`
    mkdir -p ${ns}
    kubectl get deployments ${deploy} -n ${ns} -o yaml > ${ns}/${deploy}.yaml
    done

    cd ${init_dir}/daemonsets
    kubectl get daemonsets --all-namespaces |grep -vE "^NAME"|while read line
    do
    echo $line
    ns=`echo $line|awk '{print $1}'`
    deploy=`echo $line|awk '{print $2}'`
    mkdir -p ${ns}
    kubectl get daemonsets ${deploy} -n ${ns} -o yaml > ${ns}/${deploy}.yaml
    done

    cd ${init_dir}/statefulsets
    kubectl get statefulsets --all-namespaces |grep -vE "^NAME"|while read line
    do
    echo $line
    ns=`echo $line|awk '{print $1}'`
    deploy=`echo $line|awk '{print $2}'`
    mkdir -p ${ns}
    kubectl get statefulsets ${deploy} -n ${ns} -o yaml > ${ns}/${deploy}.yaml
    done
    #####

    cd ${init_dir}/configmap
    kubectl get configmap --all-namespaces |grep -vE "^NAME"|while read line
    do
    echo $line
    ns=`echo $line|awk '{print $1}'`
    deploy=`echo $line|awk '{print $2}'`
    mkdir -p ${ns}
    kubectl get configmap ${deploy} -n ${ns} -o yaml > ${ns}/${deploy}.yaml
    done

    cd ${init_dir}/secrets
    kubectl get secrets --all-namespaces |grep -vE "^NAME"|while read line
    do
    echo $line
    ns=`echo $line|awk '{print $1}'`
    deploy=`echo $line|awk '{print $2}'`
    mkdir -p ${ns}
    kubectl get secrets ${deploy} -n ${ns} -o yaml > ${ns}/${deploy}.yaml
    done

    cd ${init_dir}/services
    kubectl get service --all-namespaces |grep -vE "^NAME"|while read line
    do
    echo $line
    ns=`echo $line|awk '{print $1}'`
    deploy=`echo $line|awk '{print $2}'`
    mkdir -p ${ns}
    kubectl get service ${deploy} -n ${ns} -o yaml > ${ns}/${deploy}.yaml
    done

    cd ${init_dir}/ingresses
    kubectl get ingresses --all-namespaces |grep -vE "^NAME"|while read line
    do
    echo $line
    ns=`echo $line|awk '{print $1}'`
    deploy=`echo $line|awk '{print $2}'`
    mkdir -p ${ns}
    kubectl get ingresses ${deploy} -n ${ns} -o yaml > ${ns}/${deploy}.yaml
    done
    ####

    cd ${init_dir}/sa
    kubectl get sa --all-namespaces |grep -vE "^NAME"|while read line
    do
    echo $line
    ns=`echo $line|awk '{print $1}'`
    deploy=`echo $line|awk '{print $2}'`
    mkdir -p ${ns}
    kubectl get sa ${deploy} -n ${ns} -o yaml > ${ns}/${deploy}.yaml
    done

    cd ${init_dir}/clusterrole
    kubectl get clusterrole --all-namespaces |grep -vE "^NAME"|while read line
    do
    echo $line
    deploy=`echo $line|awk '{print $1}'`
    kubectl get clusterrole ${deploy} -o yaml > ${deploy}.yaml
    done

    cd ${init_dir}/clusterrolebinding
    kubectl get clusterrolebinding --all-namespaces |grep -vE "^NAME"|while read line
    do
    echo $line
    deploy=`echo $line|awk '{print $1}'`
    kubectl get clusterrolebinding ${deploy} -o yaml > ${deploy}.yaml
    done

    cd ${init_dir}/nodes
    kubectl get nodes --all-namespaces |grep -vE "^NAME"|while read line
    do
    echo $line
    deploy=`echo $line|awk '{print $1}'`
    kubectl get nodes ${deploy} -o yaml > ${deploy}.yaml
    done

    cd ${init_dir}/deployments
    ls */*|grep .yaml$|grep -vE "^auth-center|^apollo|^ops-monit|^kube-|^default"|while read line
    do
    echo "$line"
    ns=`echo "$line"|awk -F / '{print $1}'`
    deploy=`echo "$line"|awk -F / '{print $2}'|sed s/^deploy-//g|sed s/.yaml//g`
    tag=`grep "image:" $line|grep -v busybox|head -1|awk -F ": " '{print $NF}'|sed "s/'//g"|sed 's/ $//g'|sed 's/"//g'`
    echo "$ns $deploy $tag" >>../deploy.list
    done

    if [ $(whoami) == "env111" ];then
    kubectl get deployments --all-namespaces |grep -E "^cis|^terminal"|while read line
    do
    echo $line
    ns=`echo $line|awk '{print $1}'`
    deploy=`echo $line|awk '{print $2}'`
    pod=`kubectl get pods -n ${ns} |grep ${deploy}|grep Running |head -1|awk '{print $1}'`
    kubectl cp ${ns}/${pod}:/usr/src/app/config/backup.json ${init_dir}/files/${ns}.${deploy}_config_backup.json
    kubectl cp ${ns}/${pod}:/usr/src/app/config/backup.js ${init_dir}/files/${ns}.${deploy}_config_backup.js
    done
    fi

    mv ${init_dir} ${init_dir}_`/usr/bin/date "+%Y.%m.%d"`

  • 相关阅读:
    LODOP中用ADD_PRINT_IMAGE缩放非图片超文本
    LODOP关联,打印项序号注意事项
    LODOP在页面让客户选择打印机
    【JS新手教程】LODOP打印复选框选中的任务或页数
    映美FP-530K+打印发票的各种经验
    【JS新手教程】LODOP打印复选框选中的内容
    LODOP和C-LODOP注册与角色等简短问答【增强版】
    【JS新手教程】弹出两层div,及在LODOP内嵌上层
    LODOP内嵌挡住浏览器的div弹出层
    【JS新手教程】浏览器弹出div层1
  • 原文地址:https://www.cnblogs.com/wudongyu/p/15011083.html
Copyright © 2011-2022 走看看