91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何進行遷移Rancher Server

發布時間:2021-10-12 13:45:25 來源:億速云 閱讀:269 作者:柒染 欄目:云計算

今天就跟大家聊聊有關如何進行遷移Rancher Server,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

Rancher提供兩種安裝方法,單節點和高可用安裝。單節點安裝允許用戶快速部署適用于短期開發測試為目的的安裝工作。高可用部署明顯更適合Rancher的長期使用。

在實際使用中可能會遇到需要將Rancher Server遷移到其他的節點或local集群去管理的情況。 雖然可以使用最簡單的import集群方式納管,但帶來的問題是后續無法做集群的管理和升級維護,而且一些namespace和project的關聯關系將會消失。所以本文主要介紹如何將Rancher Server遷移到其他節點或local集群。

主要針對3個場景去講解如何遷移Rancher Server:

  1. Rancher單節點安裝遷移至其他主機

  2. Rancher單節點安裝遷移至高可用安裝

  3. Rancher高可用安裝遷移至其他Local集群重要說明

  4. Rancher 官方文檔文檔中并沒有說明支持以下場景的遷移,本文檔只是利用一些Rancher和RKE現有的功能實現遷移。

  5. 如果您在此過程中遇到問題,則應該熟悉Rancher架構/故障排除

  6. 遷移非常危險,遷移前一定剛要做好備份,以免發生意外無法恢復

  7. 您應該熟悉單節點安裝和高可用安裝之間的體系結構差異

  8. 本文檔基于Rancher 2.4.x測試,其他版本操作可能會略有不同

  9. 本文檔主要講解Rancher Server的遷移,遷移過程中不會影響業務集群的使用

準備集群直連 kubeconfig 配置文件

默認情況下, Rancher UI 上復制的 kubeconfig 通過cluster agent代理連接到 kubernetes 集群。變更 Rancher Server會導致cluster agent無法連接 Rancher Server,從而導致kubectl無法使用 Rancher UI 上復制的 kubeconfig 去操作 kubernetes 集群。但可以使用-fqdn" target="_blank">kubectl --context <CLUSTER_NAME>-fqdn 直接連接kubernetes集群進行操作。所以在執行遷移之前,請準備好所有集群的直連 kubeconfig 配置文件。

Rancher v2.2.2以及之后的版本,可以直接從UI上下載kubeconfig文件。

Rancher v2.2.2之前的版本,請參考:恢復 kubectl 配置文件

場景1:Rancher單節點安裝遷移至其他主機

Rancher單節點安裝遷移至其他主機,只需要將舊集群Rancher Server容器的/var/lib/rancher目錄打包,然后替換到新Rancher Server對應的目錄,最后啟動新Rancher Server容器之后再更新agent相關配置即可。

1. Rancher 單節點安裝

提示:以下步驟創建用于演示遷移的 Rancher 單節點環境,如果您需要遷移正式環境可以跳過此步驟。

執行以下 docker 命令運行單節點 Rancher Server 服務

docker run -itd -p 80:80 -p 443:443 --restart=unless-stopped rancher/rancher:v2.4.3

等容器初始化完成后,通過節點 IP 訪問 Rancher Server UI,設置密碼并登錄。

如何進行遷移Rancher Server

如何進行遷移Rancher Server

2. 創建自定義集群

提示: 以下步驟創建用于演示的業務集群,用來驗證 Rancher 遷移后數據是否丟失,如果您需要遷移正式環境可以跳過此步驟。

登錄 Rancher UI 后,添加一個自定義集群

如何進行遷移Rancher Server

授權集群訪問地址設置為啟用,FQDN 和證書可以不用填寫。

如何進行遷移Rancher Server

注意:

這一步很關鍵。因為Rancher 遷移后,地址或者 token 或者證書的變更,將會導致 agent 無法連接 Rancher Server。遷移后,需要通過 kubectl 去編輯配置文件更新一些 agent 相關的參數。默認 UI 上的 kubeconfig文件是通過 agent 代理連接到 Kubernetes,如果 agent 無法連接 Rancher Server,則通過這個 kubeconfig 文件也無法訪問 Kubernetes 集群。開啟授權集群訪問地址功能會生成多個 Contexts Cluster,這些 Contexts Cluster 是直連 Kubernetes,不通過 agent 代理。如果業務集群未開啟這個功能,可以通過編輯集群來開啟這個功能。

