1

使用velero (v1.7) 备份工具,我正在尝试备份集群数据和卷数据,因为我使用 restic 安装了 velero。我在 Azure 的 k8s 集群中部署了 velero,并使用 Azure Blob 容器作为备份存储位置。

我用来安装 velero 服务器的 credentials-velero 文件类似于:

AZURE_SUBSCRIPTION_ID=<subs-id>
AZURE_TENANT_ID=<tenant-id>
AZURE_CLIENT_ID=<client-id>
AZURE_CLIENT_SECRET=<client-secret>
AZURE_RESOURCE_GROUP=<rg>
AZURE_CLOUD_NAME=AzurePublicCloud

我使用“ az ad sp create-for-rbac --name "<service-principal-name>" --role "Contributor" --query 'password' -o tsv --scopes /subscriptions/$AZURE_SUBSCRIPTION_ID”命令获取客户端密码并az ad sp list --display-name "<service-principal-name>" --query '[0].appId' -o tsv获取客户端 ID。

我创建了一个计划备份,它每周进行一次完整的集群备份。我安装 velero 并启用备份已经 3 个月了。但最近几天,我在 velero pod 中收到以下日志:

level=error msg="Error getting backup store for this location" backupLocation=default controller=backup-sync error="rpc error: code = Unknown desc = azure.BearerAuthorizer#WithAuthorization: Failed to refresh the Token for request to https://management.azure.com/subscriptions/<subs-id>/resourceGroups/<rg>/providers/Microsoft.Storage/storageAccounts/<storage-acount-name>/listKeys?%24expand=kerb&api-version=2019-06-01: StatusCode=401 -- Original Error: adal: Refresh request failed. Status Code = '401'. Response body: {\"error\":\"invalid_client\",\"error_description\":\"AADSTSxyzabc: Invalid client secret is provided.\\r\\nTrace ID: <trace-id>\\r\\nCorrelation ID: <correlation-id>\\r\\nTimestamp: 2021-11-03 08:09:17Z\",\"error_codes\":[err-code],\"timestamp\":\"2021-11-03 08:09:17Z\",\"trace_id\":\"<trace-id>\",\"correlation_id\":\"<correlation-id>\",\"error_uri\":\"https://login.microsoftonline.com/error?code=<err-code>\"}" error.file="/go/src/velero-plugin-for-microsoft-azure/velero-plugin-for-microsoft-azure/object_store.go:217" error.function=main.getStorageAccountKey logSource="pkg/controller/backup_sync_controller.go:175"

在 azure 门户中,我已将客户端密码的到期时间设置为 2 年左右。但是 velero 日志显示提供了无效的客户端密码。

那么,谁能指导我解决这个问题?提前致谢。

4

0 回答 0