博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
etcd集群的部署
阅读量:7072 次
发布时间:2019-06-28

本文共 7240 字,大约阅读时间需要 24 分钟。

1
2
3
4
5
6
7
node1  192.168.56.173
node2 192.168.56.174
node3 192.168.56.200
node* 为主机名称
[root@node1 ~]
# cat /etc/redhat-release 
CentOS Linux release 7.2.1511 (Core) 
[root@node1 ~]
#

1
2
3
4
5
https:
//github
.com
/coreos/etcd/releases/download/v3
.0.15
/etcd-v3
.0.15-linux-amd64.
tar
.gz 
tar 
xf  etcd-v3.0.15-linux-amd64.
tar
.gz 
cd 
etcd-v3.0.15-linux-amd64 
cp 
etcd  
/usr/bin/
cp 
etcdctl 
/usr/bin/

192.168.56.173(node1)

cat  /etc/systemd/system/etcd2.service

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[Unit]
Description=etcd2.service
[Service]
Type=notify
TimeoutStartSec=0
Restart=always
ExecStartPre=-
/usr/bin/mkdir 
-p 
/data/etcd2
ExecStart=
/usr/bin/etcd 
\
  
--data-
dir 
/data/etcd2 
\
  
--name etcd0 \
  
--advertise-client-urls http:
//192
.168.56.173:2379,http:
//192
.168.56.173:4001 \
  
--listen-client-urls http:
//0
.0.0.0:2379,http:
//0
.0.0.0:4001 \
  
--initial-advertise-peer-urls http:
//192
.168.56.173:2380 \
  
--listen-peer-urls http:
//0
.0.0.0:2380 \
  
--initial-cluster-token etcd-cluster-1 \
  
--initial-cluster etcd0=http:
//192
.168.56.173:2380,etcd1=http:
//192
.168.56.174:2380,etcd2=http:
//192
.168.56.200:2380
[Install]
WantedBy=multi-user.target
1
2
3
4
# 设置服务自启动
systemctl 
enable 
/etc/systemd/system/etcd2
.service
# 启动etcd1  (先不要做 三个节点都部署完毕 在分别启动 否则启动会hang)
systemctl restart etcd2.service

192.168.56.174(node2)

[root@node2 ~]# cat  /etc/systemd/system/etcd2.service 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[Unit]
Description=etcd2.service
[Service]
Type=notify
TimeoutStartSec=0
Restart=always
ExecStartPre=-
/usr/bin/mkdir 
-p 
/data/etcd2
ExecStart=
/usr/bin/etcd 
\
  
--data-
dir 
/data/etcd2 
\
  
--name etcd1 \
  
--advertise-client-urls http:
//192
.168.56.174:2379,http:
//192
.168.56.174:4001 \
  
--listen-client-urls http:
//0
.0.0.0:2379,http:
//0
.0.0.0:4001 \
  
--initial-advertise-peer-urls http:
//192
.168.56.174:2380 \
  
--listen-peer-urls http:
//0
.0.0.0:2380 \
  
--initial-cluster-token etcd-cluster-1 \
  
--initial-cluster etcd0=http:
//192
.168.56.173:2380,etcd1=http:
//192
.168.56.174:2380,etcd2=http:
//192
.168.56.200:2380
[Install]
WantedBy=multi-user.target
1
2
3
4
# 设置服务自启动
systemctl 
enable 
/etc/systemd/system/etcd2
.service
# 启动etcd2  (先不要做 三个节点都部署完毕 在分别启动 否则启动会hang)
systemctl restart etcd2.service

192.168.56.200(node2)

[root@node3~]# cat  /etc/systemd/system/etcd2.service 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[root@node3 ~]
# cat  /etc/systemd/system/etcd2.service 
[Unit]
Description=etcd2.service
[Service]
Type=notify
TimeoutStartSec=0
Restart=always
ExecStartPre=-
/usr/bin/mkdir 
-p 
/data/etcd2
ExecStart=
/usr/bin/etcd 
\
  
--data-
dir 
/data/etcd2 
\
  
--name etcd2 \
  
--advertise-client-urls http:
//192
.168.56.200:2379,http:
//192
.168.56.200:4001 \
  
--listen-client-urls http:
//0
.0.0.0:2379,http:
//0
.0.0.0:4001 \
  
--initial-advertise-peer-urls http:
//192
.168.56.200:2380 \
  
--listen-peer-urls http:
//0
.0.0.0:2380 \
  
--initial-cluster-token etcd-cluster-1 \
  
--initial-cluster etcd0=http:
//192
.168.56.173:2380,etcd1=http:
//192
.168.56.174:2380,etcd2=http:
//192
.168.56.200:2380
[Install]
WantedBy=multi-user.target
1
2
3
4
# 设置服务自启动
systemctl 
enable 
/etc/systemd/system/etcd2
.service
# 启动etcd3  (先不要做 三个节点都部署完毕 在分别启动 否则启动会hang)
systemctl restart etcd2.service

备注:启动的方式一个一个启动 否则systemctl  restart   etcd2.service 会hang住

查看状态 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[root@node3 ~]
# systemctl  status etcd2.service 
● etcd2.service
   
Loaded: loaded (
/etc/systemd/system/etcd2
.service; enabled; vendor preset: disabled)
   
Active: active (running) since Sat 2017-09-02 23:43:59 CST; 10min ago
  
Process: 2673 ExecStartPre=
/usr/bin/mkdir 
-p 
/data/etcd2 
(code=exited, status=0
/SUCCESS
)
 
Main PID: 2675 (etcd)
   
CGroup: 
/system
.slice
/etcd2
.service
           