點擊下一步,根據預先分配的節點角色選擇需要的角色,然后復制命令到主機終端執行。

如何進行遷移Rancher Server

集群部署完成后,進入集群首頁,點擊kubeconfig文件按鈕。在彈窗頁面中復制 kubeconfg 配置文件備用。

如何進行遷移Rancher Server

3.部署測試應用

部署一個nginx workload。再從應用商店部署一個測試應用。

如何進行遷移Rancher Server

4. 備份單節點Racher Server數據

docker create --volumes-from <RANCHER_CONTAINER_NAME> --name rancher-data-<DATE> rancher/rancher:<RANCHER_CONTAINER_TAG>

docker run  --volumes-from rancher-data-<DATE> -v $PWD:/backup:z busybox tar pzcvf /backup/rancher-data-backup-<RANCHER_VERSION>-<DATE>.tar.gz -C /var/lib rancher

詳細請參考Rancher中文官網單節點備份指南。

5. 將生成的rancher-data-backup-<RANCHER_VERSION>-<DATE>.tar.gz復制到新的Rancher Server節點

scp rancher-data-backup-<RANCHER_VERSION>-<DATE>.tar.gz root@<new_rancher_ip>:/opt/

6. 使用備份數據啟動新節點Rancher Server

如果原Rancher Server通過使用已有的自簽名證書或使用已有的可信證書安裝,遷移時,需要將證書一起復制到新Rancher Server,使用相同啟動命令掛載證書和備份數據啟動Rancher Server。

cd /opt && tar -xvz -f rancher-data-backup-<RANCHER_VERSION>-<DATE>.tar.gz

docker run -itd -p 80:80 -p 443:443 -v /opt/rancher:/var/lib/rancher --restart=unless-stopped rancher/rancher:v2.4.3

7. 更新Rancher Server IP或域名

注意:

如果您的環境使用自簽名證書或Let's Encrypt 證書,并且配置域名訪問Rancher Server。遷移之后集群狀態為Active,請直接跳到第9步去驗證集群。

此時訪問新的Rancher Server就可以看見已經被管理的Kubernetes集群了,但此時集群狀態是unavailable,因為agent還連的是舊Rancher Server所以需要更新agent信息。

如何進行遷移Rancher Server

  • 依次訪問全局 > 系統設置,頁面往下翻找到server-url文件

  • 單擊右側的省略號菜單,選擇升級

  • 修改server-url地址為新Rancher Server的地址

如何進行遷移Rancher Server

  • 保存

8. 更新agent配置

通過新域名或IP登錄 Rancher Server;

通過瀏覽器地址欄查詢集群ID, c/后面以c開頭的字段即為集群 ID,本例的集群ID為c-4wzvf

如何進行遷移Rancher Server

  • 訪問https://<新的server_url>/v3/clusters/<集群ID>/clusterregistrationtokens頁面;

  • 打開clusterRegistrationTokens頁面后,定位到data字段;找到insecureCommand字段,復制 YAML 連接備用;

如何進行遷移Rancher Server

可能會有多組"baseType": "clusterRegistrationToken",如上圖。這種情況以createdTS最大、時間最新的一組為準,一般是最后一組。

使用kubectl工具,通過前文中準備的直連kubeconfig配置文件和上面步驟中獲取的 YAML 文件,執行以下命令更新agent相關配置。

curl --insecure -sfL <替換為上面步驟獲取的YAML文件鏈接> | kubectl --context=xxx  apply -f -

關于--context=xxx說明請參考直接使用下游集群進行身份驗證。

9. 驗證

過一會,集群變為Active狀態,然后驗證我們之前部署的應用是否可用。

如何進行遷移Rancher Server

場景2:Rancher單節點安裝遷移至高可用安裝

從單個節點遷移到Rancher的高可用性安裝的過程可以概括為以下幾個步驟:

在Rancher單節點實例上:

  1. 備份Rancher單節點容器

  2. 備份etcd快照

  3. 停止舊的Rancher單節點容器

