惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - 【当耐特】
N
Netflix TechBlog - Medium
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
雷峰网
雷峰网
MongoDB | Blog
MongoDB | Blog
有赞技术团队
有赞技术团队
Engineering at Meta
Engineering at Meta
M
MIT News - Artificial intelligence
Google DeepMind News
Google DeepMind News
罗磊的独立博客
Hugging Face - Blog
Hugging Face - Blog
WordPress大学
WordPress大学
T
Tailwind CSS Blog
小众软件
小众软件
J
Java Code Geeks
人人都是产品经理
人人都是产品经理
博客园_首页
MyScale Blog
MyScale Blog
博客园 - 聂微东
V
Visual Studio Blog
The Cloudflare Blog
月光博客
月光博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
U
Unit 42

博客园 - cn2025

K8s -sentinel-dashboard【nacos版本】集 20260815 kubeSphere【ks-controller-manager-webhook-cert】证书 20260814 K8s -nacos集 20260813 K8s - 安装部署redis集群-哨兵sentinels集(支持从K8s外部访问)20260812 k8s-deployment发布测试(pv-pvc-deployment-service) 20260810 K8s - 安装部署Kafka、Zookeeper集群教程(支持从K8s外部访问)20260808 k8s-关机及启动脚本工具 【kubeSphere发布ruoyi-pro前端】工具脚本20260731 harbor【https启用】及k8节点部证书20260728 kube-flannel.yml k8s集群-安装helm 【kubeShpere】 官网 20260710 kubesphere-KDP 工具脚本【kubeSphere发布ruoyi-pro前端】20260720 HbuilderX 内置终端转为 gitBash 20260720 kubeSphere发布ruoyi-pro后端-用到脚本 kubeSphere发布ruoyi-web前端 20260711 kubeSphere发布ruoyi-pro后端 k8s集群-kubeShpere 20260710 安装Helm 20260710 k8s-portainer docker 镜像查询 k8集群一键重置 docker run OceanBase spring ai alibaba doc AI2.0 【多模态】 20260615 世界只有一个墨脱 AI2.0 【Mcp-client】 20260611 AI2.0 【Mcp-server】 20260611 GoLand 配Go SDK AI2.0 【redis向量-Rag】 问答顾问器QuestionAnswerAdvisor 20260608
【k8s】 etcd服务端及客户端版本及快照【定时】备份 20260730
2026cn · 2026-07-30 · via 博客园 - cn2025

1、master节点-etcd服务端版本

####先获取 etcd 静态 Pod 名称

kubectl get pods -n kube-system | grep etcd

####查看集群 etcd 版本

kubectl exec -n kube-system etcd-k8s-master -- etcd --version

image

 服务端版本:etcd Version: 3.5.9

image

2、master节点-etcd客户端版本

客户端v3.5.31

wget https://github.com/etcd-io/etcd/releases/download/v3.5.33/etcd-v3.5.33-linux-amd64.tar.gz
tar -zxvf etcd-v3.5.33-linux-amd64.tar.gz
cd etcd-v3.5.33-linux-amd64
cp etcdctl etcdutl /usr/local/bin/

image

# 验证客户端版本

etcdctl version

image

 etcdutl version

image

3、master节点-etcd健康检测命令

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

image

https://127.0.0.1:2379 is healthy: successfully committed proposal: took = 26.893613ms 

####etcd 连接正常、集群健康探测成功!

4、etcd 快照备份(生产核心命令)

4.1 master 节点提前创建备份目录

mkdir -p /data/etcd-backup

4.2 备份完成立刻查看快照信息

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 \
snapshot save /data/etcd-backup/etcd-$(date +%Y%m%d-%H%M).snap \
&& etcdutl snapshot status /data/etcd-backup/etcd-$(date +%Y%m%d-%H%M).snap

image

image

4.3

#集群成员列表

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 \
member list

image

image

#集群版本

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 \
version

image

 #集群领导者

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 status

image

####可以把证书参数写入环境变量,后续命令不用重复携带证书

export ETCDCTL_API=3
export ETCDCTL_ENDPOINTS=https://127.0.0.1:2379
export ETCDCTL_CACERT=/etc/kubernetes/pki/etcd/ca.crt
export ETCDCTL_CERT=/etc/kubernetes/pki/etcd/server.crt
export ETCDCTL_KEY=/etc/kubernetes/pki/etcd/server.key

####简写

##健康检测命令

etcdctl endpoint health 

##备份快照命令
etcdctl snapshot save test.snap

image

####集群列表

etcdctl member list 

image

####单独查看快照命令(手动执行)

etcdutl snapshot status /data/etcd-backup/test.snap

image

image

# 查看集群领导者、版本、数据大小

etcdctl endpoint status

image

4.4 备份完成立刻查看快照信息脚本

#创建脚本
vi /data/etcd-backup/etcd-backup.sh
#赋予执行权限
chmod +x /data/etcd-backup/etcd-backup.sh
##手动立即执行测试

###手动临时清理环境变量再运行

unset ETCDCTL_API ETCDCTL_ENDPOINTS ETCDCTL_CACERT ETCDCTL_CERT ETCDCTL_KEY
./etcd-backup.sh

image

./etcd-backup.sh或/data/etcd-backup/etcd-backup.sh

image

4.5定时快照备份

###打开定时任务
crontab -e

image

 ###crontab 写法(最简)

###计划每 2 分钟

*/2 * * * * /bin/bash /data/etcd-backup/etcd-backup.sh

###凌晨 1 点执行一次

0 1 * * 0 /bin/bash /data/etcd-backup/etcd-backup.sh

image

# 查看cron系统日志(CentOS/RHEL)
tail -f /var/log/cron

image

 ###计划每 2 分钟 或凌晨 1 点执行一次生成备份记录

image

4.6 etcd-backup.sh脚本内容

#!/bin/bash

 #环境变量与日志输出
   export PATH=/usr/local/bin:/usr/bin:/bin:/sbin:/usr/sbin
   LOG_FILE="/data/etcd-backup/backup.log"
   exec >> ${LOG_FILE} 2>&1
   set -x


# 清除etcdctl环境变量冲突
unset ETCDCTL_API
unset ETCDCTL_ENDPOINTS
unset ETCDCTL_CACERT
unset ETCDCTL_CERT
unset ETCDCTL_KEY

SNAP=/data/etcd-backup/etcd-$(date +%Y%m%d-%H%M).snap

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 \
snapshot save "${SNAP}"

echo "====快照信息===="
if [ -f "${SNAP}" ];then
etcdutl snapshot status "${SNAP}"
else
echo "❌快照文件生成失败!"
fi

echo "====删除7天前快照===="
# 算出7天前日期 YYYYMMDD
DEL_DATE=$(date -d "7 days ago" +%Y%m%d)
find /data/etcd-backup -name "etcd-*.snap" | while read file;do
# 提取文件名中的8位日期
FILE_DATE=$(echo "$file" | grep -oE "etcd-[0-9]{8}" | cut -d'-' -f2)
if [[ "$FILE_DATE" < "$DEL_DATE" ]];then
echo "删除旧备份:$file"
rm -f "$file"
fi
done

image