在主機或者遠端存取的筆電上安裝kubectl命令列工具
rancher-cluster.yml(RKE組態檔)
通過RKE建立kubernetes叢集,需要預先設定rancher-cluster.yml組態檔,通過這個組態檔安裝kubernetes叢集,同時可以指定kubernetes的版本。
RKE安裝kubernetes叢集後,會在RKE二進位制檔案相同目錄下生成kube_config_rancher-cluster.yml檔案,複製該組態檔到~/.kube/目錄,這個檔案在升級叢集時會用的到。
[root@rancher home]# rke config --list-version -all
v1.16.2-rancher1-1
v1.14.8-rancher1-1
v1.15.5-rancher1-2
如果版本太老,是無法安裝新版rancher的,還需要先升級RKE,下載rkev1.3.8版本,對基礎叢集的k8s進行升級
./rke_linux-amd64-1.3.8 up --config=./rke2019/rancher-cluster.yml
升級之後,可以在基礎叢集上看一下版本
kubectl get nodes
NAME STATUS ROLES AGE VERSION
192.168.0.204 Ready controlplane,etcd,worker 11h v1.18.20
在安裝了kubectl命令列工具的電腦上開啟終端
切換路徑到RKE二進位制檔案所在目錄,確認rancher-cluster.yml在同一路徑下
kubectl set env deployment/rancher -n cattle-system GODEBUG="x509ignoreCN=0"
export GODEBUG=x509ignoreCN=0
kubectl set env deployment/cattle-cluster-agent -n cattle-system GODEBUG="x509ignoreCN=0"
kubectl set env daemonset/cattle-node-agent -n cattle-system GODEBUG="x509ignoreCN=0"
替換<SNAPSHOT.db>為您喜歡的快照名稱(例如upgrade.db),預設位置:/opt/rke/etcd-snapshots/,注意需要修改這個目錄下的檔案許可權,否則vonechain使用者無權存取它,可以返回root賬號,進行以chown vonechain:root /opt/rke/etcd-snapshots
# Linux
rke etcd snapshot-save --name 20220310.bak --config rancher-cluster.yml
# 恢復
rke etcd snapshot-restore --name 20220222.bak --config rancher-cluster.yml
# restore: 指定用於恢復的快照檔案
# -data-dir:恢復到哪個目錄
RKE獲取每個etcd節點上的執行快照,儲存快照檔案當前到etcd節點的/opt/rke/etcd-snapshots目錄下.
如果原來是rancherv2.3.3,對應的rke版本比較低,只能先升級到k8s v1.18.20-rancher1-3;再高的版本,其它業務叢集的k8s無法平滑過渡
rancher-cluster.yml檔案下如
nodes:
- address: 192.168.0.204
internal_address: 192.168.0.204
user: vonechain
role: [controlplane,worker,etcd]
kubernetes_version: "v1.18.20-rancher1-3"
services:
etcd:
snapshot: true
creation: 6h
retention: 24h
輸入以下命令進行升級,注意升級的程式碼根據版本的不同,可以有所不同:
# rancher v2.5.8的升級到2.6.3如下
kubectl --kubeconfig=kube_config_rancher-cluster.yml set image deployment/rancher rancher=rancher/rancher:v2.6.3 -n cattle-system
替換<VERSION_TAG>為想要升級到的版本,可用的映象版本可查閱DockerHub。
說明:set image用來更新映象,上面的程式碼更新Deployment型別下面的rancher部署專案,容器是rancher,更新一個新的映象rancher/rancher:v2.6.3 。
/etc/kubernetes/ssl/kubecfg-kube-node.yaml這個是rancher為當前節點生產的k8s叢集檔案
kubectl set image deployment/cattle-cluster-agent cluster-register=rancher/rancher-agent:v2.6.3 -n cattle-system
kubectl set image DaemonSet/cattle-node-agent agent=rancher/rancher-agent:v2.6.3 -n cattle-system
升級之後,業務叢集會自動下載對應的rancher映象,等待高版本映象啟動即可
之前是1.17,現在想升級到1.20,1.17在儀表盤裡沒有顯示cpu和記憶體的使用情況,升級到1.20之後,在儀表表裡,就可以看到實時的CPU和記憶體使用情況了,這個還是挺必要的。