在RKE Local集群上:

  1. 使用RKE啟動Rancher Local集群

  2. 利用rke etcd snapshot-restore,將單節點備份的etcd快照恢復到RKE HA

  3. 在RKE Local集群中安裝Rancher

  4. 更新Local集群和業務集群的相關配置,使agent可以連接到正確的Rancher Server

在單節點Rancher Server上操作

1. Rancher 單節點安裝

提示: 以下步驟創建用于演示遷移的 Rancher 環境,如果您需要遷移正式環境可以跳過此步驟。

執行以下 docker 命令運行單節點 Rancher Server 服務

docker run -itd -p 80:80 -p 443:443 --restart=unless-stopped rancher/rancher:v2.4.3

等容器初始化完成后,通過節點 IP 訪問 Rancher Server UI,設置密碼并登錄。

如何進行遷移Rancher Server

如何進行遷移Rancher Server

2. 創建自定義集群

提示: 以下步驟創建用于演示的業務集群,用來驗證 Rancher 遷移后數據是否丟失,如果您需要遷移正式環境可以跳過此步驟。

登錄 Rancher UI 后,添加一個自定義集群

如何進行遷移Rancher Server

授權集群訪問地址設置為啟用,FQDN 和證書可以不用填寫。

如何進行遷移Rancher Server

注意: 這一步很關鍵。因為Rancher 遷移后,地址或者 token 或者證書的變更,將會導致 agent 無法連接 Rancher Server。遷移后,需要通過 kubectl 去編輯配置文件更新一些 agent 相關的參數。默認 UI 上的 kubeconfig文件是通過 agent 代理連接到 Kubernetes,如果 agent 無法連接 Rancher Server,則通過這個 kubeconfig 文件也無法訪問 Kubernetes 集群。開啟授權集群訪問地址功能會生成多個 Contexts Cluster,這些 Contexts Cluster 是直連 Kubernetes,不通過 agent 代理。如果業務集群未開啟這個功能,可以通過編輯集群來開啟這個功能。

點擊 下一步 ,根據預先分配的節點角色選擇需要的角色,然后復制命令到主機終端執行。

如何進行遷移Rancher Server

集群部署完成后,進入集群首頁,點擊kubeconfig文件按鈕。在彈窗頁面中復制 kubeconfg 配置文件備用。

如何進行遷移Rancher Server

3. 部署測試應用

部署一個nginx workload。再從應用商店部署一個測試應用。

如何進行遷移Rancher Server

4. 創建將單節點etcd快照

docker exec -it <RANCHER_CONTAINER_NAME> bash

root@78efdcbe08a6:/# cd /

root@78efdcbe08a6:/# ETCDCTL_API=3 etcdctl snapshot save single-node-etcd-snapshot

root@78efdcbe08a6:/# exit

docker cp <RANCHER_CONTAINER_NAME>:/single-node-etcd-snapshot .

5. 關閉單節點Rancher Server

docker stop <RANCHER_CONTAINER_NAME>

在RKE Local集群上

1. RKE部署Local Kubernetes 集群

根據RKE示例配置 創建 RKE 配置文件 cluster.yml:

nodes:
- address: 99.79.49.94
    internal_address: 172.31.13.209
    user: ubuntu
    role: [controlplane, worker, etcd]
- address: 35.183.174.120
    internal_address: 172.31.8.28
    user: ubuntu
    role: [controlplane, worker, etcd]
- address: 15.223.49.238
    internal_address: 172.31.0.199
    user: ubuntu
    role: [controlplane, worker, etcd]

執行 rke 命令創建 Local Kubernetes 集群

rke up --config cluster.yml

檢查 Kubernetes 集群運行狀態

使用kubectl檢查節點狀態,確認節點狀態為Ready

kubectl get nodes

NAME             STATUS   ROLES                      AGE   VERSION
15.223.49.238    Ready    controlplane,etcd,worker   93s   v1.17.6
35.183.174.120   Ready    controlplane,etcd,worker   92s   v1.17.6
99.79.49.94      Ready    controlplane,etcd,worker   93s   v1.17.6

檢查所有必需的 Pod 和容器是否狀況良好,然后可以繼續進行

