次の方法で共有


クイックスタート: Azure CLI を使用して Azure Kubernetes Service (AKS) クラスターのコンテナー バックアップを構成する

このクイックスタートでは、Azure CLI を使用して Azure Kubernetes Service (AKS) クラスターのコンテナー バックアップを構成する方法について説明します。

Azure Backup for AKS は、AKS クラスターのバックアップをすばやく構成できる、クラウドネイティブかつエンタープライズ対応で、アプリケーション中心のバックアップ サービスです。

開始する前に

AKS クラスターのコンテナーバックアップを構成する前に、次の前提条件が満たされていることを確かめてください。

  • AKS バックアップのバックアップ操作を開始する前に、すべての前提条件を実行します。

バックアップ コンテナーの作成

Backup コンテナーを作成するには、次のコマンドを実行します。

az dataprotection backup-vault create --resource-group $backupvaultresourcegroup --vault-name $backupvault --___location $region --type SystemAssigned --storage-settings datastore-type="VaultStore" type="GeoRedundant"

新しく作成されたコンテナーにはストレージ設定がグローバル冗長として設定されているため、コンテナー層に格納されているバックアップは、Azure のペアになっているリージョンで使用できます。 ボールトの作成が完了したら、AKS クラスターを保護するバックアップ ポリシーを作成します。

バックアップ ポリシーの作成

コマンド az dataprotection backup-policy get-default-policy-template を使用してポリシー テンプレートを取得します。

az dataprotection backup-policy get-default-policy-template --datasource-type AzureKubernetesService > akspolicy.json

バックアップ ポリシーの既定テンプレートを更新し、コンテナー レベルその日の最初に成功したバックアップを 30 日間保持する保持するためのルールを追加します。


az dataprotection backup-policy retention-rule create-lifecycle  --count 30 --retention-duration-type Days --copy-option ImmediateCopyOption --target-datastore VaultStore --source-datastore OperationalStore > ./retentionrule.json

az dataprotection backup-policy retention-rule set --lifecycles ./retentionrule.json --name Daily --policy ./akspolicy.json > ./akspolicy.json

ポリシーの JSON に必要な値をすべて設定したら、ポリシー オブジェクトから新しいポリシーを作成する手順に進みます。

az dataprotection backup-policy create -g testBkpVaultRG --vault-name TestBkpVault -n mypolicy --policy akspolicy.json

バックアップ用に AKS クラスターを準備する

AKS クラスターのバックアップを準備するために、ボールトとポリシーの作成が完了したら、次の前提条件を実行する必要があります。

  1. ストレージ アカウントと BLOB コンテナーを作成します

    AKS のバックアップでは、Kubernetes リソースがバックアップとして BLOB コンテナーに保存されます。 AKS クラスターのバックアップの準備を整えるには、クラスターに拡張機能をインストールする必要があります。 この拡張機能には、ストレージ アカウントと BLOB コンテナーが入力として必要です。

    新しいストレージ アカウントを作成するには、次のコマンドを実行します。

    az storage account create --name $storageaccount --resource-group $storageaccountresourcegroup --___location $region --sku Standard_LRS
    

    ストレージ アカウントの作成が完了したら、次のコマンドを実行して、内部に BLOB コンテナーを作成します。

    az storage container create --name $blobcontainer --account-name $storageaccount --auth-mode login
    
  2. バックアップ拡張機能をインストールします

    バックアップと復元の操作を実行するには、AKS クラスターに Backup 拡張機能をインストールする必要があります。 Backup 拡張機能は、クラスター内に名前空間 dataprotection-microsoft を作成し、同じものを使用してそのリソースをデプロイします。 この拡張機能には、インストール用の入力としてストレージ アカウントと BLOB コンテナーが必要です。

    az k8s-extension create --name azure-aks-backup --extension-type microsoft.dataprotection.kubernetes --scope cluster --cluster-type managedClusters --cluster-name $akscluster --resource-group $aksclusterresourcegroup --release-train stable --configuration-settings blobContainer=$blobcontainer storageAccount=$storageaccount storageAccountResourceGroup=$storageaccountresourcegroup storageAccountSubscriptionId=$subscriptionId
    

    拡張機能のインストールの一環として、AKS クラスターのノード プールのリソース グループにユーザー ID が作成されます。 拡張機能がストレージ アカウントにアクセスするには、この ID にストレージ BLOB データ共同作成者ロールを指定する必要があります。 必要なロールを割り当てるには、次のコマンドを実行します。

    az role assignment create --assignee-object-id $(az k8s-extension show --name azure-aks-backup --cluster-name $akscluster --resource-group $aksclusterresourcegroup --cluster-type managedClusters --query aksAssignedIdentity.principalId --output tsv) --role 'Storage Blob Data Contributor' --scope /subscriptions/$subscriptionId/resourceGroups/$storageaccountresourcegroup/providers/Microsoft.Storage/storageAccounts/$storageaccount
    
  3. 信頼されたアクセスを有効にする

    Backup コンテナーが AKS クラスターに接続するには、Backup コンテナーが AKS クラスターに直接接続できるように、信頼されたアクセスを有効にする必要があります。

    信頼されたアクセスを有効にするには、次のコマンドを実行します。

    az aks trustedaccess rolebinding create --cluster-name $akscluster --name backuprolebinding --resource-group $aksclusterresourcegroup --roles Microsoft.DataProtection/backupVaults/backup-operator --source-resource-id /subscriptions/$subscriptionId/resourceGroups/$backupvaultresourcegroup/providers/Microsoft.DataProtection/BackupVaults/$backupvault
    

