3. ETCD 常用命令
etcdctl是一个 命令行的客户端 ,它提供了一些命令,可以方便我们在对服务进行测试或者手动修改数据库内容。etcdctl与kubectl和systemctl的命令原理及操作类似,其基本用法如下所示:
<span style="color:#444444"><span style="background-color:#f6f6f6">etcdctl [<span style="color:#333333"><strong>global</strong></span> <span style="color:#333333"><strong>options</strong></span>] <span style="color:#333333"><strong>command</strong></span> [<span style="color:#333333"><strong>command</strong></span> <span style="color:#333333"><strong>options</strong></span>] [<span style="color:#333333"><strong>args</strong></span>...]</span></span>
具体的命令选项参数可以通过 etcdctl command --help来获取相关帮助
etcd 在键的组织上采用了层次化的空间结构(类似于文件系统中目录的概念),数据库操作围绕对 键值 和 目录 的 CRUD完成生命周期的管理。
若需要指定集群,可以在 ~/.bashrc 添加以下内容:
<span style="color:#444444"><span style="background-color:#f6f6f6">HOST_1=127.0.0.1:23791
HOST_2=127.0.0.1:23792
HOST_3=127.0.0.1:23793
ENDPOINTS=<span style="color:#bc6060">${HOST_1}</span>,<span style="color:#bc6060">${HOST_2}</span>,<span style="color:#bc6060">${HOST_3}</span>
<span style="color:#888888"># 如果需要使用原生命令,在命令开头加一个\ 例如:\etcdctl command</span>
<span style="color:#397300">alias</span> etcdctl=<span style="color:#880000">"etcdctl --endpoints=<span style="color:#bc6060">${ENDPOINTS}</span>"</span>
<span style="color:#397300">alias</span> etcdctljson=<span style="color:#880000">"etcdctl --endpoints=<span style="color:#bc6060">${ENDPOINTS}</span> --write-out=json"</span>
<span style="color:#397300">alias</span> etcdctltable=<span style="color:#880000">"etcdctl --endpoints=<span style="color:#bc6060">${ENDPOINTS}</span> --write-out=table"</span></span></span>
以上添加完成后,source一下使其生效
<span style="color:#444444"><span style="background-color:#f6f6f6"><span style="color:#333333"><strong>source</strong></span> ~/.bashrc</span></span>
3.1 查看etcd版本
<span style="color:#444444"><span style="background-color:#f6f6f6"><span style="color:#333333"><strong>etcdctl</strong></span> version</span></span>
3.2 集群相关操作
3.2.1 指定etcd集群
<span style="color:#444444"><span style="background-color:#f6f6f6">HOST_1=<span style="color:#880000">127.0</span><span style="color:#880000">.0</span><span style="color:#880000">.1</span>
ENDPOINTS=${HOST_1}:<span style="color:#880000">2379</span>
etcdctl --endpoints=${ENDPOINTS} member <span style="color:#333333"><strong>list</strong></span> -w table</span></span>
3.2.2 查看集群健康状态
集群状态主要是 etcdctl endpoint status 和 etcdctl endpoint health 两条命令
<span style="color:#444444"><span style="background-color:#f6f6f6"><span style="color:#333333"><strong>etcdctl</strong></span> --endpoints=<span style="color:#bc6060">${ENDPOINTS}</span> endpoint status -w table
etcdctl --endpoints=<span style="color:#bc6060">${ENDPOINTS}</span> endpoint health -w table</span></span>
3.2.3 添加成员
主要用法如下所示:
<span style="color:#444444"><span style="background-color:#f6f6f6">etcdctl member <span style="color:#397300">add</span> <span style="color:#bc6060"><memberName></span> [<span style="color:#333333"><strong>options</strong></span>] [flags]</span></span>
示例如下所示:
<span style="color:#444444"><span style="background-color:#f6f6f6"><span style="color:#888888"># 示例:将目标节点etcd4添加到集群</span>
etcdctl member add etcd4 http:<span style="color:#bc6060">//</span><span style="color:#880000">192.168</span>.<span style="color:#880000">3.104</span>:<span style="color:#880000">2380</span>
<span style="color:#888888"># 启动目标集群时需要设置启动参数如下</span>
etcd --name=etcd4 --data-dir=<span style="color:#bc6060">/etcd-data \
--listen-peer-urls=http:/</span><span style="color:#bc6060">/192.168.3.104:2380 \
--listen-client-urls=http:/</span><span style="color:#bc6060">/192.168.3.104:2379 \
--initial-advertise-peer-urls=http:/</span><span style="color:#bc6060">/192.168.3.104:2380 \
--advertise-client-urls=http:/</span><span style="color:#bc6060">/192.168.3.104:2379 \
--initial-cluster=etcd1=http:/</span><span style="color:#bc6060">/192.168.3.101:2380,etcd2=http:/</span><span style="color:#bc6060">/192.168.3.102:2380,etcd3=http:/</span><span style="color:#bc6060">/192.168.3.103:2380,etcd4=http:/</span><span style="color:#bc6060">/192.168.3.104:2380 \
--initial-cluster-state=existing</span></span></span>
3.2.4 更新成员
主要用法如下所示:
<span style="color:#444444"><span style="background-