kubectl get pods --all-namespaces

NAMESPACE       NAME                                      READY   STATUS      RESTARTS   AGE
ingress-nginx   default-http-backend-67cf578fc4-9vjq4     1/1     Running     0          67s
ingress-nginx   nginx-ingress-controller-8g7kq            1/1     Running     0          67s
ingress-nginx   nginx-ingress-controller-8jvsd            1/1     Running     0          67s
ingress-nginx   nginx-ingress-controller-lrt57            1/1     Running     0          67s
kube-system     canal-68j4r                               2/2     Running     0          100s
kube-system     canal-ff4qg                               2/2     Running     0          100s
kube-system     canal-wl9hd                               2/2     Running     0          100s
kube-system     coredns-7c5566588d-bhbmm                  1/1     Running     0          64s
kube-system     coredns-7c5566588d-rhjpv                  1/1     Running     0          87s
kube-system     coredns-autoscaler-65bfc8d47d-tq4gj       1/1     Running     0          86s
kube-system     metrics-server-6b55c64f86-vg7qs           1/1     Running     0          79s
kube-system     rke-coredns-addon-deploy-job-fr2bx        0/1     Completed   0          92s
kube-system     rke-ingress-controller-deploy-job-vksrk   0/1     Completed   0          72s
kube-system     rke-metrics-addon-deploy-job-d9hlv        0/1     Completed   0          82s
kube-system     rke-network-plugin-deploy-job-kf8bn       0/1     Completed   0          103s

2. 將生成的單節點etcd快照從Rancher單節點實例傳到RKE Local集群節點上

在RKE HA Local節點上創建一個/opt/rke/etcd-snapshots目錄,并將single-node-etcd-snapshot文件復制到該目錄:

mkdir -p /opt/rke/etcd-snapshots
scp root@<old_rancher_ip>:/root/single-node-etcd-snapshot /opt/rke/etcd-snapshots

3. 使用RKE將單節點etcd快照還原到新的HA節點

rke etcd snapshot-restore --name single-node-etcd-snapshot --config cluster.yml

4. Rancher HA 安裝

參考安裝文檔安裝 Rancher HA。

5. 為Rancher HA配置NGINX 負載均衡

參考NGINX 配置示例為Rancher HA配置負載均衡。

Nginx 配置:

worker_processes 4;
worker_rlimit_nofile 40000;

events {
    worker_connections 8192;
}

stream {
    upstream rancher_servers_http {
        least_conn;
        server 172.31.11.95:80 max_fails=3 fail_timeout=5s;
        server 172.31.0.201:80 max_fails=3 fail_timeout=5s;
        server 172.31.15.236:80 max_fails=3 fail_timeout=5s;
    }
    server {
        listen 80;
        proxy_pass rancher_servers_http;
    }

    upstream rancher_servers_https {
        least_conn;
        server 172.31.11.95:443 max_fails=3 fail_timeout=5s;
        server 172.31.0.201:443 max_fails=3 fail_timeout=5s;
        server 172.31.15.236:443 max_fails=3 fail_timeout=5s;
    }
    server {
        listen     443;
        proxy_pass rancher_servers_https;
    }
}

Nginx啟動后,我們就可以通過配置的域名/IP去訪問Rancher UI。可以看到業務集群demoUnavailable狀態,local集群雖然為Active,但cluster-agentnode-agent均啟動失敗。

這兩種情況都是因為agent依然連接的舊的Rancher Server。

如何進行遷移Rancher Server

如何進行遷移Rancher Server

6. 更新Rancher Server IP或域名

  • 依次訪問全局 > 系統設置,頁面往下翻找到server-url文件

  • 單擊右側的省略號菜單,選擇升級

  • 修改server-url地址為新Rancher server的地址

如何進行遷移Rancher Server

  • 保存

7. 更新local集群和業務集群的agent配置

通過新域名或IP登錄 Rancher Server;

通過瀏覽器地址欄查詢集群ID, c/后面以c開頭的字段即為集群 ID,本例的集群ID為c-hftcn

如何進行遷移Rancher Server

訪問https://<新的server_url>/v3/clusters/<集群ID>/clusterregistrationtokens頁面;

