k8s kubernetes批量操作服務shell

主要為集群管理時,希望批量停止服務和恢復服務获茬。在多集群時(多中心,例如主備中心),例如集群A中服務a有3個副本雷绢,集群B中服務a有2個副本媚朦,當集群A停止時,集群B的服務a可以快速擴容到5個副本吹埠,集群A恢復時,集群B的服務a可以恢復到2個副本。

保存服務和副本數(shù)到centerData文件

#!/bin/bash

# 當前中心服務副本情況实蓬,將要保存到文件
currentFile="centerData"

> $currentFile


# 按照label獲取服務
# 將要停止下面標簽的服務,多個命名空間用空格隔開
label="app=test1 app=test2"


echo "將要記錄的標簽為:" $label
echo $(date) "將要記錄當前中心服務副本情況到:" $currentFile
for l in $label
do
    kubectl  get deploy -l $l  -A -o go-template='{{range .items}}{{ .metadata.namespace }} {{.metadata.name}} {{ .spec.replicas }}{{ "\n" }}{{end}}' >>$currentFile
done


<!--# 按照命名空間獲取服務-->
<!--# 將要停止下面命名空間的服務吊履,多個命名空間用空格隔開-->
<!--nss="default ns1 ns2"-->


<!--echo "將要記錄的命名空間為:" $nss-->
<!--echo $(date) "將要記錄當前集群服務副本情況到:" $currentFile-->
<!--for ns in $nss-->
<!--do-->
<!--    kubectl  get deploy -n $ns  -o go-template='{{range .items}}{{ .metadata.namespace }} {{.metadata.name}} {{ .spec.replicas }}{{ "\n" }}{{end}}' >>$currentFile-->
<!--done-->

# 去掉不需要的服務
sed -i '/kubectl/d' $currentFile

對比多中心服務安皱,如果由不同服務異常推出

# 當前中心服務副本情況,將要保存到文件
currentFile="centerData"
# 將要合并的集群的服務副本情況文件
addFile="subcenterData"
# 雙中心總共服務副本情況文件
mergeFile="mergeData"

if [ ! -f $addFile ]; then
echo "無其他中心副本情況文件"
exit 0
fi

# 進行雙中心文件比較艇炎,確保服務完全相同
cat $currentFile| awk '{print($1 "/" $2)}' | sort | uniq | sort > c_t
cat $addFile | awk '{print($1 "/" $2)}' | sort | uniq | sort > a_t

compare=`comm -3 c_t a_t`
if [[ -n $compare ]]; then
  echo $(date) "兩個中心服務有差別:" $compare
  exit 1
fi

echo $(date) "將要記錄雙中心副本情況到:" $mergeFile
> $mergeFile
while read cfline
do
   cf_line=($cfline)
   cf_ns=${cf_line[0]}
   cf_service=${cf_line[1]}
   cf_replicas=${cf_line[2]}

   while read afline
   do
     af_line=($afline)
     af_ns=${af_line[0]}
     af_service=${af_line[1]}
     af_replicas=${af_line[2]}
     if [[ $af_ns == $cf_ns ]] && [[ $af_service == $cf_service ]]; then
        let merge_replicas=$cf_replicas+$af_replicas
        echo $cf_ns $cf_service $merge_replicas >> $mergeFile
     fi
   done < $addFile
done < $currentFile

上面的腳本會為每個集群中心生成如下格式的文件
然后
按照如下格式文件起停服務

格式為<namesapce> <deploymentName> <replicas>

default nginx-v1 1
default nginx-v2 2
default nginx-v3 3

停止服務

#!/bin/bash

file=$1
if [ $1 ]; then
  while read line
  do
    line=($line)
    ns=${line[0]}
    service=${line[1]} 
    kubectl  scale deployment -n $ns --replicas=0 $service
    echo $(date) "停止服務: " $ns $service
  done < $file
else
  echo "請給予參數(shù)文件"
fi

啟動服務

#!/bin/bash

file=$1
if [ $1 ]; then
  while read line
  do
    line=($line)
    ns=${line[0]}
    service=${line[1]} 
    replicas=${line[2]}
    kubectl  scale deployment -n $ns --replicas=$replicas $service
    echo $(date) "恢復服務: " $ns $service "副本數(shù):" $replicas
  done < $file
else
  echo "請給予參數(shù)文件"
fi
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末酌伊,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子缀踪,更是在濱河造成了極大的恐慌居砖,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,635評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件辜贵,死亡現(xiàn)場離奇詭異悯蝉,居然都是意外死亡,警方通過查閱死者的電腦和手機托慨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評論 3 399
  • 文/潘曉璐 我一進店門鼻由,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人厚棵,你說我怎么就攤上這事蕉世。” “怎么了婆硬?”我有些...
    開封第一講書人閱讀 168,083評論 0 360
  • 文/不壞的土叔 我叫張陵狠轻,是天一觀的道長。 經(jīng)常有香客問我彬犯,道長向楼,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,640評論 1 296
  • 正文 為了忘掉前任谐区,我火速辦了婚禮湖蜕,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘宋列。我一直安慰自己昭抒,他們只是感情好,可當我...
    茶點故事閱讀 68,640評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著灭返,像睡著了一般盗迟。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上熙含,一...
    開封第一講書人閱讀 52,262評論 1 308
  • 那天罚缕,我揣著相機與錄音,去河邊找鬼怎静。 笑死怕磨,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的消约。 我是一名探鬼主播,決...
    沈念sama閱讀 40,833評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼员帮,長吁一口氣:“原來是場噩夢啊……” “哼或粮!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起捞高,我...
    開封第一講書人閱讀 39,736評論 0 276
  • 序言:老撾萬榮一對情侶失蹤氯材,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后硝岗,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體氢哮,經(jīng)...
    沈念sama閱讀 46,280評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,369評論 3 340
  • 正文 我和宋清朗相戀三年型檀,在試婚紗的時候發(fā)現(xiàn)自己被綠了冗尤。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,503評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡胀溺,死狀恐怖裂七,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情仓坞,我是刑警寧澤背零,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站无埃,受9級特大地震影響徙瓶,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜嫉称,卻給世界環(huán)境...
    茶點故事閱讀 41,870評論 3 333
  • 文/蒙蒙 一侦镇、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧澎埠,春花似錦虽缕、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,340評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽伍派。三九已至,卻和暖如春剩胁,著一層夾襖步出監(jiān)牢的瞬間诉植,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,460評論 1 272
  • 我被黑心中介騙來泰國打工昵观, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留晾腔,地道東北人。 一個月前我還...
    沈念sama閱讀 48,909評論 3 376
  • 正文 我出身青樓啊犬,卻偏偏與公主長得像灼擂,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子觉至,可洞房花燭夜當晚...
    茶點故事閱讀 45,512評論 2 359

推薦閱讀更多精彩內(nèi)容