讲师中心 微信公众号
AI工具推荐 视频效率加速

K8s怎么恢复意外丢失的Etcd超级管理员凭证

胖枫同学_3220

胖枫同学_3220

发布时间:2026-11-04 13:17:38

|

723人浏览过

|

来源于php中文网

原创

当etcd超级管理员凭证丢失时,需重建可信访问链:先确认ca.crt、server.crt、server.key缺失情况;有健康节点则直接复制证书并修复权限;无健康节点则利用kubeadm配置和根CA重建证书;最后通过etcdctl验证连接是否正常。

k8s怎么恢复意外丢失的etcd超级管理员凭证

当Kubernetes集群中etcd的超级管理员凭证(CA证书、server.crt、server.key)被意外删除,导致无法执行etcdctl操作或恢复快照时,必须绕过原有证书体系重建可信访问链,否则所有etcd备份与恢复动作都将失败。

确认凭证丢失范围

先验证哪些文件确实缺失:检查 /etc/kubernetes/pki/etcd/ 目录下是否存在 ca.crt、server.crt、server.key 三个关键文件。若任一缺失,即判定为凭证链断裂。

运行命令快速筛查:ls -l /etc/kubernetes/pki/etcd/{ca.crt,server.crt,server.key} 2>/dev/null || echo "至少一个文件不存在"。

从健康节点复制完整证书链

若集群中仍有至少一个Master节点正常运行且etcd可达,则直接复用其证书是最安全、最高效的方式。

在故障节点执行:

ssh root@healthy-master-ip 'cat /etc/kubernetes/pki/etcd/ca.crt' > /etc/kubernetes/pki/etcd/ca.crt

ssh root@healthy-master-ip 'cat /etc/kubernetes/pki/etcd/server.crt' > /etc/kubernetes/pki/etcd/server.crt

ssh root@healthy-master-ip 'cat /etc/kubernetes/pki/etcd/server.key' > /etc/kubernetes/pki/etcd/server.key

注意:必须确保目标路径 /etc/kubernetes/pki/etcd/ 已存在且权限为 700,否则 etcdctl 将拒绝读取私钥。

