etcd

ETCD集群安装实验

怎甘沉沦 提交于 2019-11-28 19:43:10
目录 【1、下载二进制程序】 【2、安装etcd集群】 【3、查询集群状态】 【4、存入读取数据】 【5、注意事项】 【6、参考链接】 简介: Etcd的官网文档及其在GitHub上的文档,已经非常全了,而且简洁明了,无论是二进制安装、还是Docker下运行、命令操作,都有详细的说明。但直接复制安装还是会出错的,只有亲手做一遍,才能发现有哪些问题。 【1、下载二进制程序】 #分别在三台主机上下载并安装etcd和etcdctl程序 #设定ETCD的版本 ETCD_VER=v3.3.8 # 设置下载地址URL GITHUB_URL= https://github.com/coreos/etcd/releases/download DOWNLOAD_URL=${GITHUB_URL} #清除之前的临时文件和目录,创建新的目录 rm -f /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz rm -rf /tmp/etcd-download-test && mkdir -p /tmp/etcd-download-test #使用curl下载etcd二进制文件 #地址为 https://github.com/coreos/etcd/releases/download/v3.3.8/etcd-v3.3.8-linux-amd64.tar.gz #解包后删除压缩包

ETCD配置内容详解

孤街浪徒 提交于 2019-11-28 19:33:34
ETCD配置内容含义详解 2.1 成员相关标识 --name 含义:此成员的名称。 默认值:default 环境变量:ETCD_NAME 作用:此配置值作为此节点在--initial-cluster标志中列出的条目(例如,default=http://localhost:2380)引用。若使用静态引导,则需要匹配标志中使用的密钥。使用发现时,每个成员必须具有唯一的名称。建议使用Hostname或者machine-id。 注意:使用发现时,每个成员必须具有唯一的名称。 --data-dir 含义:服务运行数据保存的路径。 默认值:${name}.etcd 环境变量:ETCD_DATA_DIR 作用:设置数据保存的目录。 --wal-dir 含义:专用wal目录的路径。 默认值:--data-dir的路径下 环境变量:ETCD_WAL_DIR 作用:独立设置wal目录,etcd会将WAL文件写入--wal-dir而不是--data-dir。独立的wal路径,有助于避免日志记录和其他IO操作之间的竞争。 --snapshot-count 含义:触发快照到磁盘的已提交事务数。 默认值:100000 环境变量:ETCD_SNAPSHOT_COUNT 作用:指定有多少事务(transaction)被提交时,触发截取快照保存到磁盘。 --heartbeat-interval 含义:心跳间隔的时间

etcd证书配置

只愿长相守 提交于 2019-11-28 19:33:20
ETCD证书 证书类型介绍 client certificate 用于通过服务器验证客户端。例如etcdctl,etcd proxy,fleetctl或docker客户端。 server certificate 由服务器使用,并由客户端验证服务器身份。例如docker服务器或kube-apiserver。 peer certificate 由 etcd 集群成员使用,供它们彼此之间通信使用。 下载 cfssl: [root@localhost etcd]# wget https://pkg.cfssl.org/R1.2/cfssl_linux-amd64 [root@localhost etcd]# mv cfssl_linux-amd64 /usr/bin/cfssl 下载 cfssljson: [root@localhost etcd]# wget https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64 [root@localhost etcd]# mv cfssljson_linux-amd64 /usr/bin/cfssljson  添加可执行权限: [root@localhost etcd]# chmod +x /usr/bin/{cfssl,cfssljson} 配置CA选项: mkdir etcd-ca-gen cd etcd

etcd配置参数详解

眉间皱痕 提交于 2019-11-28 19:33:04
针对ETCD版本 3.2.17 --name 节点名称 default: "default" env variable: ETCD_NAME 这个值和--initial-cluster flag (e.g., default= http://localhost:2380)中的key值一一对应,如果在集群环境中,name必须是唯一的,建议用主机名称或者机器ID 。 --data-dir 数据存储目录 default: "${name}.etcd" env variable: ETCD_DATA_DIR --wal-dir default: "" env variable: ETCD_WAL_DIR 存放预写式日志,最大的作用是记录了整个数据变化的全部历程。未设置,共用--data-dir文件所在目录。 --snapshot-count default: "100000" env variable: ETCD_SNAPSHOT_COUNT 数据快照触发数量,etcd处理指定的次数的事务提交后,生产数据快照 --heartbeat-interval 客户端连接后的心跳间隔(毫秒) default: "100" env variable: ETCD_HEARTBEAT_INTERVAL --election-timeout 集群选举的超时时间 default: "1000" env

服务发现系统etcd介绍

落爺英雄遲暮 提交于 2019-11-28 19:31:35
一、概述 etcd是一个高可用的键值存储系统,主要用于共享配置和服务发现。etcd是由CoreOS开发并维护的,灵感来自于 ZooKeeper 和 Doozer,它使用Go语言编写,并通过Raft一致性算法处理日志复制以保证强一致性。Raft是一个新的一致性算法,适用于分布式系统的日志复制,Raft通过选举的方式来实现一致性。Google的容器集群管理系统Kubernetes、开源PaaS平台Cloud Foundry和CoreOS的Fleet都广泛使用了etcd。在分布式系统中,如何管理节点间的状态一直是一个难题,etcd像是专门为集群环境的服务发现和注册而设计,它提供了数据TTL失效、数据改变监视、多值、目录监听、分布式锁原子操作等功能,可以方便的跟踪并管理集群节点的状态。 etcd的特性如下: 简单: 支持curl方式的用户API(HTTP+JSON) 安全: 可选的SSL客户端证书认证 快速: 单实例每秒 1000 次写操作 可靠: 使用Raft保证一致性 二、安装和使用 安装etcd etcd的安装非常简单,可以直接下载编译后的可执行文件,下载地址: https://github.com/coreos/etcd/releases curl -L https://github.com/coreos/etcd/releases/download/v3.0.6/etcd-v3

etcd的简单使用

别来无恙 提交于 2019-11-28 19:30:06
etcd的简单使用 ETCD安装配置 安装 去 https://github.com/coreos/etcd/releases/ 下载想要的版本解压etcd包 解压后进入目录,增加x权限 chmod +x etcd chmod +x etcdctl 并将etcd和etcdctl 复制到 /bin 配置启动 简单启动 ./bin/etcd 这样就可以启动使用 集群配置 在两台机器上部署了简单的集群 192.168.231.130 192.168.231.132 在配置文件/etc/defalut/etcd 中增加: ETCD_OPTS="-name infra0 -initial-advertise-peer-urls http://192.168.231.130:2380 -listen-peer-urls http://192.168.231.130:2380 -initial-cluster- token etcd-cluster-1 -initial-cluster infra0=http://192.168.231.130:2380,infra1=http://192.168.231.132:2380 -initial-cluster-state new" 也可用参数的方法 ETCD_INITIAL_CLUSTER="infra0=http://192.168.231

kubernetes容器集群部署Etcd集群

偶尔善良 提交于 2019-11-28 19:28:36
安装etcd 二进制包下载地址: https://github.com/etcd-io/etcd/releases/tag/v3.2.12 [root@master ~]# GOOGLE_URL=https://storage.googleapis.com/etcd [root@master ~]# GITHUB_URL=https://github.com/coreos/etcd/releases/download [root@master ~]# DOWNLOAD_URL=${GOOGLE_URL} [root@master ~]# ETCD_VER=v3.2.12 [root@master ~]# curl -L ${DOWNLOAD_URL}/${ETCD_VER}/etcd-${ETCD_VER}-linux-amd64.tar.gz -o /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 10.0M 100 10.0M 0 0 2161k 0 0:00:04 0:00:04 --:--:-- 2789k [root@master ~]

ETCD原理

六月ゝ 毕业季﹏ 提交于 2019-11-28 19:28:19
etcd:从应用场景到实现原理的全方位解读 从etcd的架构开始,深入到源码中解析etcd 1 架构 从etcd的架构图中我们可以看到,etcd主要分为四个部分。 HTTP Server: 用于处理用户发送的API请求以及其它etcd节点的同步与心跳信息请求。 Store:用于处理etcd支持的各类功能的事务,包括数据索引、节点状态变更、监控与反馈、事件处理与执行等等,是etcd对用户提供的大多数API功能的具体实现。 Raft:Raft强一致性算法的具体实现,是etcd的核心。 WAL:Write Ahead Log(预写式日志),是etcd的数据存储方式。除了在内存中存有所有数据的状态以及节点的索引以外,etcd就通过WAL进行持久化存储。WAL中,所有的数据提交前都会事先记录日志。Snapshot是为了防止数据过多而进行的状态快照;Entry表示存储的具体日志内容。 通常,一个用户的请求发送过来,会经由HTTP Server转发给Store进行具体的事务处理 如果涉及到节点的修改,则交给Raft模块进行状态的变更、日志的记录,然后再同步给别的etcd节点以确认数据提交 最后进行数据的提交,再次同步。 2 新版etcd重要变更列表 获得了IANA认证的端口,2379用于客户端通信,2380用于节点通信,与原先的(4001 peers / 7001 clients)共用。

etcd命令说明 etcd Version: 3.0.15

我与影子孤独终老i 提交于 2019-11-28 19:27:46
etcd Version: 3.0.15 Git SHA: fc00305 Go Version: go1.6.3 Go OS/Arch: linux/amd64 https://github.com/coreos/etcd/blob/master/Documentation/op-guide/configuration.md usage: etcd [flags]     start an etcd server     etcd --version       show the version of etcd     etcd -h | --help       show the help information about etcd     etcd --config-file       path to the server configuration file member flags:     --name 'default'                  方便理解的节点名称,默认为 default ,在集群中应该保持唯一,可以使用 hostname       human-readable name for this member.     --data-dir '${name}.etcd'             服务运行数据保存的路径,默认为 ${name}

etcd

蹲街弑〆低调 提交于 2019-11-28 19:27:33
etcd是一种无状态的分布式数据存储集群,用于配置共享和服务发现。 值得注意的是,分布式系统中的数据分为控制数据和应用数据。 使用 etcd 的场景默认处理的数据都是控制数据,对于应用数据,只推荐数据量很小,但是更新访问频繁的情况 。 一、存储服务 A. etcd 数据的组织形式 etcd的API分为两种, 分别用export ETCDCTL_API=3和export ETCDCTL_API=2来区分. 两种API的调用接口不同, 其数据组织形式也不同. API_2下,其key和value都存储在内存中. 而API_3下,key存储在内存中,value存储在硬盘中. 显然, API_3更有优势,因为key是相较于value来说要短小的多. 这里我们讨论的是更为常用的API_3下的数据组织. 在etcd中, key以B树的形式存储在内存中, value以B+树的形式存储在硬盘中. 为什么要以B/B+树的形式来存储呢? 这涉及到一个所有的数据系统都要面对的问题, 如何花更少的时间 将数据从硬盘中读取出来. 众所周知, 计算机的存储体系里, cache> 内存>>> 磁盘, 也就是说对于etcd来说,访问一个数据最大的时间消耗在磁盘访问. 那么就要想方设法降低访问磁盘的 次数. 这个时候B/B+树的优势就体现出来了. 下面详细分析一下. B/B+树模型的源头是AVL(二叉平衡树).