打開clusterRegistrationTokens頁面后,定位到data字段;找到insecureCommand字段,復制 YAML 連接備用;

如何進行遷移Rancher Server

可能會有多組"baseType": "clusterRegistrationToken",如上圖。這種情況以createdTS最大、時間最新的一組為準,一般是最后一組。

使用kubectl工具,通過前文中準備的直連kubeconfig配置文件和上面步驟中獲取的 YAML 文件,執行以下命令更新agent相關配置。

注意:

更新local集群和業務集群使用的kubeconfig是不同的,請針對不通集群選擇需要的kubeconfig。

關于--context=xxx說明請參考直接使用下游集群進行身份驗證。

curl --insecure -sfL <替換為上面步驟獲取的YAML文件鏈接> | kubectl --context=xxx  apply -f -

業務集群agent更新成功后,使用相同的方法更新local集群agent配置。

9. 驗證

過一會,localdemo集群都變為Active狀態:

如何進行遷移Rancher Server

Local集群的cluster-agentnode-agent啟動成功

如何進行遷移Rancher Server

Demo集群的cluster-agentnode-agent啟動成功

如何進行遷移Rancher Server

然后驗證我們之前部署的應用是否可用。

如何進行遷移Rancher Server

場景3:Rancehr高可用安裝遷移至其他Local集群

Rancehr高可用安裝遷移至其他Local集群,可以借助rke的更新功能完成。通過rke將原來的3節點local集群擴展成6個節點,此時etcd數據將自動同步到local集群內的6個節點上,然后再使用rke將原有的3臺節點移除,再次更新。這樣就將Rancher Server可以平滑的遷移到新的Rancher local集群。

1. RKE部署Local Kubernetes 集群

根據RKE示例配置創建 RKE 配置文件 cluster.yml:

nodes:
- address: 3.96.52.186
    internal_address: 172.31.11.95
    user: ubuntu
    role: [controlplane, worker, etcd]
- address: 35.183.186.213
    internal_address: 172.31.0.201
    user: ubuntu
    role: [controlplane, worker, etcd]
- address: 35.183.130.12
    internal_address: 172.31.15.236
    user: ubuntu
    role: [controlplane, worker, etcd]

執行 rke 命令創建 Local Kubernetes 集群

rke up --config cluster.yml

檢查 Kubernetes 集群運行狀態

使用kubectl檢查節點狀態,確認節點狀態為Ready

kubectl get nodes
NAME             STATUS   ROLES                      AGE   VERSION
3.96.52.186      Ready    controlplane,etcd,worker   71s   v1.17.6
35.183.130.12    Ready    controlplane,etcd,worker   72s   v1.17.6
35.183.186.213   Ready    controlplane,etcd,worker   72s   v1.17.6

檢查所有必需的 Pod 和容器是否狀況良好,然后可以繼續進行

kubectl get pods --all-namespaces

NAMESPACE       NAME                                      READY   STATUS      RESTARTS   AGE
ingress-nginx   default-http-backend-67cf578fc4-gnt5c     1/1     Running     0          72s
ingress-nginx   nginx-ingress-controller-47p4b            1/1     Running     0          72s
ingress-nginx   nginx-ingress-controller-85284            1/1     Running     0          72s
ingress-nginx   nginx-ingress-controller-9qbdz            1/1     Running     0          72s
kube-system     canal-9bx8k                               2/2     Running     0          97s
kube-system     canal-l2fjb                               2/2     Running     0          97s
kube-system     canal-v7fzs                               2/2     Running     0          97s
kube-system     coredns-7c5566588d-7kv7b                  1/1     Running     0          67s
kube-system     coredns-7c5566588d-t4jfm                  1/1     Running     0          90s
kube-system     coredns-autoscaler-65bfc8d47d-vnrzc       1/1     Running     0          90s
kube-system     metrics-server-6b55c64f86-r4p8w           1/1     Running     0          79s
kube-system     rke-coredns-addon-deploy-job-lx667        0/1     Completed   0          94s
kube-system     rke-ingress-controller-deploy-job-r2nw5   0/1     Completed   0          74s
kube-system     rke-metrics-addon-deploy-job-4bq76        0/1     Completed   0          84s
kube-system     rke-network-plugin-deploy-job-gjpm8       0/1     Completed   0          99s

