全部產品
Search
文件中心

Container Service for Kubernetes:安裝migrate-controller備份服務元件並配置許可權

更新時間:Jun 19, 2024

備份中心可用於應用的備份、恢複與遷移,通過安裝migrate-controller備份服務元件並配置相關許可權以開啟備份能力,實現多叢集和混合實境世界中應用的資料容災和應用遷移。

前提條件

背景資訊

隨著越來越多的應用運行在Kubernetes中,對應用進行定時的備份就顯得格外重要。備份中心可以有效防護由於意外情況導致服務長時間中斷而無法恢複的情況。區別於傳統的備份單機、備份磁碟的方案,基於Kubernetes的應用備份,主要關注於運行在Kubernetes中的應用及其資料、資來源物件、配置及整個命名空間等。

注意事項

  • ACK Serverless叢集Pro版ACK Edge叢集使用備份中心時,與ACK託管叢集安裝及許可權配置的要求一致,具體操作,請參見ACK託管叢集

    ACK Serverless叢集基礎版暫不支援使用。

  • ACK Serverless叢集Pro版ACK Edge叢集使用備份中心時,不支援備份儲存卷。

  • 對於ACK Edge叢集,migrate-controller備份服務元件預設安裝在雲上節點並通過內網訪問OSS。

ACK託管叢集

步驟一:安裝migrate-controller備份服務元件

說明

首次使用備份中心功能,需安裝備份服務元件;如果您已安裝,可忽略此步驟。

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

  2. 叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇營運管理 > 應用備份

  3. 應用備份頁面,單擊開始安裝

    系統會自動檢測備份倉庫,若您未建立備份倉庫,請先建立備份倉庫,具體操作,請參見建立備份倉庫

    • 備份服務元件安裝完之後,會產生csdr的命名空間,在使用備份過程中,請勿刪除該命名空間。

    • 若您已安裝該組件,但備份服務元件不是最新版本,請在應用備份頁面單擊開始升級,系統會自動將應用備份服務元件升級至最新版本。

步驟二:配置相關許可權

  • OSS許可權

    ACK託管叢集建議以cnfs-oss-***名稱開頭的OSS Bucket作為備份中心的備份倉庫,無需配置OSS許可權。使用其他Bucket時需要參見下文ACK專有叢集配置相關OSS許可權,請參見步驟一:配置相關許可權

  • 雲端硬碟快照和雲備份許可權

    ACK託管叢集無需配置雲端硬碟快照和Cloud Backup許可權。

ACK專有叢集

步驟一:配置相關許可權

重要

