问题描述
在使用公有云的某个node机器上使用helm命令去进行升级的时候出现如下的问题:
helm upgrade XXXX 组件名WARNING: Invalid auth configuration file github.com/docker/cli/cli/config/configfile.decodeAuth github.com/docker/cli@v20.10.21+incompatible/cli/config/configfile/file.go:297 github.com/docker/cli/cli/config/configfile.(*ConfigFile).LoadFromReader github.com/docker/cli@v20.10.21+incompatible/cli/config/configfile/file.go:128 github.com/docker/cli/cli/config.load github.com/docker/cli@v20.10.21+incompatible/cli/config/config.go:130 github.com/docker/cli/cli/config.Load github.com/docker/cli@v20.10.21+incompatible/cli/config/config.go:111 oras.land/oras-go/pkg/auth/docker.NewClientWithDockerFallback oras.land/oras-go@v1.2.2/pkg/auth/docker/client.go:86 helm.sh/helm/v3/pkg/registry.NewClient helm.sh/helm/v3/pkg/registry/client.go:83 main.newRootCmd helm.sh/helm/v3/cmd/helm/root.go:155 main.main helm.sh/helm/v3/cmd/helm/helm.go:66 runtime.main runtime/proc.go:250 runtime.goexit runtime/asm_amd64.s:1571 /root/.docker/config.json github.com/docker/cli/cli/config.load github.com/docker/cli@v20.10.21+incompatible/cli/config/config.go:132 github.com/docker/cli/cli/config.Load github.com/docker/cli@v20.10.21+incompatible/cli/config/config.go:111 oras.land/oras-go/pkg/auth/docker.NewClientWithDockerFallback oras.land/oras-go@v1.2.2/pkg/auth/docker/client.go:86 helm.sh/helm/v3/pkg/registry.NewClient helm.sh/helm/v3/pkg/registry/client.go:83 main.newRootCmd helm.sh/helm/v3/cmd/helm/root.go:155 main.main helm.sh/helm/v3/cmd/helm/helm.go:66 runtime.main runtime/proc.go:250 runtime.goexit runtime/asm_amd64.s:1571 |
解决方案
查找到stackoverflow上有个相同的问题:https://stackoverflow.com/questions/75156838/warning-invalid-auth-configuration-file-message-while-using-helm3
处理步骤:
1.登陆执行helm报错的那台机器
2.执行如下的命令(需要和执行Helm要是同一个用户):
mv ~/.docker /config .json ~/.docker /config .json_bak_xxxxx |
3.在此执行Helm命令,发现正常了
4.执行docker login 命令,促使生成~/.docker/config.json文件
原因解释
helm在执行的时候,会去读取本地的~/.docker/config.json文件,然后这个config.json文件记录了曾经执行docker login成功的镜像仓库地址以及对应的auth认证信息,如果有一个出错了,
例如:harbor的域名修改了,以前是wooring.com,现在这个域名不存在了,改成了wooring.cn或者是wooring.cn对应的用户名和密码在一段时间后修改了等等。
所以在执行的时候就会报错这个信息