【问题标题】:Trouble creating Velero storage location with storage access key使用存储访问密钥创建 Velero 存储位置时遇到问题
【发布时间】:2022-01-15 05:21:44
【问题描述】:

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

我收到以下错误

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

有点不知所措为什么会向我抛出这个错误。以前从未使用过 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

【问题讨论】:

    标签: azure kubernetes backup azure-aks velero


    【解决方案1】:

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

    --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 \
    

    现在可以了

    【讨论】:

      【解决方案2】:

      不确定您的 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

      【讨论】:

      • 所以我使用以下命令获取凭据文件:获取 Azure 存储帐户访问密钥AZURE_STORAGE_ACCOUNT_ACCESS_KEY=`az storage account keys list --account-name storsmaxdv --query "[?keyName == 'key1'].value" -o tsv 然后我创建凭据文件cat &lt;&lt; EOF &gt; ./credentials-velero AZURE_STORAGE_ACCOUNT_ACCESS_KEY=${AZURE_STORAGE_ACCOUNT_ACCESS_KEY} AZURE_CLOUD_NAME=AzurePublicCloud EOF
      • 请看我的问题编辑,我更澄清了我的情况
      【解决方案3】:

      1:在 azure ad 中为 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)
      
      

      【讨论】:

        猜你喜欢
        • 2011-02-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-11-08
        • 2014-08-11
        • 2013-09-10
        • 1970-01-01
        相关资源
        最近更新 更多