ETCD高可用集群-快速搭建

准备


  准备三台能够互相的访问的Linux机器,这里所有以Centos 7为例:node

  • node1-192.168.22.117 linux

  • node2-192.168.22.118 git

  • node3-192.168.22.119github

  关闭这三台机器的防火墙:web

systemctl disable firewalld.service  
systemctl stop firewalld.service
安装


  三台机器都须要安装etcd,能够采用下载二进制代码的方式来安装etcd:sql

wget https://github.com/coreos/etcd/releases/download/v3.2.13/etcd-v3.2.13-linux-amd64.tar.gz

tar -xvf etcd-v3.2.13-linux-amd64.tar.gz

mv etcd-v3.2.13-linux-amd64/etcd* /usr/bin

  建议使用yum的安装方式:bash

yum -y install etcd
配置


  不管采用哪一种方式,最后都须要配置 /usr/lib/systemd/system/etcd.service/etc/etcd/etcd.config 这两个文件。编辑器

  使用vi编辑器打开或者建立etcd.service文件:svg

vi /usr/lib/systemd/system/etcd.service

  复制以下内容:ui

[Unit]  
Description=Etcd Server  
After=network.target  
After=network-online.target  
Wants=network-online.target  

[Service]  
Type=notify  
WorkingDirectory=/var/lib/etcd/  
EnvironmentFile=-/etc/etcd/etcd.conf  
User=etcd  
# set GOMAXPROCS to number of processors  
ExecStart=/bin/bash -c "GOMAXPROCS=$(nproc) /usr/bin/etcd --name=\"${ETCD_NAME}\" --data-dir=\"${ETCD_DATA_DIR}\" --listen-client-urls=\"${ETCD_LISTEN_CLIENT_URLS}\" --listen-peer-urls=\"${ETCD_LISTEN_PEER_URLS}\" --advertise-client-urls=\"${ETCD_ADVERTISE_CLIENT_URLS}\" --initial-cluster-token=\"${ETCD_INITIAL_CLUSTER_TOKEN}\" --initial-cluster=\"${ETCD_INITIAL_CLUSTER}\" --initial-cluster-state=\"${ETCD_INITIAL_CLUSTER_STATE}\" "  
Restart=on-failure  
LimitNOFILE=65536  

[Install]  
WantedBy=multi-user.target

  使用vi编辑器打开或者建立etcd.conf文件:

vi /etc/etcd/etcd.config

  根据本身实际ip地址修改以下文件:

ETCD_NAME=node1 
ETCD_DATA_DIR="/var/lib/etcd/etcd01" 
ETCD_LISTEN_PEER_URLS="http://192.168.22.117:2380" 
ETCD_LISTEN_CLIENT_URLS="http://192.168.22.117:2379,http://127.0.0.1:2379" 
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.22.117:2380" 
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.22.117:2379" 
ETCD_INITIAL_CLUSTER_STATE="new" 
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster" 
ETCD_INITIAL_CLUSTER="node1=http://192.168.22.117:2380,node2=http://192.168.22.118:2380,node3=http://192.168.22.119:2380"

三台机器的ETCD_NAME须要不一样,如:node一、node二、node3。ETCD_DATA_DIR也作相应的修改,如:”/var/lib/etcd/etcd01”、”/var/lib/etcd/etcd02”、”/var/lib/etcd/etcd03”。ETCD_INITIAL_CLUSTER须要配置这三台机器全部的ip地址。

添加服务


  安装并配置完成etcd后,分别为三台机器添加etcd服务,设置自动启动:

systemctl daemon-reload  

systemctl start etcd systemctl enable etcd

  服务启动成功后,查看etcd各个节点状态:

etcdctl member list


这里写图片描述