我有一个安装了 Velero 的 Azure Kubernetes 集群。根据说明的选项 1,为 Velero 创建了服务主体。
Velero 工作正常,直到服务主体的凭据被重置。现在计划的备份失败了。
NAME STATUS ERRORS WARNINGS CREATED EXPIRES STORAGE LOCATION SELECTOR
daily-entire-cluster-20210727030055 Failed 0 0 2021-07-26 23:00:55 -0000 13d default <none>
如何更新 Velero 的秘密?
首先,更新您的凭证文件(对于大多数提供商来说,这是
credentials-velero
,其内容在插件安装说明中进行了描述:AWS、Azure、GCP)
现在更新 velero 秘密。在 Linux 上:
kubectl patch -n velero secret cloud-credentials -p '{"data": {"cloud": "'$(base64 -w 0 credentials-velero)'"}}'
patch
告诉 kubectl
通过合并提供的数据来更新资源-n velero
告诉 kubectl
使用 velero
命名空间secret
是资源类型cloud-credentials
是 Velero 用于存储凭证的密钥名称-p
指定下一个字是补丁数据。使用 JSON 而不是 YAML 进行修补更常见'{"data": {"cloud": "<your-base64-encoded-secret-will-go-here>"}}'
这是与 Kubernetes 中 Velero 秘密的现有结构相匹配的 JSON 数据。 <your-base64-encoded-secret-will-go-here>
是我们将插入的命令的占位符。$(base64 -w 0 credentials-velero)
读取当前目录中的文件 credentials-velero
,关闭输出的自动换行 (-w 0
),对文件内容进行 BASE64 编码,并将结果插入到数据中。