003.etcd集群部署-静态发现
一 etcd集群概述
1.1 概述
1.2 集群容错能力
|
集群大小
|
最大容错
|
|
1
|
0
|
|
2
|
1
|
|
4
|
1
|
|
5
|
2
|
|
6
|
2
|
|
7
|
3
|
|
8
|
3
|
|
9
|
4
|
1.3 集群基础
1.4 引导机制
- 静态的
- etcd Discovery
- DNS发现
二 集群部署-静态
2.1 环境准备
|
名称
|
地址
|
主机名
|
备注
|
|
etcd1
|
172.24.8.31
|
etcd1.example.com
|
|
|
etcd2
|
172.24.8.32
|
etcd2.example.com
|
|
|
etcd3
|
172.24.8.33
|
etcd3.example.com
|
1 # hostnamectl set-hostname etcd1.example.com
2 # hostnamectl set-hostname etcd2.example.com
3 # hostnamectl set-hostname etcd3.example.com
4 # vi /etc/hosts
5 #……
6 172.24.8.31 etcd1.example.com
7 172.24.8.32 etcd2.example.com
8 172.24.8.33 etcd3.example.com
2.2 安装etcd
1 # ETCD_VER=v3.3.9
2 # GITHUB_URL=https://github.com/coreos/etcd/releases/download
3 # DOWNLOAD_URL=${GITHUB_URL}
4 # rm -f /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz
5 # rm -rf /tmp/etcd-download-test
6 # mkdir -p /tmp/etcd-download-test #创建下载保存目录
7 # curl -L ${DOWNLOAD_URL}/${ETCD_VER}/etcd-${ETCD_VER}-linux-amd64.tar.gz -o /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz
8 # tar xzvf /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz -C /tmp/etcd-download-test --strip-components=1
9 # cp /tmp/etcd-download-test/etcd /usr/local/bin/
10 # cp /tmp/etcd-download-test/etcdctl /usr/local/bin/
11 # rm -f /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz
12
13 # rm -rf /tmp/etcd-download-test/
14 # ETCDCTL_API=3
15 # etcd --version
16 # etcdctl --version #查看已安装版本
2.3 启动前准备
1 # mkdir -p /var/log/etcd/ #建议创建etcd日志保存目录
2 # mkdir -p /data/etcd #建议创建单独的etcd数据目录
2.4 启动集群
1 [root@etcd1 ~]# etcd --name etcd1 --data-dir /data/etcd \
2 --initial-advertise-peer-urls http://172.24.8.31:2380 \
3 --listen-peer-urls http://172.24.8.31:2380 \
4 --listen-client-urls http://172.24.8.31:2379,http://127.0.0.1:2379 \
5 --advertise-client-urls http://172.24.8.31:2379 \
6 --initial-cluster-token etcd-cluster-1 \
7 --initial-cluster etcd1=http://172.24.8.31:2380,etcd2=http://172.24.8.32:2380,etcd3=http://172.24.8.33:2380 \
8 --initial-cluster-state new
1 [root@etcd2 ~]# etcd --name etcd2 --data-dir /data/etcd \
2 --initial-advertise-peer-urls http://172.24.8.32:2380 \
3 --listen-peer-urls http://172.24.8.32:2380 \
4 --listen-client-urls http://172.24.8.32:2379,http://127.0.0.1:2379 \
5 --advertise-client-urls http://172.24.8.32:2379 \
6 --initial-cluster-token etcd-cluster-1 \
7 --initial-cluster etcd1=http://172.24.8.31:2380,etcd2=http://172.24.8.32:2380,etcd3=http://172.24.8.33:2380 \
8 --initial-cluster-state new
9
10 [root@etcd3 ~]# etcd --name etcd3 --data-dir /data/etcd \
11 --initial-advertise-peer-urls http://172.24.8.33:2380 \
12 --listen-peer-urls http://172.24.8.33:2380 \
13 --listen-client-urls http://172.24.8.33:2379,http://127.0.0.1:2379 \
14 --advertise-client-urls http://172.24.8.33:2379 \
15 --initial-cluster-token etcd-cluster-1 \
16 --initial-cluster etcd1=http://172.24.8.31:2380,etcd2=http://172.24.8.32:2380,etcd3=http://172.24.8.33:2380 \
17 --initial-cluster-state new
1 [root@etcd1 ~]# vi /root/startetcd.sh
2 #!/bin/sh
3 #****************************************************************#
4 # ScriptName: /root/startetcd.sh
5 # Author: Xiang Hongying
6 # Create Date: 2018-09-10 01:14
7 # Modify Author: Xiang Hongying
8 # E-Mail: x120952576@126.com
9 # Version:
10 #***************************************************************#
11 LOGFILE=/var/log/etcd/etcd.log
12 /usr/local/bin/etcd --name etcd1 --data-dir /data/etcd \
13 --initial-advertise-peer-urls http://172.24.8.31:2380 \
14 --listen-peer-urls http://172.24.8.31:2380 \
15 --listen-client-urls http://172.24.8.31:2379,http://127.0.0.1:2379 \
16 --advertise-client-urls http://172.24.8.31:2379 \
17 --initial-cluster-token etcd-cluster-1 \
18 --initial-cluster etcd1=http://172.24.8.31:2380,etcd2=http://172.24.8.32:2380,etcd3=http://172.24.8.33:2380 \
19 -initial-cluster-state new >> $LOGFILE 2>&1 &
20 [root@etcd1 ~]# chmod u+x startetcd.sh
2.5 集群健康检测
1 [root@etcd1 ~]# etcdctl cluster-health