2. Rancher HA 安裝

參考安裝文檔安裝 Rancher HA。

3. 為Rancher HA配置NGINX 負載均衡

參考NGINX 配置示例為Rancher HA配置負載均衡。

Nginx 配置:

worker_processes 4;
worker_rlimit_nofile 40000;

events {
    worker_connections 8192;
}

stream {
    upstream rancher_servers_http {
        least_conn;
        server 172.31.11.95:80 max_fails=3 fail_timeout=5s;
        server 172.31.0.201:80 max_fails=3 fail_timeout=5s;
        server 172.31.15.236:80 max_fails=3 fail_timeout=5s;
    }
    server {
        listen 80;
        proxy_pass rancher_servers_http;
    }

    upstream rancher_servers_https {
        least_conn;
        server 172.31.11.95:443 max_fails=3 fail_timeout=5s;
        server 172.31.0.201:443 max_fails=3 fail_timeout=5s;
        server 172.31.15.236:443 max_fails=3 fail_timeout=5s;
    }
    server {
        listen     443;
        proxy_pass rancher_servers_https;
    }
}

Nginx啟動后,我們就可以通過配置的域名/IP去訪問Rancher UI。可以導航到local->Nodes 查看到local集群三個節點的狀態:

如何進行遷移Rancher Server

4. 部署測試集群及應用

添加測試集群,Node Role同時選中etcdControl PlaneWorker

如何進行遷移Rancher Server

等待測試集群添加成功后,部署一個nginx workload。再從應用商店部署一個測試應用。

如何進行遷移Rancher Server

5. 將新集群的節點添加到Local集群

修改剛才創建local集群所使用的rke配置文件,增加新集群的配置。

cluster.yml:

nodes:
- address: 3.96.52.186
    internal_address: 172.31.11.95
    user: ubuntu
    role: [controlplane, worker, etcd]
- address: 35.183.186.213
    internal_address: 172.31.0.201
    user: ubuntu
    role: [controlplane, worker, etcd]
- address: 35.183.130.12
    internal_address: 172.31.15.236
    user: ubuntu
    role: [controlplane, worker, etcd]

# 以下內容為新增節點的配置
- address: 52.60.116.56
    internal_address: 172.31.14.146
    user: ubuntu
    role: [controlplane, worker, etcd]
- address: 99.79.9.244
    internal_address: 172.31.15.215
    user: ubuntu
    role: [controlplane, worker, etcd]
- address: 15.223.77.84
    internal_address: 172.31.8.64
    user: ubuntu
    role: [controlplane, worker, etcd]

更新集群,將local集群節點擴展到6個

rke up --cluster.yml

檢查 Kubernetes 集群運行狀態

使用kubectl測試您的連通性,并確認原節點(3.96.52.186、35.183.186.213、35.183.130.12)和新增節點(52.60.116.56、99.79.9.244、15.223.77.84)都處于Ready狀態

kubectl get nodes
NAME             STATUS   ROLES                      AGE    VERSION
15.223.77.84     Ready    controlplane,etcd,worker   33s    v1.17.6
3.96.52.186      Ready    controlplane,etcd,worker   88m    v1.17.6
35.183.130.12    Ready    controlplane,etcd,worker   89m    v1.17.6
35.183.186.213   Ready    controlplane,etcd,worker   89m    v1.17.6
52.60.116.56     Ready    controlplane,etcd,worker   101s   v1.17.6
99.79.9.244      Ready    controlplane,etcd,worker   67s    v1.17.6

檢查所有必需的 Pod 和容器是否狀況良好,然后可以繼續進行

kubectl get pods --all-namespaces

