iscsid守護進程位置不變的升級
下列情況使用該方案升級:
升級前版本安裝時中沒設置參數--iscsi-on-host(1.5.1之前版本不能設置該參數),升級后版本也沒有設置該參數。
升級前升級后版本都設置了參數--iscsi-on-host。
升級步驟
更新驅動鏡像:請根據逐臺導入鏡像的方式或docker私倉導入鏡像的方式章節的步驟,導入最新安裝包的驅動。
在升級版本的對應文件下修改HBlock相關配置:
修改deploy/csi-plugin-conf/csi-configMap.yaml,確保與升級前版本的配置一致。
修改deploy/csi-plugin-conf/csi-secret.yaml,確保與升級前版本的配置一致。
修改deploy/csi-plugin-conf/csi-secret-decrypt.yaml ,確保與升級前版本的配置一致。
在升級版本的/deploy下執行下列命令升級:
升級前版本安裝時中沒設置參數--iscsi-on-host(1.5.1之前版本不能設置該參數),升級后版本也沒有設置該參數,執行下列命令:
./deploy.sh升級前升級后版本都設置了參數--iscsi-on-host,執行下列命令:
./deploy.sh [ --iscsi-on-host ] [ --driver-name=driver_name ] [ --driver-namespace=driver_namespace ]說明
如果升級前--iscsi-on-host打開狀態,則
--iscsi-on-host:是必選參數。
--driver-name:升級前版本的驅動名稱,如果升級前版本的驅動名稱為默認值stor.csi.k8s.io,可以不填此參數。
--driver-namespace:升級前版本綁定的Kubernetes命名空間,如果升級前版本綁定的Kubernetes命名空間為默認值default,此參數可以不填寫。
iscsid守護進程移動到宿主機的升級
下列情況使用該方案升級:升級前版本安裝時中沒設置參數--iscsi-on-host(1.5.1之前版本不能設置該參數),升級后版本設置設置參數--iscsi-on-host。
升級步驟
暫停CSI相關業務,以及存量計算節點POD所有業務,留出升級時間。執行下列命令后,禁止用戶執行創建PV、刪除PV、POD掛載存儲、卸載POD等CSI相關的業務。
kubectl delete daemonset csi-storplugin-node在Kubernetes所有的slave節點宿主機安裝iSCSI工具,并配置/etc/iscsi/iscsid.conf。
安裝iSCSI工具。
如果操作系統是CentOS/RHEL,請安裝iscsi-initiator-utils,安裝命令如下:
yum -y install iscsi-initiator-utils如果操作系統是Ubuntu/Debian,安裝命令如下:
apt install open-iscsi
修改/etc/iscsi/iscsid.conf配置文件。
#如需啟用iscsi target遷移自動恢復, 那么得將iscsid.safe_logout設置為No iscsid.safe_logout = No在各宿主機啟動iSCSI進程。
systemctl enable iscsid systemctl restart iscsid # 確認iSCSI進程狀態正常 systemctl status iscsid
在Kubernetes所有的slave節點宿主機配置MPIO。
安裝 MPIO。
說明
如果已安裝MPIO,忽略此步驟。
對于CentOS:
yum -y install device-mapper-multipath device-mapper-multipath-libs對于Ubuntu:
apt install multipath-tools
配置 MPIO。
復制 /usr/share/doc/device-mapper-multipath-X.Y.Z/multipath.conf(其中X.Y.Z為multipath的實際版本號,請根據實際情況查找multipath.conf)到/etc/multipath.conf。
在/etc/multipath.conf中增加如下配置:
注意
配置文件multipath.conf中,如果multipath部分與devices部分中有相同參數,multipath中的參數值會覆蓋devices中的參數值。為了正常使用HBlock卷,需要刪除multipath中的與下列字段相同的參數。
如果升級前修改過stor-multipath-conf(可通過kubectl describe cm stor-multipath-conf查看文件內容),且與下列文件不一致,請務必聯系天翼云客服后再做操作,否則可能會引起升級失敗或者異常。
defaults { user_friendly_names yes find_multipaths yes uid_attribute "ID_WWN" } devices { device { vendor "CTYUN" product "iSCSI LUN Device" path_grouping_policy failover path_checker tur path_selector "round-robin 0" hardware_handler "1 alua" rr_weight priorities no_path_retry queue prio alua } }
重啟multipathd服務。
對于CentOS:
systemctl restart multipathd systemctl enable multipathd對于Ubuntu:
systemctl restart multipath-tools.service
刪除多余的配置文件:
kubectl delete cm stor-multipath-conf -n namespace更新驅動鏡像:請根據逐臺導入鏡像的方式或docker私倉導入鏡像的方式章節的步驟,導入最新安裝包的驅動。
在升級版本的對應文件下修改HBlock相關配置:
修改deploy/csi-plugin-conf/csi-configMap.yaml,確保與升級前版本的配置一致。
修改deploy/csi-plugin-conf/csi-secret.yaml,確保與升級前版本的配置一致。
修改deploy/csi-plugin-conf/csi-secret-decrypt.yaml,確保與升級前版本的配置一致。
在升級版本的/depoly目錄下執行下列命令升級:
./deploy.sh --iscsi-on-host [ --driver-name=driver_name ] [ --driver-namespace=driver_namespace ]說明
- --iscsi-on-host:是必選參數。
- --driver-name:升級前版本的驅動名稱,如果升級前版本的驅動名稱為默認值stor.csi.k8s.io,可以不填此參數。
- --driver-namespace:升級前版本綁定的Kubernetes命名空間,如果升級前版本綁定的Kubernetes命名空間為默認值default,此參數可以不填寫。
升級后檢查:
進入各CSI POD,執行ps -ef,確認容器內沒有進程:multipathd -f 、iscsid -f。
可以在宿主機啟動樣例POD,進行基礎流程測試,確認功能正常。
重啟Kubernetes所有的slave宿主機節點,確認各存量POD能正確啟動。(如果不驗證重啟恢復的場景,可跳過這步。)