附录:使用systemd管理etcd。
1 [root@etcd1 ~]# vi /lib/systemd/system/etcd.service
2 [Unit]
3 Description=etcd
4 Documentation=https://github.com/coreos/etcd
5 Conflicts=etcd.service
6
7 [Service]
8 Type=notify
9 Restart=always
10 RestartSec=5s
11 LimitNOFILE=40000
12 TimeoutStartSec=0
13
14 ExecStart=/usr/local/bin/etcd --name etcd1 --data-dir /data/etcd \
15 --initial-advertise-peer-urls http://172.24.8.31:2380 \
16 --listen-peer-urls http://172.24.8.31:2380 \
17 --listen-client-urls http://172.24.8.31:2379,http://127.0.0.1:2379 \
18 --advertise-client-urls http://172.24.8.31:2379 \
19 --initial-cluster-token etcd-cluster-1 \
20 --initial-cluster etcd1=http://172.24.8.31:2380,etcd2=http://172.24.8.32:2380,etcd3=http://172.24.8.33:2380 \
21 --initial-cluster-state new
22
23 [Install]
24 WantedBy=multi-user.target
25 [root@etcd1 ~]# systemctl daemon-reload
26 [root@etcd1 ~]# systemctl start etcd.service
27 [root@etcd1 ~]# systemctl enable etcd.service
2.6 关闭集群
1 [root@etcd1 ~]# systemctl stop etcd
三 集群管理
3.1 集群成员检测
1 [root@etcd1 ~]# etcdctl member list

3.2 更新成员url
1 [root@etcd3 ~]# ifconfig eth0
2 inet 172.24.8.40
3 [root@etcd3 ~]# vi /lib/systemd/system/etcd.service #将所有旧IP改为最新IP。
1 [root@etcd3 ~]# systemctl restart etcd
2 [root@etcd1 ~]# etcdctl member list #在leader节点查看所有节点

1 [root@etcd1 ~]# etcdctl member update 14ff148c62a24fb2 http://172.24.8.40:2380 #更新对等url

3.3 添加新成员
1 [root@localhost ~]# hostnamectl set-hostname etcd4.example.com
1 [root@etcd1 ~]# etcdctl member add etcd4 http://172.24.8.34:2380

1 [root@etcd4 ~]# export ETCD_NAME="etcd4"
2 [root@etcd4 ~]# export ETCD_INITIAL_CLUSTER="etcd4=http://172.24.8.34:2380,etcd3=http://172.24.8.40:2380,etcd1=http://172.24.8.31:2380,etcd2=http://172.24.8.32:2380"
3 [root@etcd4 ~]# export ETCD_INITIAL_CLUSTER_STATE="existing"
4 [root@etcd4 ~]# etcd --listen-client-urls http://172.24.8.34:2379,http://127.0.0.1:2379 --advertise-client-urls http://172.24.8.34:2379 --listen-peer-urls http://172.24.8.34:2380 --initial-advertise-peer-urls http://172.24.8.34:2380 --data-dir /data/etcd
5 [root@etcd1 ~]# etcdctl member list
6 [root@etcd1 ~]# etcdctl cluster-health

1 # rm -rf /var/lib/etcd/default.etcd/
2 # systemctl start etcd
3.4 删除成员
1 [root@etcd1 ~]# etcdctl member remove 5a6397499417250
2 Removed member 5a6397499417250 from cluster