AKS クラスターのコンテナー化されたバックアップを構成する

作成された Backup コンテナーおよびバックアップ ポリシーと、AKS クラスターを "バックアップを行える" 状態にして、AKS クラスターのバックアップを開始できるようになりました。

要求を準備する

バックアップの構成は、次の 2 つの手順で実行されます。

  1. az dataprotection backup-instance initialize-backupconfig コマンドを使用して、バックアップするクラスター リソースを定義するために、バックアップ構成を準備します。 コマンドによって JSON が生成されます。これを更新して、必要に応じて AKS クラスターのバックアップ構成を定義できます。

    az dataprotection backup-instance initialize-backupconfig --datasource-type AzureKubernetesService > aksbackupconfig.json
    
  2. az dataprotection backup-instance initialize コマンドを使用して、関連するコンテナー、ポリシー、AKS クラスター、バックアップ構成、スナップショットリソース グループを使用する、関連する要求を準備します。

    az dataprotection backup-instance initialize --datasource-id /subscriptions/$subscriptionId/resourceGroups/$aksclusterresourcegroup/providers/Microsoft.ContainerService/managedClusters/$akscluster --datasource-___location $region --datasource-type AzureKubernetesService --policy-id /subscriptions/$subscriptionId/resourceGroups/$backupvaultresourcegroup/providers/Microsoft.DataProtection/backupVaults/$backupvault/backupPolicies/$backuppolicy --backup-configuration ./aksbackupconfig.json --friendly-name ecommercebackup --snapshot-resource-group-name $snapshotresourcegroup > backupinstance.json
    

次に、このコマンドの JSON 出力を使用して、AKS クラスターのバックアップを構成します。

必要なアクセス許可を割り当てて検証する

要求を準備したら、まず、次のコマンドを実行して、必要なロールが関係するリソースに割り当てられているかを確認する必要があります。

az dataprotection backup-instance validate-for-backup --backup-instance ./backupinstance.json --ids /subscriptions/$subscriptionId/resourceGroups/$backupvaultresourcegroup/providers/Microsoft.DataProtection/backupVaults/$backupvault

検証に失敗し、特定のアクセス許可がない場合は、次のコマンドを実行して割り当てることができます。

az dataprotection backup-instance update-msi-permissions command.
az dataprotection backup-instance update-msi-permissions --datasource-type AzureKubernetesService --operation Backup --permissions-scope ResourceGroup --vault-name $backupvault --resource-group $backupvaultresourcegroup --backup-instance backupinstance.json

アクセス許可が割り当てられたら、前述の validate for backup コマンドを使用して再検証し、それからバックアップの構成を進めます。

az dataprotection backup-instance create --backup-instance  backupinstance.json --resource-group $backupvaultresourcegroup --vault-name $backupvault

次のステップ