NAMESPACE       NAME                                      READY   STATUS      RESTARTS   AGE
cattle-system   cattle-cluster-agent-68898b5c4d-lkz5m     1/1     Running     0          46m
cattle-system   cattle-node-agent-9xrbs                   1/1     Running     0          109s
cattle-system   cattle-node-agent-lvdlf                   1/1     Running     0          46m
cattle-system   cattle-node-agent-mnk76                   1/1     Running     0          46m
cattle-system   cattle-node-agent-qfwcm                   1/1     Running     0          75s
cattle-system   cattle-node-agent-tk66h                   1/1     Running     0          2m23s
cattle-system   cattle-node-agent-v2vpf                   1/1     Running     0          46m
cattle-system   rancher-749fd64664-8cg4w                  1/1     Running     1          58m
cattle-system   rancher-749fd64664-fms8x                  1/1     Running     1          58m
cattle-system   rancher-749fd64664-rb5pt                  1/1     Running     1          58m
ingress-nginx   default-http-backend-67cf578fc4-gnt5c     1/1     Running     0          89m
ingress-nginx   nginx-ingress-controller-44c5z            1/1     Running     0          61s
ingress-nginx   nginx-ingress-controller-47p4b            1/1     Running     0          89m
ingress-nginx   nginx-ingress-controller-85284            1/1     Running     0          89m
ingress-nginx   nginx-ingress-controller-9qbdz            1/1     Running     0          89m
ingress-nginx   nginx-ingress-controller-kp7p6            1/1     Running     0          61s
ingress-nginx   nginx-ingress-controller-tfjrw            1/1     Running     0          61s
kube-system     canal-9bx8k                               2/2     Running     0          89m
kube-system     canal-fqrqv                               2/2     Running     0          109s
kube-system     canal-kkj7q                               2/2     Running     0          75s
kube-system     canal-l2fjb                               2/2     Running     0          89m
kube-system     canal-v7fzs                               2/2     Running     0          89m
kube-system     canal-w7t58                               2/2     Running     0          2m23s
kube-system     coredns-7c5566588d-7kv7b                  1/1     Running     0          89m
kube-system     coredns-7c5566588d-t4jfm                  1/1     Running     0          89m
kube-system     coredns-autoscaler-65bfc8d47d-vnrzc       1/1     Running     0          89m
kube-system     metrics-server-6b55c64f86-r4p8w           1/1     Running     0          89m
kube-system     rke-coredns-addon-deploy-job-lx667        0/1     Completed   0          89m
kube-system     rke-ingress-controller-deploy-job-r2nw5   0/1     Completed   0          89m
kube-system     rke-metrics-addon-deploy-job-4bq76        0/1     Completed   0          89m
kube-system     rke-network-plugin-deploy-job-gjpm8       0/1     Completed   0          89m

從上面的信息可以確認現在local集群已經擴展到6個,并且所有workload均正常運行。

6. 再次更新集群,剔除掉原Local集群節點

再次修改local集群所使用的rke配置文件,將原local集群節點配置注釋掉。

cluster.yml:

nodes:
#  - address: 3.96.52.186
#    internal_address: 172.31.11.95
#    user: ubuntu
#    role: [controlplane, worker, etcd]
#  - address: 35.183.186.213
#    internal_address: 172.31.0.201
#    user: ubuntu
#    role: [controlplane, worker, etcd]
#  - address: 35.183.130.12
#    internal_address: 172.31.15.236
#    user: ubuntu
#    role: [controlplane, worker, etcd]
# 以下內容為新增節點
- address: 52.60.116.56
    internal_address: 172.31.14.146
    user: ubuntu
    role: [controlplane, worker, etcd]
- address: 99.79.9.244
    internal_address: 172.31.15.215
    user: ubuntu
    role: [controlplane, worker, etcd]
- address: 15.223.77.84
    internal_address: 172.31.8.64
    user: ubuntu
    role: [controlplane, worker, etcd]

更新集群,完成遷移。

rke up --cluster.yml

檢查 Kubernetes 集群運行狀態

使用kubectl檢查節點狀態為Ready,可以看到local集群的節點已經替換成了以下3個:

kubectl get nodes
NAME           STATUS   ROLES                      AGE   VERSION
15.223.77.84   Ready    controlplane,etcd,worker   11m   v1.17.6
52.60.116.56   Ready    controlplane,etcd,worker   13m   v1.17.6
99.79.9.244    Ready    controlplane,etcd,worker   12m   v1.17.6

檢查所有必需的 Pod 和容器是否狀況良好,然后可以繼續進行

kubectl get pods --all-namespaces

