You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -28,14 +27,14 @@ If you don't want to store your backups in Azure Blob Storage, you can use MinIO
28
27
29
28
## Prerequisites
30
29
31
-
Complete these prerequisites before you begin your Velero deployment:
30
+
Before you begin, make sure you have the following prerequisites:
32
31
33
32
-[Install the Azure CLI](/cli/azure/install-azure-cli).
34
33
-[Install `Chocolatey`](https://chocolatey.org/install). You can use `Chocolatey` to [install the Velero client](https://community.chocolatey.org/packages/velero), which includes the Velero CLI, on a Windows machine.
35
34
36
35
## Install Velero with Azure Blob Storage
37
36
38
-
The procedures in this section describe how to install Velero and use Azure Blob Storage for backups. If you don't want to store your backups in Azure, go to[Install Velero with MiniO storage](#install-velero-with-minio-storage).
37
+
The procedures in this section describe how to install Velero and use Azure Blob Storage for backups. If you don't want to store your backups in Azure, see[Install Velero with MiniO storage](#install-velero-with-minio-storage).
39
38
40
39
1. Open PowerShell as an administrator.
41
40
@@ -56,7 +55,7 @@ The procedures in this section describe how to install Velero and use Azure Blob
56
55
57
56
1. If needed, change to the Azure subscription you want to use for the backups.
58
57
59
-
By default, Velero stores backups in the same Azure subscription as your VMs and disks and won't allow you to restore backups to a resource group in a different subscription. To enable backup and restore operations across subscriptions, specify a subscription to use for your backups. You can skip this step if you're already in the subscription you want to use for your backups.
58
+
By default, Velero stores backups in the same Azure subscription as your VMs and disks and doesn't allow you to restore backups to a resource group in a different subscription. To enable backup and restore operations across subscriptions, specify a subscription to use for your backups. You can skip this step if you're already in the subscription you want to use for your backups.
60
59
61
60
Switch to the subscription you want to use for your backups:
62
61
@@ -67,7 +66,7 @@ The procedures in this section describe how to install Velero and use Azure Blob
67
66
$AZURE_BACKUP_SUBSCRIPTION_ID=$(az account list --query="[?name=='$AZURE_BACKUP_SUBSCRIPTION_NAME'].id | [0]" -o tsv)
68
67
```
69
68
70
-
1. Then change the subscription:
69
+
1. Then, change the subscription:
71
70
72
71
```azurecli
73
72
az account set -s $AZURE_BACKUP_SUBSCRIPTION_ID
@@ -118,16 +117,16 @@ The procedures in this section describe how to install Velero and use Azure Blob
118
117
119
118
1. Create a service principal that has Contributor privileges.
120
119
121
-
You can create a service principal with the Contributor role or use a custom role:
120
+
You can create a service principal with the **Contributor** role, or use a custom role:
122
121
123
122
- **Contributor role:** The Contributor role grants subscription-wide access, so be sure protect this credential if you assign that role.
124
123
- **Custom role:** If you need a more restrictive role, use a custom role.
125
124
126
125
Assign the Contributor role:
127
126
128
-
If you'll be using Velero to back up multiple clusters with multiple blob containers, you may want to create a unique username for each cluster instead of using the name `velero`.
127
+
If you're using Velero to back up multiple clusters with multiple blob containers, you might want to create a unique username for each cluster instead of using the name `velero`.
129
128
130
-
To create a service principal with the Contributor role, use the following command. Substitute your own subscription ID and, optionally, your own service principal name. Microsoft Entra ID will generate a secret for you.
129
+
To create a service principal with the Contributor role, run the following command. Substitute your own subscription ID and optionally, your own service principal name. Microsoft Entra ID generates a secret for you:
- If you don't want to use `velero` as your service principal name, make sure the `--name` you choose is unique in Microsoft Entra ID and doesn't conflict with other service principals or app registrations.
143
+
- If you don't want to use `velero` as your service principal name, make sure the `--name` value you choose is unique in Microsoft Entra ID and doesn't conflict with other service principals or app registrations.
145
144
146
145
> [!IMPORTANT]
147
-
> The secret is shown only during this step, when the service principal is created. Be sure to make a note of the secret for use in future steps.
148
-
149
-
Use a custom role:
146
+
> The secret is only shown during this step, when the service principal is created. Be sure to make a note of the secret for use in future steps.
150
147
151
148
If you want to enable the minimum resource provider actions, create a custom role, and assign that role to the service principal.
152
149
153
-
1. Create a file named **azure-role.json** with following contents. Substitute your own custom role name and subscription ID:
154
-
155
-
```json
156
-
{
157
-
"Name": <CUSTOM_ROLE_NAME>,
158
-
"Id": null,
159
-
"IsCustom": true,
160
-
"Description": "Velero related permissions to perform backups, restores and deletions",
For more information about creating custom roles, see [Set permissions for Velero](https://github.com/vmware-tanzu/velero-plugin-for-microsoft-azure#specify-role).
184
+
For more information about creating custom roles, see [Set permissions for Velero](https://github.com/vmware-tanzu/velero-plugin-for-microsoft-azure#specify-role).
189
185
190
186
1. Get the service principal name, and assign that name to the **AZURE_CLIENT_ID** variable:
191
187
@@ -208,17 +204,15 @@ The procedures in this section describe how to install Velero and use Azure Blob
208
204
```
209
205
210
206
> [!IMPORTANT]
211
-
> Delete this file after you install Velero. The client secret is in plaintext, which can pose a security risk.
207
+
> Delete this file after you install Velero. The client secret is in plain text, which can pose a security risk.
212
208
213
209
Before proceeding, verify that the file is properly formatted. The file name extension doesn't matter.
214
210
- Remove any extra spaces or tabs.
215
211
- Make sure the variable names are correct.
216
212
217
-
1. Install and start Velero.
218
-
219
-
Install Velero on the cluster, and start the deployment. This procedure creates a namespace called `velero` and adds a deployment named `velero` to the namespace.
213
+
1. Install Velero on the cluster, and start the deployment. This procedure creates a namespace called `velero` and adds a deployment named `velero` to the namespace.
220
214
221
-
1. Install Velero using the following command. You'll need to customize the example command.
215
+
1. Install Velero using the following command. Make sure to replace the placeholders in the example command with your own values:
@@ -230,7 +224,7 @@ The procedures in this section describe how to install Velero and use Azure Blob
230
224
231
225
- Be sure to include the `--use-restic` parameter to enable backup of Kubernetes volumes at the file system level using `Restic`. `Restic` can be used to back up any type of Kubernetes volume. By default, Velero supports taking snapshots of persistent volumes for Amazon EBS Volumes, Azure Managed Disks, and Google Persistent Disks. In AKS Arc, Kubernetes volumes use Cluster Shared Volumes (CSVs) to store data. Hence, `Restic` is needed to enable persistent volume snapshots. AKS Arc currently doesn't support volume snapshots.
232
226
233
-
- `subscriptionId=$AZURE_BACKUP_SUBSCRIPTION_ID` is optional. You only need to include it if Velero and the workload cluster have different subscription IDs. If they use the same Azure subscription, you can remove the `subscriptionId` parameter, and the **credentials-velero.txt** file will provide that information.
227
+
- `subscriptionId=$AZURE_BACKUP_SUBSCRIPTION_ID` is optional. You only need to include it if Velero and the workload cluster have different subscription IDs. If they use the same Azure subscription, you can remove the `subscriptionId` parameter, and the **credentials-velero.txt** file provides that information.
234
228
235
229
The Velero service starts automatically on installation.
236
230
@@ -249,7 +243,7 @@ The procedures in this section describe how to install Velero and use [MinIO](ht
249
243
250
244
If you don't want to store your backups in MinIO, go to [Set up Velero to use Azure Blob Storage](#install-velero-with-azure-blob-storage).
251
245
252
-
1. Install the Velero CLI by running the following command. [Install `Chocolately`](https://chocolatey.org/install) if you haven't already.
246
+
1. Install the Velero CLI by running the following command. [Install `Chocolately`](https://chocolatey.org/install) if you haven't already:
253
247
254
248
```powershell
255
249
choco install velero
@@ -322,7 +316,7 @@ If you don't want to store your backups in MinIO, go to [Set up Velero to use Az
322
316
mountPath: "/storage"
323
317
```
324
318
325
-
Then create the deployment:
319
+
Then, create the deployment:
326
320
327
321
```shell
328
322
kubectl create -f minio-deployment.yaml
@@ -347,21 +341,19 @@ If you don't want to store your backups in MinIO, go to [Set up Velero to use Az
347
341
app: minio
348
342
```
349
343
350
-
Then create the service:
344
+
Then, create the service:
351
345
352
346
```shell
353
347
kubectl create -f mino-service.yaml
354
348
```
355
349
356
-
1. Get the MinIO pod's external IP address by running the following command. You'll use that address to install Velero.
350
+
1. Get the MinIO pod's external IP address by running the following command. You use that address to install Velero:
357
351
358
-
```shell
352
+
```bash
359
353
kubectl get svc
360
354
```
361
355
362
-
1. To check whether MinIO is up and running, log in to the IP address in a browser, or use the MinIO client, as described below.
363
-
364
-
Install the MinIO client, and browse through the MinIO files.
356
+
1. To check whether MinIO is up and running, sign in to the IP address in a browser, or use the MinIO client, as described in this section. Install the MinIO client, and browse through the MinIO files.
365
357
366
358
Download the MinIO client:
367
359
@@ -387,7 +379,7 @@ If you don't want to store your backups in MinIO, go to [Set up Velero to use Az
387
379
mc mb minio/velero-backup
388
380
```
389
381
390
-
1. Create a MinIO credentials file **minio.credentials** with the following information:
382
+
1. Create a MinIO credentials file **minio.credentials** with the following contents:
391
383
392
384
```yaml
393
385
[default]
@@ -454,7 +446,7 @@ To restore a cluster, you must create a new cluster to restore the old cluster t
454
446
455
447
The `restore` command lets you restore all objects and persistent volumes from a previously created backup. You can also restore only a filtered subset of objects and persistent volumes. For more backup options, see [Resource filtering](https://velero.io/docs/v1.9/resource-filtering/).
456
448
457
-
On the cluster that you want to restore the backup to (the *destination cluster*):
449
+
On the cluster to which you want to restore the backup (the *destination cluster*):
458
450
459
451
1. Deploy Velero by using the instructions above. Use the same Azure credentials that you used for the source cluster.
460
452
@@ -477,13 +469,13 @@ To see all options associated with a specific Velero command, use the `--help` f
477
469
For example, to list all options of `velero restore`, run `velero restore --help`, which returns the following information:
The Kubernetes Secrets Store CSI Driver integrates secrets stores with Kubernetes through a [Container Storage Interface (CSI) volume](https://kubernetes-csi.github.io/docs/). If you integrate the Secrets Store CSI Driver with AKS on Windows Server, you can mount secrets, keys, and certificates as a volume. The data is then mounted in the container's file system.
18
+
The *Kubernetes Secrets Store CSI driver* integrates secrets stores with Kubernetes using a [Container Storage Interface (CSI) volume](https://kubernetes-csi.github.io/docs/). If you integrate the Secrets Store CSI driver with AKS on Windows Server, you can mount secrets, keys, and certificates as a volume. The data is then mounted in the container's file system.
19
19
20
20
With the Secrets Store CSI driver, you can also integrate a key vault with one of the supported providers, such as [Azure Key Vault](/azure/key-vault/general/overview).
21
21
@@ -105,7 +105,7 @@ az keyvault secret set --vault-name <keyvault-name> -n ExampleSecret --value MyA
105
105
106
106
## Create an identity in Azure
107
107
108
-
Use a service principal to access the Azure Key Vault instance that you created in the previous step. You should record the outputs when running the following commands. You use both the client secret and client ID in the next steps.
108
+
Use a service principal to access the Azure Key Vault instance that you created in the previous step. You should record the output when running the following commands. You use both the client secret and client ID in the next steps.
109
109
110
110
Provide the client secret by running the following command:
## Create and apply your own SecretProviderClass object
145
145
146
-
To use and configure the Secrets Store CSI driver for your Kubernetes cluster, create a `SecretProviderClass` custom resource. Ensure the `objects` array matches the objects you've stored in the Azure Key Vault instance:
146
+
To use and configure the Secrets Store CSI driver for your Kubernetes cluster, create a `SecretProviderClass` custom resource. Ensure the `objects` array matches the objects you stored in the Azure Key Vault instance:
147
147
148
148
```yaml
149
149
apiVersion: secrets-store.csi.x-k8s.io/v1alpha1
150
150
kind: SecretProviderClass
151
151
metadata:
152
-
name: <keyvault-name> # The name of the Azure Key Vault
152
+
name: <keyvault-name> # The name of the Azure key vault
153
153
namespace: kube-system
154
154
spec:
155
155
provider: azure
156
156
parameters:
157
-
keyvaultName: "<keyvault-name>"# The name of the Azure Key Vault
157
+
keyvaultName: "<keyvault-name>"# The name of the Azure key vault
158
158
useVMManagedIdentity: "false"
159
159
userAssignedIdentityID: "false"
160
-
cloudName: ""# [OPTIONAL for Azure] if not provided, Azure environment defaults to AzurePublicCloud
160
+
cloudName: ""# [OPTIONAL for Azure] if not provided, the Azure environment defaults to AzurePublicCloud
161
161
objects: |
162
162
array:
163
163
- |
164
164
objectName: <secret-name> # In this example, 'ExampleSecret'
165
165
objectType: secret # Object types: secret, key or cert
166
166
objectVersion: "" # [OPTIONAL] object versions, default to latest if empty
167
-
tenantId: "<tenant-id>"#the tenant ID containing the Azure Key Vault instance
167
+
tenantId: "<tenant-id>"#The tenant ID containing the Azure Key Vault instance
0 commit comments