国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

T1級(jí),生產(chǎn)環(huán)境事故—Shell腳本一鍵備份K8s的YAML文件

這篇具有很好參考價(jià)值的文章主要介紹了T1級(jí),生產(chǎn)環(huán)境事故—Shell腳本一鍵備份K8s的YAML文件。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

大家好,我叫秋意零。

最近對(duì)公司進(jìn)行日常運(yùn)維工作時(shí),出現(xiàn)了一個(gè) T1 級(jí)別事故。導(dǎo)致公司的“酒云網(wǎng)”APP的無(wú)法使用。我和我領(lǐng)導(dǎo)一起搞了一個(gè)多小時(shí),業(yè)務(wù)也停了一個(gè)多小時(shí)

起因是:我的部門直系領(lǐng)導(dǎo),叫我**刪除一個(gè) Deployemnt 資源(node-api-gateway)**說(shuō)該資源不用了,因?yàn)橛?go 語(yǔ)言重新寫了一個(gè) go-api-gateway 項(xiàng)目。

由于咱們管理 K8s 集群使用的 Kuboard 系統(tǒng),刪除 Deployemnt 資源(node-api-gateway)時(shí),如果沒(méi)有勾選下面圖中的選項(xiàng)的話,就會(huì)默認(rèn)刪除對(duì)應(yīng)與之同名的 Service 和 Ingress

T1級(jí),生產(chǎn)環(huán)境事故—Shell腳本一鍵備份K8s的YAML文件,# 容器技術(shù),kubernetes,容器,云原生,Shell腳本,備份K8s的YAML文件

之前將 Deployment(node-api-gateway) 使用 Go 重寫了。而對(duì)應(yīng)的 Ingress 名稱與之前名稱一致。所以刪除了 Deployment(node-api-gateway)也連帶刪除了同名的 Ingress(node-api-gateway)應(yīng)用的出口網(wǎng)關(guān),導(dǎo)致此次事故。

如果這時(shí)咱們有備份 K8s 資源的 YAML 文件的話,直接執(zhí)行 kubectl apply -f ingeess-yaml文件 命令就不會(huì)出現(xiàn),業(yè)務(wù)長(zhǎng)時(shí)間停業(yè)務(wù)的情況。

此次事情過(guò)后,第二天下午寫了對(duì)應(yīng)的 K8s 集群 YAML 文件備份腳本,如下:

1)定時(shí)任務(wù)

正式和測(cè)試環(huán)境一致

[root@iZ8vbg3hxkp6i8fo6a5ymnZ ~]# crontab -l
...
0 0 */1 * * /usr/bin/bash /a/k8s-yaml-all-bak/start.sh > /a/k8s-yaml-all-bak/yaml_bak.logs 2>&1 # 每1天執(zhí)行一次

2)腳本功能

1. 目錄結(jié)構(gòu)

[root@iZ8vbg3hxkp6i8fo6a5ymnZ k8s-yaml-all-bak]# ll
總用量 764
-rw-r--r-- 1 root root    122 327 00:03 del-yaml.logs  # 刪除備份yaml副本的日志
-rw-r--r-- 1 root root    155 321 10:13 resources.txt  # 記錄腳本需要備份資源
-rwxr-xr-x 1 root root   2905 327 15:30 start.sh  # 腳本啟動(dòng)文件
-rw-r--r-- 1 root root 391299 47 00:03 yaml_bak.logs  # 腳本備份日志

2. 功能:

YAML文件備份路徑:/opt/k8s_yaml_bak

備份YAML文件(方法名稱:dump_yaml)

刪除30天前備份的YAML文件(方法名稱:del_yaml)文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-859606.html

#/bin/bash

#
# K8S_YAML_SHELL_DIR:記錄腳本和resources.txt存放位置,移動(dòng)是需要修改其值
# 一鍵備份K8s集群YAML文件腳本
# resources.txt文件,編寫需要備份資源
#