四 集群部署-发现
003.etcd集群部署-静态发现的更多相关文章
- 004.etcd集群部署-动态发现
一 etcd发现简介 1.1 需求背景 在实际环境中,集群成员的ip可能不会提前知道.如使用dhcp自动获取的情况,在这些情况下,使用自动发现来引导etcdetcd集群,而不是指定静态配置,这个过程被 ...
- Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之自签TLS证书及Etcd集群部署(二)
0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 一.服务器设置 1.把每一 ...
- etcd集群部署与遇到的坑(转)
原文 https://www.cnblogs.com/breg/p/5728237.html etcd集群部署与遇到的坑 在k8s集群中使用了etcd作为数据中心,在实际操作中遇到了一些坑.今天记录一 ...
- 005.基于docker部署etcd集群部署
一 环境准备 ntp配置:略 #建议配置ntp服务,保证时间一致性 etcd版本:v3.3.9 防火墙及SELinux:关闭防火墙和SELinux 名称 地址 主机名 备注 etcd1 172.24. ...
- etcd集群部署
etcd是用于共享配置和服务发现的分布式KV存储系统,随着CoreOS和Kubernetes等项目在开源社区日益火热,它们都用到了etcd组件作为一个高可用.强一致性的服务发现存储仓库.操作系统版本: ...
- Kubernetes集群部署之三ETCD集群部署
kuberntes 系统使用 etcd 存储所有数据,本文档介绍部署一个三节点高可用 etcd 集群的步骤,这三个节点复用 kubernetes 集群机器k8s-master.k8s-node-1.k ...
- K8s集群部署(一)------ETCD集群部署
环境说明 三台主机: k8s-master 10.0.3.225 k8s-node1 10.0.3.226 k8s-node2 10.0.3.227 配置主机名解析 [root@k8s- ...
- etcd集群部署与遇到的坑
在k8s集群中使用了etcd作为数据中心,在实际操作中遇到了一些坑.今天记录一下,为了以后更好操作. ETCD参数说明 —data-dir 指定节点的数据存储目录,这些数据包括节点ID,集群ID,集群 ...
- etcd 集群部署
etcd web管理 https://nikfoundas.github.io/etcd-viewer/ # git clone https://github.com/nikfoundas/etcd- ...
随机推荐
- Confluence 6 针对大数据量备份
XML 站点备份的方式只针对 Confluence 包含有几千页面的情况,XML 备份所需要的时间随着数据量的变化而增加.另外的一个问题是 XML 站点的备份将会包含上 G 的附件数据,随着数据量的增 ...
- Confluence 6 数据库连接方式
你可以使用 JDBC URL 或者一个 JNDI 数据源来连接 Confluence 到你的数据库. 在默认的设置向导中,只提供了使用 JDBC 数据库连接选项,这个也是推荐的数据库连接选项. 如果你 ...
- Confluence 6 站点高级自定义
你可以继续编辑的全局布局文件来继续更新你的主面板.请查看 Customizing the Confluence Dashboard 页面来获得更多有关的信息.你需要具有一些基本的Velocity 知识 ...
- 关于Sublime text 3如何编辑less并转(编译)成css文件
今天开始学习使用less这个强大方便的前端工具,本来是考虑用koala(专门编辑less的软件)来使用less的,但是发现sublime编辑器也可以实现对less的编译及高亮显示代码,这样既能少用一个 ...
- redis客户端、分布式锁及数据一致性
Redis Java客户端有很多的开源产品比如Redission.Jedis.lettuce等. Jedis是Redis的Java实现的客户端,其API提供了比较全面的Redis命令的支持:Redis ...
- jetbrains全系列可用例:IDEA、WebStorm、phpstorm、clion等激活到2099
破解补丁激活 之前看了好多的其它的方法感觉都不是很靠谱还是这个本人亲试可以长期有效不仅能激活pycharm.jetbrains全系列可用例:IDEA.WebStorm.phpstorm.clion等激 ...
- 三.hadoop mapreduce之WordCount例子
目录: 目录见文章1 这个案列完成对单词的计数,重写map,与reduce方法,完成对mapreduce的理解. Mapreduce初析 Mapreduce是一个计算框架,既然是做计算的框架,那么表现 ...
- 将txt文本转换为excel格式
将txt文本转换为excel格式,中间使用的列分割为 tab 键 一.使用xlwt模块 注:Excel 2003 一个工作表行数限制65536,列数限制256 需要模块:xlwt 模块安装:xlwt ...
- C#学习-类的成员
定义完类之后,还需在类中定义成员. 类的成员包括字段.属性.方法和构造函数等,它们与类一样,也都有自己的访问权限.以下是 public,同一个程序集或引用该程序集的其他程序集都可以访问 private ...
- vue中methods一个方法调用另外一个方法
转自http://blog.csdn.net/zhangjing1019/article/details/77942923 vue在同一个组件内: methods中的一个方法调用methods中的另外 ...