全部產品
Search
文件中心

Container Service for Kubernetes:跨地區跨叢集遷移應用

更新時間:Sep 04, 2024

備份中心可用於解決跨地區Kubernetes叢集的應用備份與恢複,實現跨地區叢集的備份容災能力。

前提條件

  • 已建立恢複叢集,為確保能正常使用ECS快照恢複雲端硬碟資料,建議恢複叢集為1.18及以上版本。具體操作,請參見建立ACK託管叢集建立ACK專有叢集建立註冊叢集並接入本機資料中心叢集

    重要
    • 恢複叢集必須使用CSI儲存外掛程式,使用Flexvolume儲存外掛程式或通過csi-compatible-controller組件同時使用CSI Flexvolume儲存外掛程式的叢集不支援恢複。

    • 備份中心關注業務應用的備份和恢複。在恢複任務之前,您需要在恢複叢集中預先安裝並配置好所需的系統組件。例如:

      • ACR免密組件:您需要為恢複叢集重新授權並配置acr-configuration。

      • ALB Ingress組件:您需要預先配置ALBConfig等。

  • 備份組群和恢複叢集均已完成備份服務元件的安裝及許可權配置。具體操作,請參見安裝migrate-controller備份服務元件並配置許可權

  • 已開通ECS雲端硬碟快照

    開通快照服務不收取費用。建立快照後,阿里雲預設根據快照容量與時間長度隨用隨付,更多資訊,請參見快照計費

注意事項

  • 跨地區叢集應用遷移支援應用備份,以及僅使用了阿里雲雲端硬碟儲存的資料卷備份

    如果您的叢集為ACK專有版叢集或註冊叢集(已接入ECS自建的Kubernetes叢集),在使用雲端硬碟儲存卷備份跨地區恢複功能前,需要檢查是否已授權ECS雲端硬碟快照相關的權限原則。具體操作,請參見安裝migrate-controller備份服務元件並配置許可權

  • 備份應用時,正在被刪除的資源不會被備份。

準備工作

本樣本介紹如何跨地區跨叢集實現應用備份並恢複。本樣本中,華北2(北京)地區內一個名為Cluster_BJ的ACK Pro叢集將作為備份組群,華南1(深圳)地區內一個名為Cluster_SZ的ACK Pro叢集將作為恢複叢集。備份倉庫關聯華北2(北京)地區內的OSS Bucket。

  1. 在華北2(北京)地區內,建立以cnfs-oss-***開頭的OSS Bucket。

    若此地區內已有符合要求的OSS Bucket,則可以跳過此步驟。

  2. 執行以下命令,在Cluster_BJ備份組群的預設命名空間中建立有狀態應用Nginx。

    有狀態應用Nginx的YAML檔案

    cat << EOF | kubectl apply -f -
    apiVersion: apps/v1
    kind: StatefulSet
    metadata:
      name: web
    spec:
      selector:
        matchLabels:
          app: nginx
      serviceName: "nginx"
      replicas: 1
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
            - name: nginx
              image: nginx:1.14.2
              ports:
                - containerPort: 80
                  name: web
              volumeMounts:
                - name: www
                  mountPath: /usr/share/nginx/html
      volumeClaimTemplates:
        - metadata:
            name: www
            labels:
              app: nginx
          spec:
            accessModes: [ "ReadWriteOnce" ]
            storageClassName: "alicloud-disk-topology-alltype"
            resources:
              requests:
                storage: 20Gi
    EOF

步驟一:建立備份倉庫

說明
  • 各個叢集內的備份倉庫執行個體,與其關聯的OSS Bucket之間的網路訪問方式將自動化佈建,不同的網路訪問方式將影響應用備份的上傳和拉取速度。

    • 叢集和OSS Bucket處於同一地區時,使用私網串連。

    • 叢集和OSS Bucket處於不同地區時,使用公網串連,需為叢集開啟公網訪問能力,以便能夠訪問OSS的公網地址,具體操作請參見為已有叢集開啟公網訪問能力

  • 已建立過的備份倉庫不支援更新,只能被刪除。若您在刪除備份倉庫後,重新建立了同名的備份倉庫,此建立的同名備份倉庫在現有已使用過備份的叢集中也無法生效。

當前應用備份功能使用阿里雲OSS對備份資料進行儲存。若建立備份任務時無可用的備份倉庫,則需執行該步驟。關於建立備份倉庫的具體操作,請參見建立備份倉庫

步驟二:在Cluster_BJ叢集備份任務

關於備份任務的具體操作,請參見建立備份計劃或立即備份

重要

跨地區應用遷移情境僅支援無儲存或僅使用阿里雲雲端硬碟儲存的應用,其他類型的有狀態應用遷移時,請勿勾選備份儲存卷,以避免跨地區恢複時失敗。

步驟三:在Cluster_SZ叢集恢複應用

關於恢複應用的具體操作,請參見步驟三:恢複應用和資料卷

步驟四:查看Nginx應用是否遷移成功

  1. 登入Container Service管理主控台,在左側導覽列選擇叢集

  2. 在恢複叢集Cluster_SZ的叢集管理頁左側導覽列,選擇工作負載 > 有狀態

  3. 單擊目標應用Nginx右側操作列的詳情,然後單擊容器組頁簽。

    確認目標應用的狀態為Running,表示Nginx應用遷移成功。

相關文檔