# 定時(shí)任務(wù)示例
# 0 0 */1 * * /usr/bin/bash /a/k8s-yaml-all-bak/start.sh > /a/k8s-yaml-all-bak/yaml_bak.logs 2>&1
# 后臺(tái)運(yùn)行示例
# nohup /usr/bin/bash /a/k8s-yaml-all-bak/start.sh > /a/k8s-yaml-all-bak/yaml_bak.logs 2>&1 &


# 當(dāng)前時(shí)間
DATE=`date +%Y-%m-%d--%H-%M-%S`

# 備份路徑
K8S_YAML_BACKUP_DIR="/opt/k8s_yaml_bak"


# 腳本存放目錄
K8S_YAML_SHELL_DIR="/a/k8s-yaml-all-bak"


if [ ! -d $K8S_YAML_BACKUP_DIR ];then
   mkdir -p $K8S_YAML_BACKUP_DIR
fi

# 獲取備份資源
if [ -f ${K8S_YAML_SHELL_DIR}/resources.txt ];then
   RESOURCES=`cat ${K8S_YAML_SHELL_DIR}/resources.txt`
   # 判斷資源文件是否為空
   if [[ $RESOURCES == "" ]]; then
                echo "${DATE} ${K8S_YAML_SHELL_DIR}/resources.txt 文件為空,請(qǐng)輸入資源名稱"
                exit 1
   fi
else
   echo "resources.txt文件,不存在!"
   exit 1
fi



# 每次備份單獨(dú)創(chuàng)建一個(gè)家目錄+時(shí)間
mkdir -p ${K8S_YAML_BACKUP_DIR}/k8s-${DATE}

# 獲取家目錄
GET_HOME_DIR=`ls -l ${K8S_YAML_BACKUP_DIR} | tail -n 1 | awk '{print $9}'`

echo "備份路徑:$K8S_YAML_BACKUP_DIR/$GET_HOME_DIR"

# 獲取k8s名稱空間
NAMESPACE=`kubectl get ns | awk '{print $1}' | tail -n +2`


dump_yaml(){
        # 遍歷NS
        for NS in $NAMESPACE ;do
          # 創(chuàng)建NS備份目錄
          mkdir -p ${K8S_YAML_BACKUP_DIR}/${GET_HOME_DIR}/${NS}

          # 過(guò)濾NS(kube-public、kube-system)
          if [[ $NS != "kube-public" && $NS != "kube-system" && $NS != "csdr" && $NS != "kube-node-lease" ]]; then
             # 遍歷k8s資源
             for RESOURCE in $RESOURCES; do
              # 創(chuàng)建資源目錄
              mkdir -p ${K8S_YAML_BACKUP_DIR}/${GET_HOME_DIR}/${NS}/${RESOURCE}

              # 遍歷對(duì)應(yīng)資源名稱
               for RESOURCE_NAME in $(kubectl get $RESOURCE -n $NS | awk '{print $1}' | tail -n +2);do
                  DATE_YAML=`date +%Y-%m-%d--%H:%M:%S`
                  echo "${DATE_YAML} 導(dǎo)出YAML: ${NS} ${RESOURCE} ${RESOURCE_NAME} "
                  # 導(dǎo)出對(duì)應(yīng)名稱空間下對(duì)應(yīng)資源的yaml
                  kubectl get ${RESOURCE} ${RESOURCE_NAME} -n ${NS}  -o yaml > ${K8S_YAML_BACKUP_DIR}/${GET_HOME_DIR}/$NS/${RESOURCE}/${RESOURCE_NAME}.yaml
                  echo ""
               done
             done
          fi
        done
}


