千家信息网

Rancher K8S集群怎样恢复丢失的kubeconfig配置文件

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章给大家介绍Rancher K8S集群怎样恢复丢失的kubeconfig配置文件,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。分析 Rancher UI 生成的 kubec
千家信息网最后更新 2026年11月02日Rancher K8S集群怎样恢复丢失的kubeconfig配置文件

这篇文章给大家介绍Rancher K8S集群怎样恢复丢失的kubeconfig配置文件,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

分析 Rancher UI 生成的 kubeconfig 文件可以发现,第一个server对应的是 Rancher Server 的 url 或者 IP。当 kubectl 访问 K8S API SERVER 的时候,请求是先发送到 Rancher,然后再通过 cluster agent 转发给 K8S API SERVER。

在 Rancher v2.2.2 以前的版本,Rancher UI 生成的 kubecfg 文件中只设置了一个server。从 Rancher v2.2.2 开始,从 Rancher UI 创建的集群默认开启授权集群访问地址。创建好集群后 Rancher UI 生成的 kubecfg 文件中将显示多个 master 节点 IP 对应的server。

因此,Rancher v2.2.2以及之后版本通过 Rancher UI 创建的集群,如果 Rancher Server 无法访问,那么可以通过kubectl --kubeconfig=xxx --context=xxx来切换server,但是前提是需要提前从 Rancher UI 保存 kubeconfig 文件。

如果 Rancher Server 无法访问,对于Rancher v2.2.2之前的版本或者未提前保存 kubeconfig 的,可通过以下脚本找回kube-admin配置文件。

注意: 以下脚本需要在业务集群上执行,任意一个节点即可。保存以下文本为restore-kube-config.sh

#!/bin/bash

help ()
{
echo ' ================================================================ '
echo ' --master-ip: 指定 Master 节点 IP,任意一个 K8S Master 节点 IP 即可。'
echo ' 使用示例:bash restore-kube-config.sh --master-ip=1.1.1.1 '
echo ' ================================================================'
}

case "$1" in
-h|--help) help; exit;;
esac

if [[ $1 == '' ]]; then
help;
exit;
fi

CMDOPTS="$*"
for OPTS in $CMDOPTS;
do
key=$(echo ${OPTS} | awk -F"=" '{print $1}' )
value=$(echo ${OPTS} | awk -F"=" '{print $2}' )
case "$key" in
--master-ip) K8S_MASTER_NODE_IP=$value ;;
esac
done

# 获取 Rancher Agent 镜像
RANCHER_IMAGE=$( docker images --filter=label=io.cattle.agent=true |grep 'v2.' | \
grep -v -E 'rc|alpha|' | head -n 1 | awk '{print $3}' )

if [[ -d /etc/kubernetes/ssl ]]; then
K8S_SSLDIR=/etc/kubernetes/ssl
else
echo '/etc/kubernetes/ssl 目录不存在'
exit 1
fi

CHECK_CLUSTER_STATE_CONFIGMAP=$( docker run --rm --entrypoint bash --net=host \
-v $K8S_SSLDIR:/etc/kubernetes/ssl:ro $RANCHER_IMAGE -c '\
if kubectl --kubeconfig /etc/kubernetes/ssl/kubecfg-kube-node.yaml \
-n kube-system get configmap full-cluster-state | grep full-cluster-state > /dev/null; then \
echo 'yes'; else echo 'no'; fi' )

if [[ $CHECK_CLUSTER_STATE_CONFIGMAP != 'yes' ]]; then

docker run --rm --net=host \
--entrypoint bash \
-e K8S_MASTER_NODE_IP=$K8S_MASTER_NODE_IP \
-v $K8S_SSLDIR:/etc/kubernetes/ssl:ro \
$RANCHER_IMAGE \
-c '\
kubectl --kubeconfig /etc/kubernetes/ssl/kubecfg-kube-node.yaml \
-n kube-system \
get secret kube-admin -o jsonpath={.data.Config} | base64 --decode | \
sed -e "/^[[:space:]]*server:/ s_:.*_: \"https://${K8S_MASTER_NODE_IP}:6443\"_"' > kubeconfig_admin.yaml

if [[ -s kubeconfig_admin.yaml ]]; then
echo '恢复成功,执行以下命令测试:'
echo ''
echo "kubectl --kubeconfig kubeconfig_admin.yaml get nodes"
else
echo "kubeconfig 恢复失败。"
fi

else

docker run --rm --entrypoint bash --net=host \
-e K8S_MASTER_NODE_IP=$K8S_MASTER_NODE_IP \
-v $K8S_SSLDIR:/etc/kubernetes/ssl:ro \
$RANCHER_IMAGE \
-c '\
kubectl --kubeconfig /etc/kubernetes/ssl/kubecfg-kube-node.yaml \
-n kube-system \
get configmap full-cluster-state -o json | \
jq -r .data.\"full-cluster-state\" | \
jq -r .currentState.certificatesBundle.\"kube-admin\".config | \
sed -e "/^[[:space:]]*server:/ s_:.*_: \"https://${K8S_MASTER_NODE_IP}:6443\"_"' > kubeconfig_admin.yaml

if [[ -s kubeconfig_admin.yaml ]]; then
echo '恢复成功,执行以下命令测试:'
echo ''
echo "kubectl --kubeconfig kubeconfig_admin.yaml get nodes"
else
echo "kubeconfig 恢复失败。"
fi
fi

关于Rancher K8S集群怎样恢复丢失的kubeconfig配置文件就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

文件 集群 节点 配置 版本 生成 成功 内容 命令 更多 脚本 帮助 测试 不错 业务 中将 兴趣 前提 可以通过 地址 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广东万易互联网科技有限公司惠州分公司 互联网科技工作委员会 湖南永感互联网科技有限公司 科技股互联网 互联网扶贫科技 青岛互联网科技公司 互联网科技股票 壹账通互联网科技 上海亿帐通互联网科技 呼和浩特新华互联网科技学院 青海科技产业互联网发展 烟台灵鸽互联网科技有限公司 工业互联网山东科技大学 互联网风格科技公司名称 互联网科技包装股 抖集互联网科技技术咨询 长沙渺峰互联网科技有限公司 米泉互联网科技专业怎么样 数字互联网科技有限公司 山东蛋芒互联网科技有限公司 科技互联网产品 科技赋能下的互联网金融 蓝色互联网科技 深圳前海聚择互联网科技有限公司 朱啸虎曾投资哪些互联网科技企业 科技互联网海报 伍佰万互联网科技怎么赚钱 互联网安防科技感 互联网的黑科技实验室 株洲百竞科技的互联网营销顾问
0