使用存储访问密钥创建 Velero 存储位置时遇到问题

Trouble creating Velero storage location with storage access key

我正在尝试使用 Velero 备份 AKS 集群,但出于某种原因我无法在 velero 中设置备份位置。

我收到以下错误

我可以确认我拥有的 credentials-velero 文件获得了正确的存储访问密钥,并且秘密(cloud-credentials)也反映了它。

有点不知所措,为什么会抛出这个错误。以前从未使用过 Velero。

编辑:

所以我使用了以下命令来获取凭证文件:

获取 Azure 存储帐户访问密钥

AZURE_STORAGE_ACCOUNT_ACCESS_KEY=`az storage account keys list --account-name storsmaxdv --query "[?keyName == 'key1'].value" -o tsv`

然后我创建凭证文件

cat << EOF  > ./credentials-velero
AZURE_STORAGE_ACCOUNT_ACCESS_KEY=${AZURE_STORAGE_ACCOUNT_ACCESS_KEY}
AZURE_CLOUD_NAME=AzurePublicCloud
EOF

那么我的安装命令是:

./velero install \
    --provider azure 
    --plugins velero/velero-plugin-for-microsoft-azure:v1.3.0 \
    --bucket velero \
    --secret-file ./credentials-velero \
    --backup-location-config resourceGroup=resourcegroupname,storageAccount=storageAccount,storageAccountKeyEnvVar=AZURE_STORAGE_ACCOUNT_ACCESS_KEY[,subscriptionId=numbersandlettersandstuff] \
    --use-volume-snapshots=false

我可以验证 Velero 创建了一个名为 cloud-credentials 的秘密,当我使用 base64 解密它时,我能够看到我的 credentials-velero 文件的内容。例如:

AZURE_STORAGE_ACCOUNT_ACCESS_KEY=MYAZURESTORAGEACCOUNTKEY
AZURE_CLOUD_NAME=AzurePublicCloud

不确定您的 cred 文件格式如何以及您使用的命令 运行。

请尝试以下文件并根据需要更新命令。

示例命令:

./velero install --provider azure --plugins velero/velero-plugin-for-microsoft-azure:v1.0.1 --bucket velero-cluster-backups --backup-location-config resourceGroup=STORAGE-ACCOUNT-RESOURCEGROUP,storageAccount=STORAGEACCOUNT --use-volume-snapshots=false --secret-file ./credentials-velero

信誉文件

AZURE_STORAGE_ACCOUNT_ACCESS_KEY=MYAZURESTORAGEACCOUNTKEY
AZURE_CLOUD_NAME=AzurePublicCloud

我建议检查在 K8s 集群中创建的秘密,并检查该秘密和数据的格式。

在此处参考更多内容:https://github.com/vmware-tanzu/velero/issues/2272

检查这个插件:https://github.com/vmware-tanzu/velero-plugin-for-microsoft-azure

1:在 Azure 广告中为 velero 创建服务主体

您可以创建以下格式的凭证文件

AZURE_CLOUD_NAME=AzurePublicCloud
AZURE_SUBSCRIPTION_ID=*************
AZURE_TENANT_ID=**************
AZURE_CLIENT_ID=********
AZURE_CLIENT_SECRET=**********
AZURE_RESOURCE_GROUP=(name of your cluster resorce group where your pvc reside)

原来是安装命令中的括号导致了问题

--backup-location-config resourceGroup=resourcegroupname,storageAccount=storageAccount,storageAccountKeyEnvVar=AZURE_STORAGE_ACCOUNT_ACCESS_KEY[,subscriptionId=numbersandlettersandstuff] \

删除了括号:

--backup-location-config resourceGroup=resourcegroupname,storageAccount=storageAccount,storageAccountKeyEnvVar=AZURE_STORAGE_ACCOUNT_ACCESS_KEY,subscriptionId=numbersandlettersandstuff \

现在可以使用了