执行 chmod 600 /etc/kubernetes/pki/etcd/server.key 并验证所有权:chown root:root /etc/kubernetes/pki/etcd/*.crt /etc/kubernetes/pki/etcd/*.key。

从kubeadm初始化配置重建证书(无健康节点时)

当所有Master节点均凭证丢失且无外部备份时,唯一可行路径是利用kubeadm生成的原始CA和etcd配置模板重建。

第一步:检查是否残留 kubeadm 配置文件

运行 ls -l /etc/kubernetes/kubeadm-config.yaml /var/lib/kubelet/kubeadm-flags.env 2>/dev/null。若存在 /etc/kubernetes/kubeadm-config.yaml,说明集群初始化参数仍可追溯。

uk8s
uk8s

创建 UK8S Kubernetes 集群。通过 ucloud-cli 调用 API,自动获取 VPC/子网/版本/镜像,生成配置并创建集群。

下载

第二步:提取 etcd 证书生成参数

从配置中获取 etcd 所用 CA 路径与 SAN 列表:grep -A5 "certificatesDir\|etcd:" /etc/kubernetes/kubeadm-config.yaml。通常 certificatesDir 为 /etc/kubernetes/pki,而 etcd 的证书由 kubeadm 自动签发,依赖根 CA。

第三步:重建 etcd 服务端证书

若根 CA(/etc/kubernetes/pki/ca.crt 与 /etc/kubernetes/pki/ca.key)仍存在,可直接签发新 server 证书:

使用 openssl 命令生成 etcd server 私钥:openssl genrsa -out /etc/kubernetes/pki/etcd/server.key 2048;

编写 CSR 配置文件 etcd-server-csr.conf,内容包含 SANs(如 127.0.0.1、本机内网IP、DNS 名称);

签发证书:openssl x509 -req -in etcd-server.csr -CA /etc/kubernetes/pki/ca.crt -CAkey /etc/kubernetes/pki/ca.key -CAcreateserial -out /etc/kubernetes/pki/etcd/server.crt -days 365 -extfile etcd-server-csr.conf -extensions v3_req;

最后将 /etc/kubernetes/pki/ca.crt 复制为 /etc/kubernetes/pki/etcd/ca.crt —— 这就是 etcdctl 所需的 CA 文件。

验证新凭证可用性

设置环境变量并测试连接:

export ETCDCTL_API=3

etcdctl --endpoints=https://127.0.0.1:2379 --cacert=/etc/kubernetes/pki/etcd/ca.crt --cert=/etc/kubernetes/pki/etcd/server.crt --key=/etc/kubernetes/pki/etcd/server.key endpoint health

若返回 https://127.0.0.1:2379 is healthy,说明凭证已恢复可用,可立即进入 etcd 快照恢复流程。

热门AI工具

更多
DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

Laper
Laper Hot

Laper是专为编剧、导演和制片人推出的 AI 原生剧本创作工具。

PixPix
PixPix Hot

PixPix是一款面向电商视觉生产的AI商品图生成工具。

立刻MV
立刻MV Hot

立刻MV是一款AI文本写作工具,AI 音乐视频(MV)创作工具。

Atoms
Atoms Hot

Atoms是一款AI智能体工具,第一支自动构建真实业务的 AI 团队。

Loomy
Loomy Hot

一款AI工具,主要用于科大讯飞发布的桌面级 AI 助理,比 OpenClaw 更易用、更安全!,适合需要提升相关任务效率的用户。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

创客贴AI

创客贴AI是一款AI图像与设计工具,AI辅助的智能在线设计工具。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

相关专题

更多
Docker Desktop怎么设置端口映射
Docker Desktop怎么设置端口映射

本专题聚焦Docker Desktop容器端口映射与访问配置,整理从创建容器、设置端口绑定到验证本地服务访问的操作流程。针对端口被占用、映射配置错误、容器服务无法访问等情况,也提供相应的检查方向,方便用户完成端口配置。

0

2026.11.03

Docker Desktop镜像构建教程
Docker Desktop镜像构建教程

想使用Docker Desktop将本地项目构建成Docker镜像?本专题围绕镜像构建的实际操作展开,介绍Dockerfile编写、构建命令使用、镜像标签设置和构建日志查看等内容,同时整理镜像无法生成、依赖安装失败及构建缓存异常等问题的排查思路。

0

2026.11.03

Docker Desktop容器创建指南
Docker Desktop容器创建指南

本专题聚焦Docker Desktop容器创建与运行配置,介绍通过本地镜像或远程镜像创建容器的方法,以及容器启动、终端访问、日志查看和基础管理等操作。针对端口冲突、参数配置不当、容器无法启动等情况,也整理了相应的排查方向。

0

2026.11.03

Tailwind CSS 如何制作导航栏和卡片
Tailwind CSS 如何制作导航栏和卡片

用 Tailwind CSS 制作导航栏和卡片,可先搭建语义化结构,再组合 Flex、Grid、间距、圆角与阴影类。这里整理横向导航、移动端菜单、卡片网格及悬停效果的相关文章,帮助你把常见页面组件做得清晰且适配不同屏幕。

0

2026.11.03

Tailwind CSS 响应式布局怎么写
Tailwind CSS 响应式布局怎么写

Tailwind CSS 响应式布局通常从移动端样式写起,再用 sm、md、lg 等前缀调整不同屏幕宽度下的网格、间距和导航。本专题整理断点配置、Grid 与 Flex 自适应布局及常见溢出问题,帮助你逐步完成多设备适配。

0

2026.11.03

Tailwind CSS 常用类名怎么记
Tailwind CSS 常用类名怎么记

Tailwind CSS 类名很多,先按布局、间距、文字、颜色和状态分组记忆,再通过官方文档检索具体写法。本专题结合类名排序、动态拼接失效、自定义实用类等问题,帮助你建立常用类名的速查方法。

0

2026.11.03

码上飞入口地址合集
码上飞入口地址合集

本专题汇总了码上飞(CodeFlying)的官方入口地址合集,涵盖官网主站及网页版在线使用入口,支持注册登录后直接在线体验零代码AI应用生成。同时整理了APP端下载渠道与小程序入口,助你快速访问平台,通过自然语言描述需求即可生成应用、小程序或网站。

0

2026.11.03

Uvicorn 报错与问题解决教程
Uvicorn 报错与问题解决教程

本专题汇总了Uvicorn服务器常见问题与报错解决的教程合集,涵盖启动失败、端口占用、模块导入错误、事件循环冲突及热重载失效等典型故障的排查思路。同时整理了多进程与Worker配置、SSL/HTTPS证书报错、跨域与代理配置等实战解决方案,助你快速定位并解决Uvicorn运行中的各类问题。

20

2026.11.02

Uvicorn使用教程
Uvicorn使用教程

本专题汇总了Uvicorn使用教程与启动运行指南,涵盖其作为Python ASGI服务器的定位与特点,以及命令行启动(uvicorn main:app --reload)、参数配置(host/port/workers)、程序内嵌运行与Gunicorn结合部署等核心用法。同时整理了热重载调试、日志配置与生产环境部署优化等技巧,助你快速掌握Uvicorn的运行与配置。

40

2026.11.02

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
光速学会docker容器
光速学会docker容器

共33课时 | 3万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn