You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

kubeadm部署Kubernetes 1.21.0集群etcd备份及etcdctl报错问题咨询

问题解决步骤

一、解决etcdctl: command not found报错

两种方案可选:

方案1:安装etcdctl二进制到系统

  1. 获取和集群etcd版本匹配的二进制安装包,Kubernetes v1.21默认配套的etcd版本为v3.4.13
  2. 解压安装包
tar zxvf etcd-v3.4.13-linux-amd64.tar.gz
  1. 将etcdctl拷贝到系统可执行路径并赋予权限
cp etcd-v3.4.13-linux-amd64/etcdctl /usr/local/bin/
chmod +x /usr/local/bin/etcdctl
  1. 配置etcdctl默认使用v3版本API
echo 'export ETCDCTL_API=3' >> /etc/profile
source /etc/profile
  1. 验证安装成功
etcdctl version

方案2:直接使用集群现有etcd容器内置的etcdctl(无需安装)

kubeadm部署的集群etcd以静态Pod形式运行在master节点,可直接调用容器内自带的etcdctl工具,无需额外安装:

  1. 先获取etcd容器ID
docker ps | grep etcd | awk '{print $1}'
  1. 后续所有etcdctl操作都可通过docker exec调用该容器执行,无版本兼容问题。

二、执行etcd备份操作

kubeadm部署的etcd证书默认存放在/etc/kubernetes/pki/etcd/目录,备份时需要指定证书路径鉴权。

对应方案1(已安装etcdctl到系统)的备份命令

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 /opt/etcd-snapshot.db

备份完成后快照文件存放在宿主机/opt/etcd-snapshot.db路径。

对应方案2(使用etcd容器执行)的备份命令

# 替换<etcd容器ID>为上一步查询到的实际ID
docker exec -it <etcd容器ID> 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 /tmp/etcd-snapshot.db

# 将容器内的快照文件拷贝到宿主机留存
docker cp <etcd容器ID>:/tmp/etcd-snapshot.db /opt/etcd-snapshot.db

三、备份有效性验证

执行以下命令查看快照状态,确认备份文件有效:

etcdctl snapshot status /opt/etcd-snapshot.db -w table

注意事项

  • 所有操作需在集群master节点上执行
  • 备份完成后建议将快照文件转移至非集群节点的存储介质留存,避免节点故障导致备份丢失
  • 若为多master高可用集群,任选一个master节点执行备份即可,生成的快照为全量集群数据

内容的提问来源于stack exchange,提问作者Avnish Singh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 16:24:03