如何撤销kubectl config view覆盖kubeconfig导致的集群访问故障
问题原因
执行kubectl config view --raw > ~/.kube/config时,重定向操作会直接清空并覆盖原有的~/.kube/config文件。如果执行命令前你的KUBECONFIG环境变量未正确指向有效配置、或者当前加载的配置本身不完整,覆盖后的文件会丢失集群API Server地址、认证证书、上下文绑定等核心信息。kubectl读取不到有效集群连接配置时,会默认请求本地localhost:8080地址的API Server,自然会出现连接被拒绝的报错。
恢复操作
根据你的集群部署类型选择对应方案即可:
- 自建kubeadm集群
- 登录集群的master控制节点,将节点上预置的管理员配置文件拷贝到用户目录:
sudo cp /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config - 如果是在本地个人电脑上执行了错误命令,把master节点上生成的这个
$HOME/.kube/config文件下载到本地,替换本地~/.kube/路径下的错误配置文件即可。
- 登录集群的master控制节点,将节点上预置的管理员配置文件拷贝到用户目录:
- 云服务商托管集群
直接登录对应云平台的容器服务控制台,找到目标集群的kubeconfig下载入口,重新下载完整的配置文件,替换本地~/.kube/config即可。 - 存在本地备份的场景
如果你之前手动备份过kubeconfig文件,直接将备份文件重命名为config,放回~/.kube/目录覆盖错误文件即可。
恢复验证
配置替换完成后,执行以下命令校验连通性:
kubectl get nodes
命令正常返回集群节点列表即代表恢复完成,可正常执行helm相关操作。
注意:后续修改kubeconfig前建议先备份原文件,尽量使用kubectl config系列子命令修改配置,不要直接用重定向覆盖config文件避免类似问题。
内容的提问来源于stack exchange,提问作者user101
相关产品推荐
相关产品推荐

