This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.6.5.3. Configurazione di Amazon Web Services
Si configura lo storage a oggetti Amazon Web Services (AWS) S3 come repository di replica per il Migration Toolkit for Containers (MTC).
Requisiti
- È necessario che sia installata l'interfaccia della riga di comando di AWS.
- Il bucket di storage AWS S3 deve essere accessibile ai cluster di origine e di destinazione.
Se si utilizza il metodo di copia degli snapshot:
- È necessario avere accesso a EC2 Elastic Block Storage (EBS).
- I cluster di origine e di destinazione devono trovarsi nella stessa area geografica.
- I cluster di origine e di destinazione devono avere la stessa classe di storage.
- La classe di storage deve essere compatibile con gli snapshot.
Procedura
Impostare la variabile
BUCKET
:BUCKET=<your_bucket>
$ BUCKET=<your_bucket>
Copy to Clipboard Copied! Impostare la variabile
REGION
:REGION=<your_region>
$ REGION=<your_region>
Copy to Clipboard Copied! Creare un bucket AWS S3:
aws s3api create-bucket \ --bucket $BUCKET \ --region $REGION \ --create-bucket-configuration LocationConstraint=$REGION
$ aws s3api create-bucket \ --bucket $BUCKET \ --region $REGION \ --create-bucket-configuration LocationConstraint=$REGION
1 Copy to Clipboard Copied! - 1
us-east-1
non supporta unLocationConstraint
. Se l'area geografica èus-east-1
, omettere--create-bucket-configuration LocationConstraint=$REGION
.
Creare un utente IAM:
aws iam create-user --user-name velero
$ aws iam create-user --user-name velero
1 Copy to Clipboard Copied! - 1
- Se si desidera utilizzare Velero per eseguire il backup di più cluster con più bucket S3, creare un nome utente unico per ogni cluster.
Creare un file
velero-policy.json:
cat > velero-policy.json <<EOF { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:DescribeVolumes", "ec2:DescribeSnapshots", "ec2:CreateTags", "ec2:CreateVolume", "ec2:CreateSnapshot", "ec2:DeleteSnapshot" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:DeleteObject", "s3:PutObject", "s3:AbortMultipartUpload", "s3:ListMultipartUploadParts" ], "Resource": [ "arn:aws:s3:::${BUCKET}/*" ] }, { "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::${BUCKET}" ] } ] } EOF
$ cat > velero-policy.json <<EOF { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:DescribeVolumes", "ec2:DescribeSnapshots", "ec2:CreateTags", "ec2:CreateVolume", "ec2:CreateSnapshot", "ec2:DeleteSnapshot" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:DeleteObject", "s3:PutObject", "s3:AbortMultipartUpload", "s3:ListMultipartUploadParts" ], "Resource": [ "arn:aws:s3:::${BUCKET}/*" ] }, { "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::${BUCKET}" ] } ] } EOF
Copy to Clipboard Copied! Allegare i criteri per dare all'utente
velero
le autorizzazioni necessarie:aws iam put-user-policy \ --user-name velero \ --policy-name velero \ --policy-document file://velero-policy.json
$ aws iam put-user-policy \ --user-name velero \ --policy-name velero \ --policy-document file://velero-policy.json
Copy to Clipboard Copied! Creare una chiave di accesso per l'utente
velero
:aws iam create-access-key --user-name velero
$ aws iam create-access-key --user-name velero
Copy to Clipboard Copied! Esempio di output
{ "AccessKey": { "UserName": "velero", "Status": "Active", "CreateDate": "2017-07-31T22:24:41.576Z", "SecretAccessKey": <AWS_SECRET_ACCESS_KEY>, "AccessKeyId": <AWS_ACCESS_KEY_ID> } }
{ "AccessKey": { "UserName": "velero", "Status": "Active", "CreateDate": "2017-07-31T22:24:41.576Z", "SecretAccessKey": <AWS_SECRET_ACCESS_KEY>, "AccessKeyId": <AWS_ACCESS_KEY_ID> } }
Copy to Clipboard Copied! Registrare
AWS_SECRET_ACCESS_KEY
eAWS_ACCESS_KEY_ID
. Si utilizzano le credenziali per aggiungere AWS come repository di replica.