v1.7.7及以上版本的migrate-controller組件支援阿里雲雲端硬碟類型儲存備份跨地區恢複。如果需要使用該功能,請按如下自訂權限原則模板,為原RAM使用者補充授權ECS雲端硬碟快照相關權限原則。

  1. 建立RAM使用者。具體操作,請參見建立RAM使用者

  2. 建立如下自訂權限原則。具體操作,請參見通過指令碼編輯模式建立自訂權限原則

    以下策略指令碼中,oss:****為OSS權限原則,ecs:****為ECS雲端硬碟快照相關權限原則,hbr:****Cloud Backup權限原則。

    展開查看自訂權限原則

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "oss:PutObject",
            "oss:GetObject",
            "oss:DeleteObject",
            "oss:GetBucket",
            "oss:ListObjects",
            "oss:ListBuckets",
            "oss:GetBucketStat"
          ],
          "Resource": "*"
        },
        {
          "Effect": "Allow",
          "Action": [
            "ecs:CreateSnapshot",
            "ecs:DeleteSnapshot",
            "ecs:DescribeSnapshotGroups",
            "ecs:CreateAutoSnapshotPolicy",
            "ecs:ApplyAutoSnapshotPolicy",
            "ecs:CancelAutoSnapshotPolicy",
            "ecs:DeleteAutoSnapshotPolicy",
            "ecs:DescribeAutoSnapshotPolicyEX",
            "ecs:ModifyAutoSnapshotPolicyEx",
            "ecs:DescribeSnapshots",
            "ecs:DescribeInstances",
            "ecs:CopySnapshot",
            "ecs:CreateSnapshotGroup",
            "ecs:DeleteSnapshotGroup"
          ],
          "Resource": "*"
        },
        {
          "Effect": "Allow",
          "Action": [
            "hbr:CreateVault",
            "hbr:CreateBackupJob",
            "hbr:DescribeVaults",
            "hbr:DescribeBackupJobs2",
            "hbr:DescribeRestoreJobs",
            "hbr:SearchHistoricalSnapshots",
            "hbr:CreateRestoreJob",
            "hbr:AddContainerCluster",
            "hbr:DescribeContainerCluster",
            "hbr:DescribeRestoreJobs2"
          ],
          "Resource": "*"
        }
      ]
    }

    上述權限原則授予了所有OSS Bucket的許可權。如果您需要指定OSS的讀寫權限,請按以下樣本修改權限原則,將以下策略指令碼中的mybackups替換為您的OSS名稱。更多OSS細粒度授權配置資訊,請參見通過RAM對OSS進行許可權管理

    展開查看自訂權限原則

    {
      "Version": "1",
      "Statement": [
        {
          "Action": [
            "oss:PutObject",
            "oss:GetObject",
            "oss:DeleteObject",
            "oss:GetBucket",
            "oss:ListObjects",
            "oss:ListBuckets",
            "oss:GetBucketStat"
          ],
          "Resource": [
            "acs:oss:*:*:mybackups",
            "acs:oss:*:*:mybackups/*"
          ],
          "Effect": "Allow"
        },
        {
          "Effect": "Allow",
          "Action": [
            "ecs:CreateSnapshot",
            "ecs:DeleteSnapshot",
            "ecs:DescribeSnapshotGroups",
            "ecs:CreateAutoSnapshotPolicy",
            "ecs:ApplyAutoSnapshotPolicy",
            "ecs:CancelAutoSnapshotPolicy",
            "ecs:DeleteAutoSnapshotPolicy",
            "ecs:DescribeAutoSnapshotPolicyEX",
            "ecs:ModifyAutoSnapshotPolicyEx",
            "ecs:DescribeSnapshots",
            "ecs:DescribeInstances",
            "ecs:CopySnapshot",
            "ecs:CreateSnapshotGroup",
            "ecs:DeleteSnapshotGroup"
          ],
          "Resource": "*"
        },
        {
          "Effect": "Allow",
          "Action": [
            "hbr:CreateVault",
            "hbr:CreateBackupJob",
            "hbr:DescribeVaults",
            "hbr:DescribeBackupJobs2",
            "hbr:DescribeRestoreJobs",
            "hbr:SearchHistoricalSnapshots",
            "hbr:CreateRestoreJob",
            "hbr:AddContainerCluster",
            "hbr:DescribeContainerCluster",
            "hbr:DescribeRestoreJobs2"
          ],
          "Resource": "*"
        }
      ]
    }
  3. 為RAM使用者添加上述自訂的許可權。具體操作,請參見為RAM使用者授權

  4. 為RAM使用者建立AccessKey。具體操作,請參見擷取AccessKey

  5. ACK專有叢集中建立Secret。

    為了保證您的AccessKey資訊只在您的叢集內安全使用,您需要先在叢集中使用AccessKey資訊部署一個名為alibaba-addon-secret的Secret資源,以降低泄露風險。

    1. 執行以下命令,建立命名空間csdr

      kubectl create ns csdr
    2. 執行以下命令,建立名為alibaba-addon-secret的Secret資源。

      kubectl -n csdr create secret generic alibaba-addon-secret --from-literal='access-key-id=<your AccessKey ID>' --from-literal='access-key-secret=<your AccessKey Secret>'

      您需要將上述代碼中的<your AccessKey ID><your AccessKey Secret>替換為您在上一步擷取的AccessKey資訊。

      說明

      如果您在安裝migrate-controller備份服務元件後補充建立的Secret,請完成該建立後重啟kube-system下的migrate-controller組件。

步驟二:安裝migrate-controller備份服務元件

安裝migrate-controller備份服務元件。具體操作,請參見步驟一:安裝migrate-controller備份服務元件

註冊叢集

重要

v1.7.7及以上版本的migrate-controller組件支援阿里雲雲端硬碟類型儲存備份跨地區恢複。如果需要使用該功能,請更新onectl版本至v1.1.0,並執行onectl ram-user revoke --addon migrate-controller命令,為原RAM使用者補充授權ECS雲端硬碟快照相關權限原則。