del_yaml(){
        for DIR_NAME in $(find $K8S_YAML_BACKUP_DIR -type d  -mtime +7);do
          DATE_YAML=`date +%Y-%m-%d--%H:%M:%S`
          echo "${DATE_YAML} 刪除:$DIR_NAME" > ${K8S_YAML_SHELL_DIR}/del-yaml.logs
          rm -rf $DIR_NAME  >> ${K8S_YAML_SHELL_DIR}/del-yaml.logs
          echo ""  >> ${K8S_YAML_SHELL_DIR}/del-yaml.logs
        done
}

dump_yaml
del_yaml

到了這里,關(guān)于T1級(jí),生產(chǎn)環(huán)境事故—Shell腳本一鍵備份K8s的YAML文件的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • k8s 1.29 一鍵安裝腳本, 絲滑致極

    k8s 1.29 一鍵安裝腳本, 絲滑致極

    博客原文 高可用版本: 高可用 k8s 1.29 一鍵安裝腳本 配置清單 OS: ubuntu 20.04 kubernetes: 1.29.1 Container Runtime:Containerd 1.7.11 CRI: runc 1.10 CNI: cni-plugin 1.4 集群規(guī)劃 IP Hostname 配置 192.168.254.130 master01 2C 4G 30G 192.168.254.131 node01 2C 4G 30G 192.168.254.132 node02 2C 4G 30G 集群網(wǎng)絡(luò)規(guī)劃 Pod 網(wǎng)絡(luò): 10

    2024年02月22日
    瀏覽(23)
  • 【高效、實(shí)用】k8s運(yùn)行狀態(tài)自動(dòng)檢測(cè)shell腳本

    學(xué)習(xí)本章,您將獲得輕松管理500臺(tái)虛機(jī)和物理機(jī)搭建的k8s集群的方法 。 掌握兩種技能: 1.分清哪些是k8s集群需要重點(diǎn)關(guān)注的信息 2.如何量身定制k8s集群的shell腳本,讓您的集群如虎添翼的安全、穩(wěn)定、強(qiáng)大 提示:有些朋友的環(huán)境與我的環(huán)境不一樣,執(zhí)行可能顯示不一樣,要

    2023年04月08日
    瀏覽(24)
  • K8S系列文章之 Shell批處理腳本應(yīng)用

    1、批處理腳本介紹 命令批處理腳本:/usr/shell/all.sh 文件批量分發(fā)腳本:/usr/shell/scp.sh 2、 批處理命令腳本原理 讀取/usr/shell/hosts文件中的ip列表 使用$*接收腳本所有參數(shù) for循環(huán)遍歷hosts文件中的ip地址 通過(guò)ssh?host?cmd 實(shí)現(xiàn)目的ip命令 eval命令判斷并打印命令執(zhí)行結(jié)果 for循環(huán)遍歷

    2024年02月13日
    瀏覽(26)
  • k8s集群生產(chǎn)環(huán)境的問(wèn)題處理

    k8s集群生產(chǎn)環(huán)境的問(wèn)題處理

    2 k8s上的服務(wù)均無(wú)法訪問(wèn) 執(zhí)行命令 kubectl get pods -ALL ,k8s集群中的服務(wù)均是running狀態(tài) 1 kuboard 網(wǎng)頁(yè)無(wú)法訪問(wèn) kuboard無(wú)法通過(guò)瀏覽器訪問(wèn),但是查看端口是被占用的

    2024年02月12日
    瀏覽(24)
  • 輕量級(jí) K8S 環(huán)境、本地 K8S 環(huán)境Minikube,一鍵使用 (史上最全)

    輕量級(jí) K8S 環(huán)境、本地 K8S 環(huán)境Minikube,一鍵使用 (史上最全)

    文章很長(zhǎng),而且持續(xù)更新,建議收藏起來(lái),慢慢讀! 瘋狂創(chuàng)客圈總目錄 博客園版 為您奉上珍貴的學(xué)習(xí)資源 : 免費(fèi)贈(zèng)送 : 《尼恩Java面試寶典》 持續(xù)更新+ 史上最全 + 面試必備 2000頁(yè)+ 面試必備 + 大廠必備 +漲薪必備 免費(fèi)贈(zèng)送 經(jīng)典圖書: 《Java高并發(fā)核心編程(卷1)加強(qiáng)版》

    2024年02月03日
    瀏覽(22)
  • 超詳細(xì)~使用shell腳本完成用kubeadm工具對(duì)k8s集群的搭建

    目錄 1.環(huán)境規(guī)劃 2.my_ssh.sh腳本: 1.修改/etc/hosts文件部分: 2.生成本地ssh公鑰部分: 3.復(fù)制ssh公鑰部分: 4.復(fù)制本地的hosts文件部分: 5.完整腳本: 3.my_env.sh腳本: 1.嘗試連接主機(jī)部分: 2.升級(jí)內(nèi)核部分 3.關(guān)閉防火墻,禁止使用selinux部分: 4.配置chrony服務(wù)器部分: 5.禁用swap分區(qū)

    2023年04月22日
    瀏覽(24)
  • 【shell】利用k9s和config文件進(jìn)入k8s集群腳本

    【shell】利用k9s和config文件進(jìn)入k8s集群腳本

    1、需要自行安裝k9s 2、config文件放在home的.kube隱藏文件夾下 使用效果:

    2024年04月22日
    瀏覽(25)
  • Spring Cloud 使用 k8s 作為注冊(cè)中心 開發(fā)環(huán)境 和 生產(chǎn)環(huán)境

    Spring Cloud 使用 k8s 作為注冊(cè)中心 開發(fā)環(huán)境 和 生產(chǎn)環(huán)境

    因?yàn)?k8s 本身就有擁有注冊(cè)中心,和配置中心的功能。如果還是用 Nacos、Eureka、Consul 之類的注冊(cè)中心組件,就有點(diǎn)冗余了。當(dāng)然這些組件還是可以繼續(xù)用的。 所以,本教程,教授 Spring Cloud 使用 k8s 的注冊(cè)中心。在開發(fā)環(huán)境和生產(chǎn)環(huán)境 的教程! 下面以一個(gè)最簡(jiǎn)單的 服務(wù)消費(fèi)

    2024年02月15日
    瀏覽(112)
  • K8s 生產(chǎn)環(huán)境問(wèn)題匯總及解決方案(持續(xù)更新 ing)

    K8s 生產(chǎn)環(huán)境問(wèn)題匯總及解決方案(持續(xù)更新 ing)

    目錄 一、前端頁(yè)面顯示?503 Service Temporarily Unavailable 問(wèn)題背景 解決方案 原理 二、Dockfile 構(gòu)建鏡像失敗:When using COPY with more than one source file, the destination must be a directory and end with a /? 問(wèn)題背景 解決方案 原理 三、前端頁(yè)面顯示 502 Bad Gateway 問(wèn)題背景? 解決方案 原理 時(shí)間:2

    2024年02月02日
    瀏覽(21)
  • 使用kubeadm搭建生產(chǎn)環(huán)境的多master節(jié)點(diǎn)k8s高可用集群

    使用kubeadm搭建生產(chǎn)環(huán)境的多master節(jié)點(diǎn)k8s高可用集群

    環(huán)境centos 7.9 目錄 ?1.對(duì)安裝 k8s 的節(jié)點(diǎn)進(jìn)行初始化配置 2 通過(guò) keepalived+nginx 實(shí)現(xiàn) k8s apiserver 節(jié)點(diǎn)高可用 3、kubeadm 初始化 k8s 集群 4.擴(kuò)容 k8s 控制節(jié)點(diǎn),把 xuegod62 加入到 k8s 集群 5、擴(kuò)容 k8s 控制節(jié)點(diǎn),把 xuegod64 加入到 k8s 集群 6、擴(kuò)容 k8s 集群-添加第一個(gè)工作節(jié)點(diǎn) ?7、安裝 ku

    2024年02月16日
    瀏覽(26)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包