etcd第二篇etcdctl详解

author author     2022-12-22     335

关键词:

关于etcd的安装请参考etcd第一篇
本篇主要讲解etcdctl命令使用
查看集群状态
etcdctl --write-out=table --endpoints=$ENDPOINTS endpoint status
技术分享图片
我们看到node2成为leader
查看集群成员
etcdctl --endpoints=$ENDPOINTS member list
技术分享图片
删除成员:
MEMBER_ID=fa6333c794b010d8
etcdctl --endpoints=$HOST_1:2379,$HOST_2:2379,$HOST_3:2379
member remove $MEMBER_ID
我们看到如下结果
技术分享图片
同时node3的etcd已经停止工作
添加成员:
注意:添加已经删除的需要将node3的data.etcd必须删除
这里以添加node3为例
在节点上执行如下命令:
NAME_1=node1
NAME_2=node2
NAME_3=node3
HOST_1=172.16.80.201
HOST_2=172.16.80.202
HOST_3=172.16.80.203
etcdctl --endpoints=$HOST_1:2379,$HOST_2:2379 member add $NAME_3 --peer-urls=http://$HOST_3:2380
启动新添加的节点,这里使用--initial-cluster-state existing
NAME_1=node1
NAME_2=node2
NAME_3=node3
HOST_1=172.16.80.201
HOST_2=172.16.80.202
HOST_3=172.16.80.203
TOKEN=token-01
CLUSTER_STATE=existing
CLUSTER=$NAME_1=http://$HOST_1:2380,$NAME_2=http://$HOST_2:2380,$NAME_3=http://$HOST_3:2380
THIS_NAME=$NAME_3
THIS_IP=$HOST_3
etcd --data-dir=data.etcd --name $THIS_NAME

--initial-advertise-peer-urls http://$THIS_IP:2380
--listen-peer-urls http://$THIS_IP:2380
--advertise-client-urls http://$THIS_IP:2379
--listen-client-urls http://$THIS_IP:2379
--initial-cluster $CLUSTER
--initial-cluster-state $CLUSTER_STATE
--initial-cluster-token $TOKEN
我们做一个测试,是否主节点写入或删除,其余两个节点也会写入或删除,结果如下(表示正确)
[[email protected] ~]# etcdctl --endpoints=$HOST_1:2379,$HOST_2:2379,$HOST_3:2379 put foo "a"
OK
[[email protected] ~]# etcdctl --endpoints=$HOST_1:2379,$HOST_2:2379,$HOST_3:2379 get foo
foo
a

[[email protected] ~]# etcdctl --endpoints=$HOST_1:2379,$HOST_2:2379,$HOST_3:2379 get foo
foo
a

[[email protected] ~]# etcdctl --endpoints=$HOST_1:2379,$HOST_2:2379,$HOST_3:2379 del foo
1
技术分享图片
创建snapshot
etcdctl --endpoints=$ENDPOINTS snapshot save my.db
etcdctl --write-out=table --endpoints=$ENDPOINTS snapshot status my.db
技术分享图片
数据迁移:(一般不用,因为etcd是集群,可以添加节点的方式来实现数据迁移,然后删除原有的节点)
etcdctl --endpoints=$ENDPOINT migrate --data-dir="default.etcd" --wal-dir="default.etcd/member/wal"
权限
etcdctl --endpoints=$ENDPOINTS role add root
etcdctl --endpoints=$ENDPOINTS role grant-permission root readwrite foo
etcdctl --endpoints=$ENDPOINTS role get root

etcdctl --endpoints=$ENDPOINTS user add root
etcdctl --endpoints=$ENDPOINTS user grant-role root root
etcdctl --endpoints=$ENDPOINTS user get root

etcdctl --endpoints=$ENDPOINTS auth enable
#now all client requests go through auth

etcdctl --endpoints=$ENDPOINTS --user=root:123 put foo bar
etcdctl --endpoints=$ENDPOINTS get foo
etcdctl --endpoints=$ENDPOINTS --user=root:123 get foo
etcdctl --endpoints=$ENDPOINTS --user=root:123 get foo1

参考文章:https://coreos.com/etcd/docs/latest

javaweb入门详解(第二篇)之xml简介(代码片段)

JavaWeb入门详解(第二篇)之xml简介1、XML概述  XML(ExtensibleMarkupLanguage的缩写),被称作可扩展标记语言,是一种标记语言。XML也是W3C推荐的数据传输存放标准。XML也不是一出现就备受瞩目的,XML语言... 查看详情

etcdctl 抛出错误:超出上下文期限错误

】etcdctl抛出错误:超出上下文期限错误【英文标题】:etcdctlthrowsError:contextdeadlineexceedederror【发布时间】:2019-05-0720:43:53【问题描述】:我正在尝试使用coreoscloud-config在AWS上创建一个单节点etcd集群。我创建了一个值为etcd.uday.com... 查看详情

kubernetes集群etcd数据备份与恢复实践

1、备份有证书etcd集群数据#首次备份,在master01节点将etcdctl工具从容器拷到master节点dockercp<etcdcontainerid>:/usr/local/bin/etcdctl/usr/bin/#etcdcontainerid可通过命令(dockerps|grepetcd)查询获得,拷贝成功后,授执行权限chmod+x/usr/bin/etcdctl#在m 查看详情

