RKE 升级kubernetes 版本
?
公司使用的kubernetes測試環境,已經很久沒有升級了,1.16.3版本已經很舊了,需要升級到1.20.6進行測試。
先決條件#
- 保證cluster.yml缺少system_images的說明和配置。如果您使用的是RKE 不支持的 Kubernetes 版本,則要保證只在system——images中說明 Kubernetes 版本號。詳情請參考Kubernetes 版本優先級。
-
保證工作目錄中有管理Kubernetes 集群狀態所需的文件,不同版本的 RKE 使用不同的文件管理 Kubernetes 集群狀態。
-
RKE v0.2.0 及更新版本
RKE v0.2.0 及以上的版本使用cluster.rkestate文件管理集群狀態。cluster.rkestate文件中含有集群的當前狀態,包括 RKE 配置和證書等信息。
這個文件和cluster.yml位于同一目錄下。
cluster.rkestate文件非常重要,控制集群和升級集群的時候都需要用到這個文件,請妥善保管該文件。
-
RKE v0.2.0 之前的版本
請保證工作目錄中含有kube_config_cluster.yml文件
RKE 以密文的方式保存 Kubernetes 集群狀態。編輯集群狀態時,RKE 拉取密文,變更集群狀態,然后將變更后的狀態以密文的方式保存到kube_config_cluster.yml文件中。如果您使用的是 RKE v0.2.0 之前的版本,請妥善保管該文件。
-
| kubernetes | 當前版本 | 期望升級的版本 |
| 版本 | 1.16.3 | 1.20.6 |
?
kubernetes集群情況
| 節點 | IP | docker版本 | 系統版本 |
| master | 10.5.38.228 | 18.9.6 | centos7.6 |
| master | 10.5.38.239 | 18.9.6 | centos7.6 |
| master | 10.5.38.140 | 18.9.6 | centos7.6 |
| worker | 10.5.38.157 | 18.9.6 | centos7.6 |
| worker | 10.5.38.223 | 18.9.6 | centos7.6 |
?
查看當前kubernetes 集群版本和kubectl版本
[rancher@xr-prelocus ~]$ kubectl version Client Version: version.Info{Major:"1", Minor:"16", GitVersion:"v1.16.3", GitCommit:"b3cbbae08ec52a7fc73d334838e18d17e8512749", GitTreeState:"clean", BuildDate:"2019-11-13T11:23:11Z", GoVersion:"go1.12.12", Compiler:"gc", Platform:"linux/amd64"} The connection to the server localhost:8080 was refused - did you specify the right host or port?檢查當前RKE版本及支持的kubernetes 版本
centos@xr-prelocus:[/home/centos]rke --version rke version v1.0.0 centos@xr-prelocus:[/home/centos]rke config --list-version --all v1.14.9-rancher1-1 v1.15.6-rancher1-2 v1.16.3-rancher1-1?由于當前的RKE版本不支持1.20.6版本,需要到
https://github.com/rancher/rke/releases下載支持1.20.6版本的rke
同時需要到https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.20.md#server-binaries-1下載kubernetes的客戶端命令行工具kubectl
操作命令如下
centos@xr-prelocus:[/home/centos]ls rke_linux-amd64 (3) centos@xr-prelocus:[/home/centos]mv rke_linux-amd64\ \(3\) rke centos@xr-prelocus:[/home/centos]ls rke //添加執行權限 centos@xr-prelocus:[/home/centos]chmod +x rke centos@xr-prelocus:[/home/centos]ls rke //提升用戶權限 centos@xr-prelocus:[/home/centos]sudo -i //備份原RKE命令行 [root@xr-prelocus centos]# mv /bin/rke /bin/rke.bak //移動RKE到/bin目錄 [root@xr-prelocus centos]# mv rke /bin/ [root@xr-prelocus centos]# exit exit //退出root賬戶,查看rke版本和支持的kubernetes版本 centos@xr-prelocus:[/home/centos]rke --version rke version v1.2.8 centos@xr-prelocus:[/home/centos]rke config --list-version --all v1.19.10-rancher1-1 v1.18.18-rancher1-2 v1.17.17-rancher2-3 v1.20.6-rancher1-1檢查三個文件是否存在cluster.yml??cluster.rkestate?kube_config_cluster.yml?
[rancher@xr-prelocus ~]$ ls cluster.rkestate kube_config_cluster.yml cluster.yml cluster.rkestate cluster.yml kube_config_cluster.yml修改cluster.yml 文件kubernetes的版本為1.20.6
開始升級
?
[rancher@xr-prelocus ~]$ rke up
INFO[0000] Running RKE version: v1.2.8
INFO[0000] Initiating Kubernetes cluster
INFO[0000] [certificates] GenerateServingCertificate is disabled, checking if there are unused kubelet certificates
INFO[0000] [certificates] Generating admin certificates and kubeconfig
INFO[0000] Successfully Deployed state file at [./cluster.rkestate]
INFO[0000] Building Kubernetes cluster
INFO[0000] [dialer] Setup tunnel for host [10.5.38.223]
INFO[0000] [dialer] Setup tunnel for host [10.5.38.239]
INFO[0000] [dialer] Setup tunnel for host [10.5.38.140]
INFO[0000] [dialer] Setup tunnel for host [10.5.38.157]
INFO[0000] [dialer] Setup tunnel for host [10.5.38.52]
INFO[0000] [dialer] Setup tunnel for host [10.5.38.228]
INFO[0001] [network] No hosts added existing cluster, skipping port check
INFO[0001] [certificates] Deploying kubernetes certificates to Cluster nodes
INFO[0001] Checking if container [cert-deployer] is running on host [10.5.38.223], try #1
INFO[0001] Checking if container [cert-deployer] is running on host [10.5.38.157], try #1
INFO[0001] Checking if container [cert-deployer] is running on host [10.5.38.52], try #1
INFO[0001] Checking if container [cert-deployer] is running on host [10.5.38.228], try #1
INFO[0001] Checking if container [cert-deployer] is running on host [10.5.38.239], try #1
INFO[0001] Checking if container [cert-deployer] is running on host [10.5.38.140], try #1
INFO[0001] Pulling image [rancher/rke-tools:v0.1.74] on host [10.5.38.157], try #1
INFO[0001] Pulling image [rancher/rke-tools:v0.1.74] on host [10.5.38.223], try #1
INFO[0001] Pulling image [rancher/rke-tools:v0.1.74] on host [10.5.38.52], try #1
INFO[0001] Pulling image [rancher/rke-tools:v0.1.74] on host [10.5.38.140], try #1
INFO[0001] Pulling image [rancher/rke-tools:v0.1.74] on host [10.5.38.239], try #1
INFO[0001] Pulling image [rancher/rke-tools:v0.1.74] on host [10.5.38.228], try #1
INFO[0006] Pulling image [rancher/rke-tools:v0.1.74] on host [10.5.38.157], try #1
INFO[0006] Pulling image [rancher/rke-tools:v0.1.74] on host [10.5.38.140], try #1
INFO[0026] Image [rancher/rke-tools:v0.1.74] exists on host [10.5.38.239]
INFO[0026] Starting container [cert-deployer] on host [10.5.38.239], try #1
INFO[0027] Checking if container [cert-deployer] is running on host [10.5.38.239], try #1
INFO[0031] Image [rancher/rke-tools:v0.1.74] exists on host [10.5.38.52]
INFO[0031] Starting container [cert-deployer] on host [10.5.38.52], try #1
INFO[0031] Checking if container [cert-deployer] is running on host [10.5.38.52], try #1
INFO[0032] Checking if container [cert-deployer] is running on host [10.5.38.239], try #1
INFO[0032] Removing container [cert-deployer] on host [10.5.38.239], try #1
INFO[0033] Image [rancher/rke-tools:v0.1.74] exists on host [10.5.38.140]
INFO[0035] Image [rancher/rke-tools:v0.1.74] exists on host [10.5.38.157]
INFO[0036] Checking if container [cert-deployer] is running on host [10.5.38.52], try #1
INFO[0036] Removing container [cert-deployer] on host [10.5.38.52], try #1
INFO[0037] Image [rancher/rke-tools:v0.1.74] exists on host [10.5.38.228]
INFO[0037] Starting container [cert-deployer] on host [10.5.38.228], try #1
INFO[0037] Image [rancher/rke-tools:v0.1.74] exists on host [10.5.38.223]
INFO[0037] Starting container [cert-deployer] on host [10.5.38.223], try #1
持續不到10分鐘左右就升級完成
INFO[1057] [worker] Now checking status of node 10.5.38.223, try #1 INFO[1057] [worker] Successfully upgraded Worker Plane.. INFO[1057] Image [rancher/rke-tools:v0.1.74] exists on host [10.5.38.52] INFO[1057] Image [rancher/rke-tools:v0.1.74] exists on host [10.5.38.223] INFO[1057] Image [rancher/rke-tools:v0.1.74] exists on host [10.5.38.140] INFO[1057] Image [rancher/rke-tools:v0.1.74] exists on host [10.5.38.157] INFO[1057] Image [rancher/rke-tools:v0.1.74] exists on host [10.5.38.239] INFO[1057] Starting container [rke-log-cleaner] on host [10.5.38.52], try #1 INFO[1057] Starting container [rke-log-cleaner] on host [10.5.38.223], try #1 INFO[1057] Image [rancher/rke-tools:v0.1.74] exists on host [10.5.38.228] INFO[1058] Starting container [rke-log-cleaner] on host [10.5.38.239], try #1 INFO[1058] Starting container [rke-log-cleaner] on host [10.5.38.157], try #1 INFO[1058] [cleanup] Successfully started [rke-log-cleaner] container on host [10.5.38.223] INFO[1058] Removing container [rke-log-cleaner] on host [10.5.38.223], try #1 INFO[1058] Starting container [rke-log-cleaner] on host [10.5.38.228], try #1 INFO[1058] [cleanup] Successfully started [rke-log-cleaner] container on host [10.5.38.52] INFO[1058] [cleanup] Successfully started [rke-log-cleaner] container on host [10.5.38.239] INFO[1058] Removing container [rke-log-cleaner] on host [10.5.38.239], try #1 INFO[1058] [remove/rke-log-cleaner] Successfully removed container on host [10.5.28.223] INFO[1058] Starting container [rke-log-cleaner] on host [10.5.38.140], try #1 INFO[1058] [cleanup] Successfully started [rke-log-cleaner] container on host [10.5.38.157] INFO[1058] Removing container [rke-log-cleaner] on host [10.5.38.157], try #1 INFO[1058] Removing container [rke-log-cleaner] on host [10.5.38.52], try #1 INFO[1058] [remove/rke-log-cleaner] Successfully removed container on host [10.5.38.52] INFO[1058] [remove/rke-log-cleaner] Successfully removed container on host [10.5.38.239] INFO[1059] [cleanup] Successfully started [rke-log-cleaner] container on host [10.5.38.140] INFO[1059] Removing container [rke-log-cleaner] on host [10.5.38.140], try #1 INFO[1059] [remove/rke-log-cleaner] Successfully removed container on host [10.5.38.157] INFO[1059] [cleanup] Successfully started [rke-log-cleaner] container on host [10.5.38.228] INFO[1059] Removing container [rke-log-cleaner] on host [10.5.38.228], try #1 INFO[1059] [remove/rke-log-cleaner] Successfully removed container on host [10.5.38.140] INFO[1059] [remove/rke-log-cleaner] Successfully removed container on host [10.5.38.228] INFO[1059] [sync] Syncing nodes Labels and Taints INFO[1059] [sync] Successfully synced nodes Labels and Taints INFO[1059] [network] Setting up network plugin: calico INFO[1059] [addons] Saving ConfigMap for addon rke-network-plugin to Kubernetes INFO[1060] [addons] Successfully saved ConfigMap for addon rke-network-plugin to Kubernetes INFO[1060] [addons] Executing deploy job rke-network-plugin INFO[1100] [addons] Setting up coredns INFO[1100] [addons] Saving ConfigMap for addon rke-coredns-addon to Kubernetes INFO[1100] [addons] Successfully saved ConfigMap for addon rke-coredns-addon to Kubernetes INFO[1100] [addons] Executing deploy job rke-coredns-addon INFO[1110] [addons] CoreDNS deployed successfully INFO[1110] [dns] DNS provider coredns deployed successfully INFO[1110] [addons] Setting up Metrics Server INFO[1110] [addons] Saving ConfigMap for addon rke-metrics-addon to Kubernetes INFO[1110] [addons] Successfully saved ConfigMap for addon rke-metrics-addon to Kubernetes INFO[1110] [addons] Executing deploy job rke-metrics-addon INFO[1120] [addons] Metrics Server deployed successfully INFO[1120] [ingress] Setting up nginx ingress controller INFO[1120] [addons] Saving ConfigMap for addon rke-ingress-controller to Kubernetes INFO[1120] [addons] Successfully saved ConfigMap for addon rke-ingress-controller to Kubernetes INFO[1120] [addons] Executing deploy job rke-ingress-controller INFO[1130] [ingress] ingress controller nginx deployed successfully INFO[1130] [addons] Setting up user addons INFO[1130] [addons] no user addons defined INFO[1130] Finished building Kubernetes cluster successfully請確認升級最后一樣是“Finished building Kubernetes cluster successfully?”字樣,表明升級完成。
使用kubernetes配套客戶端kubectl
centos@xr-prelocus:[/home/centos]ls kubectl //添加執行權限 centos@xr-prelocus:[/home/centos]chmod +x kubectl centos@xr-prelocus:[/home/centos]ls kubectl centos@xr-prelocus:[/home/centos]sudo -i //備份舊的,使用新的 root@xr-prelocus:[/root]which kubectl /bin/kubectl root@xr-prelocus:[/root]mv /bin/kubectl /bin/kubectl.bak root@xr-prelocus:[/root]mv /home/centos/kubectl /bin/ //查看kubectl版本 [rancher@xr-prelocus ~]$ kubectl version Client Version: version.Info{Major:"1", Minor:"20", GitVersion:"v1.20.6", GitCommit:"8a62859e515889f07e3e3be6a1080413f17cf2c3", GitTreeState:"clean", BuildDate:"2021-04-15T03:28:42Z", GoVersion:"go1.15.10", Compiler:"gc", Platform:"linux/amd64"} Server Version: version.Info{Major:"1", Minor:"20", GitVersion:"v1.20.6", GitCommit:"8a62859e515889f07e3e3be6a1080413f17cf2c3", GitTreeState:"clean", BuildDate:"2021-04-15T03:19:55Z", GoVersion:"go1.15.10", Compiler:"gc", Platform:"linux/amd64"} [rancher@xr-prelocus ~]$ kubectl get nodes NAME STATUS ROLES AGE VERSION 10.5.38.140 Ready controlplane,etcd,worker 436d v1.20.6 10.5.38.157 Ready worker 427d v1.20.6 10.5.38.223 Ready worker 341d v1.20.6 10.5.38.228 Ready controlplane,etcd,worker 478d v1.20.6 10.5.38.239 Ready controlplane,etcd,worker 287d v1.20.6 10.5.38.52 Ready worker 341d v1.20.6 驗證版本為1.20.6到此,RKE升級kubernetes成功完成,如有疑問請聯系。
總結
以上是生活随笔為你收集整理的RKE 升级kubernetes 版本的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 云上主机安全防护
- 下一篇: Python+Selenium:初步使用