etcdctl常用
etcd修改配置文件etcd概念etcd键值管理etcdctl命令行客户端常用命令创建配置和查看配置
·
etcdctl常用
etcd概念
etcd就是个分布式非关系型数据库.
3 个节点组成的集群,可以容忍 1 个节点故障。
生成环境中,不推荐
使用单个节点的 etcd 集群。
- etcd 支持存储多个版本的数据,允许查询指定 key 历史版本的数据。
- etcd 为了控制数据总空间,会周期性的清理数据的历史版本。
- etcd 不支持修改旧版本的数据。
- etcd 中,数据以二进制的方式存储在磁盘中。
- etcd 创建 lease 对象时,需要指定一个时间作为其超时时间。
- 将 key 关联到 lease 对象上,当 lease 对象超时后,key 会被系统自动回收。
- etcd 支持将多个 key 关联到同一个 lease 对象上,从而大幅降低刷新 lease 的性能开销。
安装etcd
只在master节点上安装
# yum安装etcd
yum install -y etcd
# 开机自启动并现在启动etcd
systemctl enable --now etcd
修改配置文件
vim /etc/etcd/etcd.conf
# 修改大约第6行
ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379"
etcd键值管理
查看pod网段
参考: https://jimmysong.io/kubernetes-handbook/concepts/flannel.html
pod网段是在etcd数据库中定义的.
# 查看etcd 中的注册的宿主机的 pod 地址网段信息
[root@node1 ~]# etcdctl ls /kube-centos/network/subnets
/kube-centos/network/subnets/172.33.68.0-24
/kube-centos/network/subnets/172.33.31.0-24
/kube-centos/network/subnets/172.33.96.0-24
每个 node 上的 Pod 子网是根据我们在安装 flannel 时配置来划分的,在 etcd 中查看该配置:
[root@node1 ~]# etcdctl get /kube-centos/network/config
{"Network":"172.33.0.0/16","SubnetLen":24,"Backend":{"Type":"host-gw"}}
etcdctl命令行工具
etcdctl命令行客户端常用命令
创建配置和查看配置
# 创建配置
etcdctl mk /atomic.io/network/config '{"Network":"10.254.0.0/16","Backend":{"Type":"vxlan"}}'
# 查看配置信息
etcdctl get /atomic.io/network/config
etcdctl配置指定授权文件
参考: https://blog.51cto.com/u_7682110/4845904
在执行etcdctl命令时需要指定认证授权文件, 所以将认证授权步骤 别名至 etcdctl 简化操作
# 指定ETCDCTL_API版本为3
$ export ETCDCTL_API=3
# 创建etcdctl别名,指定监听地址,和证书
$ alias etcdctl='etcdctl --endpoints=https://127.0.0.1:2379 --cacert=/etc/kubernetes/pki/etcd/ca.crt --cert=/etc/kubernetes/pki/etcd/healthcheck-client.crt --key=/etc/kubernetes/pki/etcd/healthcheck-client.key'
etcdctl常用的命令
# 查看etcd集群的成员节点
$ etcdctl member list -w table
# 查看etcd集群节点状态:
$ etcdctl endpoint status -w table
$ etcdctl endpoint health -w table
备份数据
# 字符串拼接用于定时任务
etcdctl snapshot save `hostname`-etcd_`date +%Y%m%d%H%M`.db
恢复快照
单机
#停止etcd和apiserver
## 移走当前数据目录
mv /var/lib/etcd/ /var/lib/etcd.bak
#恢复快照
etcdctl snapshot restore `hostname`-etcd_`date +%Y%m%d%H%M`.db --data-dir=/var/lib/etcd/
二进制部署的ETCD恢复快照
etcd故障排查
etcd起不来
journalctl -u etcd > a.log
导出日志慢慢分析
更多推荐
所有评论(0)