全部產品
Search
文件中心

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

更新時間:Dec 17, 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使用者補充授權。

通過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內網網段的路由。