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

发布时间:2021-12-16 09:36:39 作者:柒染
来源:亿速云 阅读:1221
# Rancher K8S集群怎样恢复丢失的kubeconfig配置文件

## 前言

在Kubernetes集群管理中,`kubeconfig`文件是连接集群的关键凭证。当使用Rancher管理的K8S集群时,若因误删除、系统故障或配置错误导致该文件丢失,将直接影响集群管理能力。本文将详细介绍5种恢复方案,涵盖从Rancher UI到底层ETCD的全链路操作。

---

## 一、理解kubeconfig文件结构

### 1.1 核心组成部分
```yaml
apiVersion: v1
kind: Config
clusters:
- cluster:
    certificate-authority-data: LS0t... # 集群CA证书
    server: https://<cluster-api-endpoint>
  name: <cluster-name>
users:
- name: <user-name>
  user:
    client-certificate-data: LS0t... # 客户端证书
    client-key-data: LS0t...        # 私钥
contexts:
- context:
    cluster: <cluster-name>
    user: <user-name>
  name: <context-name>
current-context: <context-name>

1.2 Rancher特有配置


二、通过Rancher UI恢复(标准方案)

2.1 操作步骤

  1. 登录Rancher控制台
  2. 进入目标集群 → Kubeconfig文件
  3. 点击下载按钮获取新配置文件
  4. 保存到~/.kube/config或指定路径

2.2 权限要求

2.3 常见问题处理


三、通过kubectl命令重建

3.1 已有有效会话时

# 导出当前配置
kubectl config view --raw > new_kubeconfig.yaml

# 测试连通性
kubectl --kubeconfig=new_kubeconfig.yaml get nodes

3.2 通过ServiceAccount创建

# 创建管理员ServiceAccount
kubectl -n kube-system create serviceaccount kubeconfig-recovery

# 绑定cluster-admin角色
kubectl create clusterrolebinding kubeconfig-recovery \
  --clusterrole=cluster-admin \
  --serviceaccount=kube-system:kubeconfig-recovery

# 获取Token
SECRET=$(kubectl -n kube-system get sa kubeconfig-recovery -o jsonpath='{.secrets[0].name}')
TOKEN=$(kubectl -n kube-system get secret $SECRET -o jsonpath='{.data.token}' | base64 -d)

# 生成kubeconfig
cat <<EOF > recovered-config
apiVersion: v1
kind: Config
clusters:
- cluster:
    certificate-authority-data: $(kubectl get secret $SECRET -o jsonpath='{.data.ca\.crt}')
    server: $(kubectl config view -o jsonpath='{.clusters[0].cluster.server}')
  name: recovered-cluster
users:
- name: service-account
  user:
    token: $TOKEN
contexts:
- context:
    cluster: recovered-cluster
    user: service-account
  name: default
current-context: default
EOF

四、从Rancher部署的ETCD恢复

4.1 获取集群CA证书

# 查找Rancher部署的ETCD Pod
kubectl -n cattle-system get pods -l app=rancher

# 导出CA证书
kubectl -n cattle-system exec rancher-xxx -- cat /var/lib/rancher/management-state/tls/ca.crt > rancher-ca.crt

4.2 直接连接API Server

apiVersion: v1
kind: Config
clusters:
- cluster:
    certificate-authority: rancher-ca.crt
    server: https://<rancher-server-ip>:6443
  name: direct-access
users:
- name: etcd-recovery
  user:
    client-certificate: /path/to/client.crt
    client-key: /path/to/client.key

4.3 注意事项


五、通过Rancher API恢复

5.1 获取API Token

  1. 在Rancher UI创建API Key
  2. 记录Bearer Token

5.2 调用集群注册端点

CLUSTER_ID="c-xxxxx"
RANCHER_URL="https://your-rancher.com"
API_TOKEN="token-xxxx:yyyy"

curl -u "$API_TOKEN" \
  "$RANCHER_URL/v3/clusters/$CLUSTER_ID?action=generateKubeconfig" \
  -X POST -H 'Content-Type: application/json' \
  --data-raw '{}' | jq -r .config > recovered.conf

六、灾难恢复方案

6.1 从备份系统恢复

6.2 重建Rancher管理集群

当Rancher自身故障时:

docker run -d --restart=unless-stopped \
  -p 80:80 -p 443:443 \
  -v /opt/rancher:/var/lib/rancher \
  --privileged \
  rancher/rancher:latest \
  --acme-domain yourdomain.com

七、安全加固建议

  1. 多因素认证:启用Rancher的MFA功能
  2. 定期轮换证书
    
    rancher certificates rotate
    
  3. 配置审计日志: “`yaml apiVersion: audit.k8s.io/v1 kind: Policy rules:
    • level: Metadata
    ”`
  4. kubeconfig文件加密存储
    
    gpg --encrypt --recipient admin@company.com kubeconfig.yaml
    

结语

通过上述方法,可应对不同场景下的kubeconfig丢失问题。建议企业用户: - 至少保留两种恢复途径 - 定期测试恢复流程 - 建立凭证管理SOP

附:Rancher官方文档参考链接
备份恢复指南
Kubernetes认证文档 “`

推荐阅读:
  1. Rancher Server如何配置多节点kubernetes集群
  2. rancher集成gitlab教程

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

rancher k8s kubeconfig

上一篇:html5实现下拉列表的标签是什么

下一篇:Linux sftp命令的用法是怎样的

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》