實際使用k8s中,如果使用RC啟動pod可以直接使用滾動更新進行pod版本的升級,但是我們使用的情況是在pod里面啟動有狀態的mysql服務,沒有和RC進行關聯,這樣更新的時候只能通過
更新pod的配置直接替換的形式進行更新了,以下腳本是我們進行更新的簡單腳本;
#!/bin/bash #命名空間 ns=$1 #pod名稱 podname=$2 #獲取pod yaml配置 /root/k8s.sh th --namespace=$ns get pods $podname -o yaml > "/tmp/$podname.yaml" #由於我的腳本有些特殊,需要刪除第一行,如果沒有就直接刪除 sed -i '1d' "/tmp/$podname.yaml" #替換配置中的鏡像地址 sed -i 's/vitess:.*/vitess:mysql57_20171102_1030_master/g' "/tmp/$podname.yaml" #替換修改后的腳本 /root/k8s.sh th --namespace=$ns replace -f "/tmp/$podname.yaml"