javaweb详解(第二篇)之servlet基础简介-会话技术介绍(代码片段)

JavaWeb详解(第二篇)之Servlet基础简介-会话技术介绍1、会话技术介绍1.1、会话技术概述1.1.1、什么是会话  会话是指:用户开一个浏览器,访问一个网站,只要不关闭该浏览器,不管该用户点击多少个超链接&#x... 查看详情

如何在 etcd 中访问 Kubernetes 密钥

...关的密钥?试图列出etcd中的键,但看不到相关键。还有etcdctl安装在哪里?$etcdctlbash:etcdctl:commandnotfound..$sudonetstat-tnlpActiveInt 查看详情

python之路第二篇数据类型详解及其方法(代码片段)

字符串#作用:描述名字,性别,国籍,地址等信息#定义:在单引号双引号三引号内,由一串字符组成name=‘Matthew‘#优先掌握的操作:#1、按索引取值(正向取+反向取):只能取#2、切片(顾头不顾尾,步长)#3、长度len#4、成员运算in... 查看详情

etcd的备份和恢复

etcdctl工具获取方式[root@k8s-masternetwork]#yum-yinstalletcd[root@k8s-masternetwork]#etcdctl-versionetcdctlversion:3.3.11APIversion:2#vi/etc/kubernetes/manifests/etcd.yamletcd的yaml文件apiVersion:v1kind:Podmetadata:labels:component:etcdtier:control-plane...#监听端口---listen-client-urls... 查看详情

etcd删除命令

参考技术AETCDCTL_API=3etcdctl--endpoints=http://10.24.75.53:1159del/registry/namespaces/moa-admin-admin-kiali1 查看详情

etcd简要使用

...,etcd是一个key-value型存储,具有强一致性etcd的客户端有etcdctl、etcd-go、etcd-java,其中etcdctl是etcd自带的命令行工具,其主要命令有etcd的数据是按照B+树的方式组织,并按照MVCC的思想存储数据,也就是数据按照多个版本存储,每... 查看详情

etcd查看集群信息

 查看集群服务端口地址列表 etcdctl--endpoints=https://192.168.1.65:2379--ca-file=/etc/kubernetes/ssl/ca.pem--cert-file=/etc/etcd/ssl/etcd-1-65.pem--key-file=/etc/etcd/ssl/etcd-1-65.keymemberlist 查看详情

etcd的简单使用

...版本解压etcd包解压后进入目录,增加x权限chmod+xetcdchmod+xetcdctl 并将etcd和etcdctl复制到/bin配置启动简单启动./bin/etcd这样就可以启动使用集群配置在两台机器上部署了简单的集群192.168.23 查看详情

dubbo+etcd搭配(代码片段)

...etcd使用etcd测试下:./etcd--version,没问题后运行。etcdctl是官方提供的客户端程序,我们测试下(最好可以在别的机器上测试)。#验证服务状态./etcdctl--endpoints=http://$YOURETCDIP:23 查看详情

#java学习之路——基础阶段二(第二篇)

我的学习阶段是跟着CZBK黑马的双源课程,学习目标以及博客是为了审查自己的学习情况,毕竟看一遍,敲一遍,和自己归纳总结一遍有着很大的区别,在此期间我会参杂Java疯狂讲义(第四版)里面的内容。前言:此随笔主要是J... 查看详情

面向接口编程详解——模式研究

...对“面向接口编程”的思想有了一定认识,并通过第二篇的例子,获得了一定的直观印象。但是,第二篇中的例子旨在展示面向接口编程的实现方法,比较简单,不能体现出面向接口编程的优势和这种思想的内涵。那么,... 查看详情

etcd中k8s的元数据

...K8S和对应的etcd集群Kubenretes1.6中使用etcdV3版本的API,使用etcdctl直接ls的话只能看到/kube-centos一个路径。需要在命令前加上ETCDCTL_API=3这个环境变量才能看到kuberentes在etcd中保存的数据。如果是使用kubeadm创建的集群,在Kubenretes1.11中... 查看详情

kubernetes核心组件-etcd详解

1.Kubernetes核心组件-ETCD详解Kubernetes是典型的主从分布式架构,由集中式管理节点(MasterNode),分布式的工作节点(WorkerNode)组成以及辅助工具组成。其中ETCD是管理节点的核心组件,主要负责集群状态集中式存储,功能架构与Zooke... 查看详情

etcd配置参数详解

针对ETCD版本3.2.17--name节点名称default:"default"envvariable:ETCD_NAME这个值和--initial-clusterflag(e.g.,default=http://localhost:2380)中的key值一一对应,如果在集群环境中,name必须是唯一的,建议用主机名称或者机器ID。--data-dir数据存储目... 查看详情

clustermaybeunhealthy:failedtolistmembers

[[email protected]etcd]#etcdctl-Chttp://etcd:2379cluster-healthclustermaybeunhealthy:failedtolistmembersError: client:etcdclusterisunavailableormisconfigured;error#0:dialtcp:lookupetcdon114. 查看详情