首页
/ Velero 在 Azure 环境中配置备份存储位置的关键注意事项

Velero 在 Azure 环境中配置备份存储位置的关键注意事项

2025-05-25 20:08:34作者:冯梦姬Eddie

问题背景

在使用 Velero 进行 Kubernetes 集群备份时,Azure 用户可能会遇到备份存储位置(BackupStorageLocation)无法正常配置的问题。具体表现为执行 velero backup-location get 命令时返回 Unavailable 状态,同时查看 BackupStorageLocation 资源时出现"no storage account access key with key found in credential"的错误提示。

核心问题分析

这个问题的根源通常在于 Azure 存储账户访问密钥的配置方式不正确。当 Velero 无法正确识别和验证存储账户的访问密钥时,就会导致备份存储位置不可用。以下是几个关键的技术要点:

  1. 访问密钥的传递方式:Velero 通过环境变量方式获取 Azure 存储账户的访问密钥,这需要在 credentials 文件中明确指定。

  2. Windows 系统的特殊处理:在 Windows 系统上执行安装时,环境变量的处理方式与 Linux 系统有所不同,容易导致配置参数传递不正确。

  3. 跨订阅访问:当存储账户位于与 AKS 集群不同的订阅时,需要特别注意订阅 ID 的正确配置。

正确配置方法

要正确配置 Velero 使用 Azure 存储账户作为备份位置,需要遵循以下步骤:

  1. 准备 credentials 文件: 创建一个名为 credentials-velero 的文件,内容格式应为:

    AZURE_STORAGE_ACCOUNT_ACCESS_KEY=<你的Azure存储账户访问密钥>
    
  2. 执行安装命令: 使用以下命令安装 Velero,特别注意参数的正确性:

    velero install \
        --provider azure \
        --plugins velero/velero-plugin-for-microsoft-azure:v1.10.1 \
        --bucket $BLOB_CONTAINER \
        --secret-file ./credentials-velero \
        --backup-location-config \
            resourceGroup=$AZURE_BACKUP_RESOURCE_GROUP,\
            storageAccount=$AZURE_STORAGE_ACCOUNT_ID,\
            storageAccountKeyEnvVar=AZURE_STORAGE_ACCOUNT_ACCESS_KEY,\
            subscriptionId=$AZURE_BACKUP_SUBSCRIPTION_ID \
        --use-volume-snapshots=false
    
  3. 关键参数说明

    • storageAccountKeyEnvVar 必须与 credentials 文件中的变量名完全一致
    • 确保所有变量值都正确传递,特别是在 Windows 环境下要注意特殊字符的处理
    • 对于跨订阅场景,确认 subscriptionId 参数正确

验证配置

安装完成后,可以通过以下命令验证配置是否成功:

  1. 检查备份存储位置状态:

    velero backup-location get
    

    期望输出中的 PHASE 应为 Available 而非 Unavailable。

  2. 查看 BackupStorageLocation 资源详情:

    kubectl describe bsl default -n velero
    

    不应再出现"no storage account access key"的错误信息。

总结

正确配置 Velero 与 Azure 存储账户的集成需要注意几个关键点:credentials 文件的格式、环境变量名的匹配、跨订阅访问的配置以及在 Windows 系统上的特殊处理。遵循上述步骤和注意事项,可以避免常见的配置错误,确保备份存储位置能够正常使用。对于生产环境,建议先在测试环境验证配置,确认无误后再应用到生产集群。

登录后查看全文
热门项目推荐
相关项目推荐