このクイックスタートでは、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 クラスターのバックアップを準備するために、ボールトとポリシーの作成が完了したら、次の前提条件を実行する必要があります。
ストレージ アカウントと 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
バックアップ拡張機能をインストールします。
バックアップと復元の操作を実行するには、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
信頼されたアクセスを有効にする
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 つの手順で実行されます。
az dataprotection backup-instance initialize-backupconfig
コマンドを使用して、バックアップするクラスター リソースを定義するために、バックアップ構成を準備します。 コマンドによって JSON が生成されます。これを更新して、必要に応じて AKS クラスターのバックアップ構成を定義できます。az dataprotection backup-instance initialize-backupconfig --datasource-type AzureKubernetesService > aksbackupconfig.json
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