大湖之子 发表于 2019-1-31 11:40:25

etcd集群的部署

node1192.168.56.173
node2 192.168.56.174
node3 192.168.56.200
node* 为主机名称
# cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)
#  

https://github.com/coreos/etcd/releases/download/v3.0.15/etcd-v3.0.15-linux-amd64.tar.gz
tar xfetcd-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

Description=etcd2.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

WantedBy=multi-user.target# 设置服务自启动
systemctl enable /etc/systemd/system/etcd2.service
# 启动etcd1(先不要做 三个节点都部署完毕 在分别启动 否则启动会hang)
systemctl restart etcd2.service192.168.56.174(node2)
  # cat/etc/systemd/system/etcd2.service

Description=etcd2.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

WantedBy=multi-user.target# 设置服务自启动
systemctl enable /etc/systemd/system/etcd2.service
# 启动etcd2(先不要做 三个节点都部署完毕 在分别启动 否则启动会hang)
systemctl restart etcd2.service192.168.56.200(node2)
# cat/etc/systemd/system/etcd2.service
# cat/etc/systemd/system/etcd2.service

Description=etcd2.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

WantedBy=multi-user.target# 设置服务自启动
systemctl enable /etc/systemd/system/etcd2.service
# 启动etcd3(先不要做 三个节点都部署完毕 在分别启动 否则启动会hang)
systemctl restart etcd2.service  备注:启动的方式一个一个启动 否则systemctlrestart   etcd2.service 会hang住
  

  查看状态
# systemctlstatus 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: established a TCP streaming connection with peer e37f661be0f0e44a (stream Message reader)
Sep 02 23:44:45 node3 etcd: established a TCP streaming connection with peer 161efc88633d5fd4 (stream MsgApp v2 reader)
Sep 02 23:44:45 node3 etcd: established a TCP streaming connection with peer 161efc88633d5fd4 (stream Message reader)
Sep 02 23:44:45 node3 etcd: closed an existing TCP streaming connection with peer 161efc88633d5fd4 (stream Message writer)
Sep 02 23:44:45 node3 etcd: established a TCP streaming connection with peer 161efc88633d5fd4 (stream Message writer)
Sep 02 23:44:46 node3 etcd: 52aafe548d51c9ea received a MsgVote message with higher term from e37f661be0f0e44a
Sep 02 23:44:46 node3 etcd: 52aafe548d51c9ea became follower at term 26
Sep 02 23:44:46 node3 etcd: 52aafe548d51c9ea voted for e37f661be0f0e44a at term 26
Sep 02 23:44:46 node3 etcd: 52aafe548d51c9ea ignored a MsgVote message with lower term from 161efc88633d5fd4
Sep 02 23:44:46 node3 etcd: raft.node: 52aafe548d51c9ea elected leader e37f661be0f0e44a at term 26
## 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         
#  查看相关主体的状态

# 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
#  集群的状态监控(可以结合zabbix做监控)
# 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
#  etcd基本操作

# etcdctl set testkey "hello world"
hello world
# etcdctl   gettestkey
hello world
# curl -L http://localhost:2379/v2/keys/testkey
{"action":"get","node":{"key":"/testkey","value":"hello world","modifiedIndex":11,"createdIndex":11}}
# curl -L http://192.168.56.173:2379/v2/keys/testkey
{"action":"get","node":{"key":"/testkey","value":"hello world","modifiedIndex":11,"createdIndex":11}}
#  




页: [1]
查看完整版本: etcd集群的部署