通過onectl安裝組件並配置許可權(推薦)

  1. 在本地安裝配置onectl。具體操作,請參見通過onectl管理註冊叢集

  2. 執行以下命令,為migrate-controller組件配置RAM許可權。

    onectl ram-user grant --addon migrate-controller

    預期輸出:

    Ram policy ack-one-registered-cluster-policy-migrate-controller granted to ram user ack-one-user-ce313528c3 successfully.
  3. 執行以下命令,安裝備份服務元件。

    onectl addon install migrate-controller

    預期輸出:

    Addon migrate-controller, version **** installed.

    使用onectl配置的OSS許可權範圍為所有的OSS Bucket,若您僅需要配置指定OSS Bucket的許可權,您可以通過以下方式修改onectl產生的OSS許可權,或者選擇手動方式安裝組件並配置許可權。具體操作,請參見下文手動安裝組件並配置許可權

    修改OSS許可權:修改已建立的自訂權限原則內容為以下內容。關於修改權限原則的具體操作,請參見修改自訂權限原則內容和備忘

    說明

    替換以下策略代碼中mybackups為您的OSS名稱。更多OSS細粒度的授權配置資訊,請參見通過RAM對OSS進行許可權管理

    展開查看自訂權限原則

    {
      "Version": "1",
      "Statement": [
        {
          "Action": [
            "oss:PutObject",
            "oss:GetObject",
            "oss:DeleteObject",
            "oss:GetBucket",
            "oss:ListObjects",
            "oss:ListBuckets",
            "oss:GetBucketStat"
          ],
          "Resource": [
            "acs:oss:*:*:mybackups",
            "acs:oss:*:*:mybackups/*"
          ],
          "Effect": "Allow"
        },
        {
          "Effect": "Allow",
          "Action": [
            "ecs:CreateSnapshot",
            "ecs:DeleteSnapshot",
            "ecs:DescribeSnapshotGroups",
            "ecs:CreateAutoSnapshotPolicy",
            "ecs:ApplyAutoSnapshotPolicy",
            "ecs:CancelAutoSnapshotPolicy",
            "ecs:DeleteAutoSnapshotPolicy",
            "ecs:DescribeAutoSnapshotPolicyEX",
            "ecs:ModifyAutoSnapshotPolicyEx",
            "ecs:DescribeSnapshots",
            "ecs:DescribeInstances",
            "ecs:CopySnapshot",
            "ecs:CreateSnapshotGroup",
            "ecs:DeleteSnapshotGroup"
          ],
          "Resource": "*"
        },
        {
          "Effect": "Allow",
          "Action": [
            "hbr:CreateVault",
            "hbr:CreateBackupJob",
            "hbr:DescribeVaults",
            "hbr:DescribeBackupJobs2",
            "hbr:DescribeRestoreJobs",
            "hbr:SearchHistoricalSnapshots",
            "hbr:CreateRestoreJob",
            "hbr:AddContainerCluster",
            "hbr:DescribeContainerCluster",
            "hbr:DescribeRestoreJobs2"
          ],
          "Resource": "*"
        }
      ]
    }
  4. (可選)配置指向註冊叢集與OSS同一地區的OSS內網網段的路由。

    已通過CEN、Express Connect、專線、VPN等方式與雲上VPC互連的註冊叢集,為提高備份資料的拉取速度,當註冊叢集與OSS處於同一地區時,備份中心會自動選擇以內網方式訪問OSS網域名稱,此時,您需要配置指向該地區OSS內網網段的路由。

通過控制台安裝組件並配置許可權

步驟一:配置相關許可權