NAMESPACE       NAME                                    READY   STATUS    RESTARTS   AGE
cattle-system   cattle-cluster-agent-68898b5c4d-tm6db   1/1     Running   3          3m14s
cattle-system   cattle-node-agent-9xrbs                 1/1     Running   0          14m
cattle-system   cattle-node-agent-qfwcm                 1/1     Running   0          14m
cattle-system   cattle-node-agent-tk66h                 1/1     Running   0          15m
cattle-system   rancher-749fd64664-47jw2                1/1     Running   0          3m14s
cattle-system   rancher-749fd64664-jpqdd                1/1     Running   0          3m14s
cattle-system   rancher-749fd64664-xn6js                1/1     Running   0          3m14s
ingress-nginx   default-http-backend-67cf578fc4-4668g   1/1     Running   0          3m14s
ingress-nginx   nginx-ingress-controller-44c5z          1/1     Running   0          13m
ingress-nginx   nginx-ingress-controller-kp7p6          1/1     Running   0          13m
ingress-nginx   nginx-ingress-controller-tfjrw          1/1     Running   0          13m
kube-system     canal-fqrqv                             2/2     Running   0          14m
kube-system     canal-kkj7q                             2/2     Running   0          14m
kube-system     canal-w7t58                             2/2     Running   0          15m
kube-system     coredns-7c5566588d-nmtrn                1/1     Running   0          3m13s
kube-system     coredns-7c5566588d-q6hlb                1/1     Running   0          3m13s
kube-system     coredns-autoscaler-65bfc8d47d-rx7fm     1/1     Running   0          3m14s
kube-system     metrics-server-6b55c64f86-mcx9z         1/1     Running   0          3m14s

從上面的信息可以確認現在local集群已經遷移成功,并且所有workload均正常運行。

修改nginx負載均衡配置,將新節點的信息更新到nginx配置文件中

worker_processes 4;
worker_rlimit_nofile 40000;

events {
    worker_connections 8192;
}

stream {
    upstream rancher_servers_http {
        least_conn;
        server 172.31.14.146:80 max_fails=3 fail_timeout=5s;
        server 172.31.8.64:80 max_fails=3 fail_timeout=5s;
        server 172.31.15.215:80 max_fails=3 fail_timeout=5s;
    }
    server {
        listen 80;
        proxy_pass rancher_servers_http;
    }

    upstream rancher_servers_https {
        least_conn;
        server 172.31.14.146:443 max_fails=3 fail_timeout=5s;
        server 172.31.8.64:443 max_fails=3 fail_timeout=5s;
        server 172.31.15.215:443 max_fails=3 fail_timeout=5s;
    }
    server {
        listen     443;
        proxy_pass rancher_servers_https;
    }

}

7. 驗證

確認local集群和業務集群狀態為Active

如何進行遷移Rancher Server

確認Local集群節點已被替換

原集群節點IP分別為:3.96.52.186、35.183.186.213、35.183.130.12

如何進行遷移Rancher Server

然后驗證我們之前部署的應用是否可用。

如何進行遷移Rancher Server

開源一直是Rancher的產品理念,我們也一向重視與開源社區用戶的交流,為此創建了20個微信交流群。本篇文章的誕生源于和社區用戶的多次交流,發現許多Rancher用戶都有類似的問題。于是,我總結了三個場景并經過反復測試,最終完成這篇教程。我們也十分歡迎各位Rancher用戶以各種形式分享自己的使用經驗,一起共建愉快的開源社區。

看完上述內容,你們對如何進行遷移Rancher Server有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

资讯| 兰州市| 克拉玛依市| 孝感市| 房山区| 虎林市| 绥阳县| 遂川县| 宽城| 蒙城县| 阳原县| 房山区| 新泰市| 高陵县| 峨山| 徐汇区| 郑州市| 盐津县| 湟中县| 洪泽县| 友谊县| 苍山县| 巴林左旗| 吉安市| 富裕县| 阳城县| 平泉县| 岳西县| 江山市| 伊宁市| 富源县| 齐河县| 沿河| 白玉县| 梅州市| 桐庐县| 南木林县| 灵宝市| 务川| 深州市| 新津县|