我有一个安装了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)
kubectl patch -n velero secret cloud-credentials -p '{"data": {"cloud": "'$(base64 -w 0 credentials-velero)'"}}'
patch
告诉kubectl
通过合并提供的数据来更新资源-n velero
告诉kubectl
使用velero
命名空间cloud-credentials
是Velero用来存储凭据的密钥的名称-p
指定下一个字为补丁数据。使用JSON打补丁比使用YAML 更常见'{"data": {"cloud": "<your-base64-encoded-secret-will-go-here>"}}'
这是与Kubernetes中Velero secret的现有结构匹配的JSON数据。<your-base64-encoded-secret-will-go-here>
是我们将要插入的命令的占位符。$(base64 -w 0 credentials-velero)
读取当前目录下的文件credentials-velero
,关闭输出(-w 0
)的换行,对文件内容进行base64编码,并将结果插入数据中。
secret
为资源类型