您需要為註冊叢集建立RAM使用者,為RAM使用者添加訪問雲資源的許可權,然後建立AccessKey。

  1. 建立RAM使用者。具體操作,請參見建立RAM使用者

  2. 建立如下自訂權限原則。具體操作,請參見通過指令碼編輯模式建立自訂權限原則

    以下策略指令碼中,oss:****為OSS權限原則,ecs:****為ECS雲端硬碟快照相關權限原則,hbr:****Cloud Backup權限原則。

    展開查看自訂權限原則

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "oss:PutObject",
            "oss:GetObject",
            "oss:DeleteObject",
            "oss:GetBucket",
            "oss:ListObjects",
            "oss:ListBuckets",
            "oss:GetBucketStat"
          ],
          "Resource": "*"
        },
        {
          "Effect": "Allow",
          "Action": [
            "ecs:CreateSnapshot",
            "ecs:DeleteSnapshot",
            "ecs:DescribeSnapshotGroups",
            "ecs:CreateAutoSnapshotPolicy",
            "ecs:ApplyAutoSnapshotPolicy",
            "ecs:CancelAutoSnapshotPolicy",
            "ecs:DeleteAutoSnapshotPolicy",
            "ecs:DescribeAutoSnapshotPolicyEX",
            "ecs:ModifyAutoSnapshotPolicyEx",
            "ecs:DescribeSnapshots",
            "ecs:DescribeInstances",
            "ecs:CopySnapshot",
            "ecs:CreateSnapshotGroup",
            "ecs:DeleteSnapshotGroup"
          ],
          "Resource": "*"
        },
        {
          "Effect": "Allow",
          "Action": [
            "hbr:CreateVault",
            "hbr:CreateBackupJob",
            "hbr:DescribeVaults",
            "hbr:DescribeBackupJobs2",
            "hbr:DescribeRestoreJobs",
            "hbr:SearchHistoricalSnapshots",
            "hbr:CreateRestoreJob",
            "hbr:AddContainerCluster",
            "hbr:DescribeContainerCluster",
            "hbr:DescribeRestoreJobs2"
          ],
          "Resource": "*"
        }
      ]
    }

    上述權限原則授予了所有OSS Bucket的許可權。如果您需要指定OSS的讀寫權限,請按以下樣本修改權限原則,將以下策略指令碼中的mybackups替換為您的OSS名稱。更多OSS細粒度授權配置資訊,請參見通過RAM對OSS進行許可權管理

    展開查看自訂權限原則

    {
      "Version": "1",
      "Statement": [
        {
          "Action": [
            "oss:PutObject",
            "oss:GetObject",
            "oss:DeleteObject",
            "oss:GetBucket",
            "oss:ListObjects",
            "oss:ListBuckets",
            "oss:GetBucketStat"
          ],
          "Resource": [
            "acs:oss:*:*:mybackups",
            "acs:oss:*:*:mybackups/*"
          ],
          "Effect": "Allow"
        },
        {
          "Effect": "Allow",
          "Action": [
            "ecs:CreateSnapshot",
            "ecs:DeleteSnapshot",
            "ecs:DescribeSnapshotGroups",
            "ecs:CreateAutoSnapshotPolicy",
            "ecs:ApplyAutoSnapshotPolicy",
            "ecs:CancelAutoSnapshotPolicy",
            "ecs:DeleteAutoSnapshotPolicy",
            "ecs:DescribeAutoSnapshotPolicyEX",
            "ecs:ModifyAutoSnapshotPolicyEx",
            "ecs:DescribeSnapshots",
            "ecs:DescribeInstances",
            "ecs:CopySnapshot",
            "ecs:CreateSnapshotGroup",
            "ecs:DeleteSnapshotGroup"
          ],
          "Resource": "*"
        },
        {
          "Effect": "Allow",
          "Action": [
            "hbr:CreateVault",
            "hbr:CreateBackupJob",
            "hbr:DescribeVaults",
            "hbr:DescribeBackupJobs2",
            "hbr:DescribeRestoreJobs",
            "hbr:SearchHistoricalSnapshots",
            "hbr:CreateRestoreJob",
            "hbr:AddContainerCluster",
            "hbr:DescribeContainerCluster",
            "hbr:DescribeRestoreJobs2"
          ],
          "Resource": "*"
        }
      ]
    }
  3. 為RAM使用者添加已建立的自訂許可權。具體操作,請參見為RAM使用者授權

  4. 為RAM使用者建立AccessKey。具體操作,請參見擷取AccessKey

  5. 在叢集中建立Secret。

    為了保證您的AccessKey資訊只在您的叢集內安全使用,您需要先在叢集中使用AccessKey資訊部署一個名為alibaba-addon-secret的Secret資源,以降低泄露風險。

    1. 執行以下命令,建立命名空間csdr

      kubectl create ns csdr
    2. 執行以下命令,建立名為alibaba-addon-secret的Secret資源。

      kubectl -n csdr create secret generic alibaba-addon-secret --from-literal='access-key-id=<your AccessKey ID>' --from-literal='access-key-secret=<your AccessKey Secret>'

      您需要將上述代碼中的<your AccessKey ID><your AccessKey Secret>替換為您在上一步擷取的AccessKey資訊。

步驟二:安裝migrate-controller備份服務元件

安裝migrate-controller備份服務元件。具體操作,請參見步驟一:安裝migrate-controller備份服務元件

(可選)步驟三:配置指向註冊叢集與OSS同一地區的OSS內網網段的路由

已通過CEN、Express Connect、專線、VPN等方式與雲上VPC互連的註冊叢集,為提高備份資料的拉取速度,當註冊叢集與OSS處於同一地區時,備份中心會自動選擇以內網方式訪問OSS網域名稱,此時,您需要配置指向該地區OSS內網網段的路由。