└─2675 
/usr/bin/etcd 
--data-
dir 
/data/etcd2 
--name etcd2 --advertise-client-urls http:
//192
.168.56.200:2379,http:
//192
.168.56.200:4001 --listen-client-urls http:
//0
.0.0.0:2379,http:
//0
.0.0.0:4001...
 
Sep 02 23:44:45 node3 etcd[2675]: established a TCP streaming connection with peer e37f661be0f0e44a (stream Message reader)
Sep 02 23:44:45 node3 etcd[2675]: established a TCP streaming connection with peer 161efc88633d5fd4 (stream MsgApp v2 reader)
Sep 02 23:44:45 node3 etcd[2675]: established a TCP streaming connection with peer 161efc88633d5fd4 (stream Message reader)
Sep 02 23:44:45 node3 etcd[2675]: closed an existing TCP streaming connection with peer 161efc88633d5fd4 (stream Message writer)
Sep 02 23:44:45 node3 etcd[2675]: established a TCP streaming connection with peer 161efc88633d5fd4 (stream Message writer)
Sep 02 23:44:46 node3 etcd[2675]: 52aafe548d51c9ea [term: 25] received a MsgVote message with higher term from e37f661be0f0e44a [term: 26]
Sep 02 23:44:46 node3 etcd[2675]: 52aafe548d51c9ea became follower at term 26
Sep 02 23:44:46 node3 etcd[2675]: 52aafe548d51c9ea [logterm: 20, index: 623, vote: 0] voted 
for 
e37f661be0f0e44a [logterm: 20, index: 623] at term 26
Sep 02 23:44:46 node3 etcd[2675]: 52aafe548d51c9ea [term: 26] ignored a MsgVote message with lower term from 161efc88633d5fd4 [term: 24]
Sep 02 23:44:46 node3 etcd[2675]: raft.node: 52aafe548d51c9ea elected leader e37f661be0f0e44a at term 26
[root@node3 ~]
#
1
2
3
4
5
6
7
8
9
10
11
[root@node3 ~]
# netstat  -lntup 
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID
/Program 
name    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      869
/sshd            
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1132
/master         
tcp6       0      0 :::2379                 :::*                    LISTEN      2675
/etcd           
tcp6       0      0 :::2380                 :::*                    LISTEN      2675
/etcd           
tcp6       0      0 :::22                   :::*                    LISTEN      869
/sshd            
tcp6       0      0 ::1:25                  :::*                    LISTEN      1132
/master         
tcp6       0      0 :::4001                 :::*                    LISTEN      2675
/etcd           
[root@node3 ~]
#

查看相关主体的状态

1
2
3
4
5
[root@node1 etcd-v3.0.15-linux-amd64]
# etcdctl member list
161efc88633d5fd4: name=etcd0 peerURLs=http:
//192
.168.56.173:2380 clientURLs=http:
//192
.168.56.173:2379,http:
//192
.168.56.173:4001 isLeader=
false
52aafe548d51c9ea: name=etcd2 peerURLs=http:
//192
.168.56.200:2380 clientURLs=http:
//192
.168.56.200:2379,http:
//192
.168.56.200:4001 isLeader=
false
e37f661be0f0e44a: name=etcd1 peerURLs=http:
//192
.168.56.174:2380 clientURLs=http:
//192
.168.56.174:2379,http:
//192
.168.56.174:4001 isLeader=
true
[root@node1 etcd-v3.0.15-linux-amd64]
#

集群的状态监控(可以结合zabbix做监控)

1
2
3
4
5
6
[root@node1 etcd-v3.0.15-linux-amd64]
# etcdctl cluster-health
member 161efc88633d5fd4 is healthy: got healthy result from http:
//192
.168.56.173:2379
member 52aafe548d51c9ea is healthy: got healthy result from http:
//192
.168.56.200:2379
member e37f661be0f0e44a is healthy: got healthy result from http:
//192
.168.56.174:2379
cluster is healthy
[root@node1 etcd-v3.0.15-linux-amd64]
#

etcd基本操作

1
2
3
4
5
6
7
8
9
[root@node1 ~]
# etcdctl set testkey "hello world"
hello world
[root@node1 ~]
# etcdctl   get  testkey 
hello world
[root@node1 ~]
# curl -L http://localhost:2379/v2/keys/testkey
{
"action"
:
"get"
,
"node"
:{
"key"
:
"/testkey"
,
"value"
:
"hello world"
,
"modifiedIndex"
:11,
"createdIndex"
:11}}
[root@node1 ~]
# curl -L http://192.168.56.173:2379/v2/keys/testkey
{
"action"
:
"get"
,
"node"
:{
"key"
:
"/testkey"
,
"value"
:
"hello world"
,
"modifiedIndex"
:11,
"createdIndex"
:11}}
[root@node1 ~]
#
本文转自 小小三郎1 51CTO博客,原文链接:http://blog.51cto.com/wsxxsl/1962149,如需转载请自行联系原作者
你可能感兴趣的文章
赛马题(转)
查看>>
网页的背景图片代码
查看>>
SURF算法与源码分析、下
查看>>
高速排序算法
查看>>
数学图形之伞形
查看>>
vs2008打包公布程序
查看>>
浅谈WebService的版本兼容性设计
查看>>
随便弄个名字 以后改
查看>>
opennebula auth module ldap
查看>>
Ubuntu打开终端的方法三种
查看>>
zabbix 通过自定义key完成网卡监控
查看>>
WifiManager类具体解释
查看>>
cocos2dx3.2 android平台搭建开发环境纠错备忘录
查看>>
CDN(内容分发网络)技术原理
查看>>
Flask + mod_wsgi + Apache on Windows 部署成功(随时接受提问)
查看>>
提高代码编码的效率,习惯非常重要!
查看>>
maven最全教程
查看>>
对Inductive Bias(归纳偏置)的理解
查看>>
chest
查看>>
hdu 1215 七夕节
查看>>