1. 程式人生 > >1.搭建etcd集群

1.搭建etcd集群

class 數據庫連接 ins 一致性 con listen 備份 token 標記

1.ectd概述

etcd是一個分布式鍵值存儲,它提供了一種在一組機器上存儲數據的可靠方法。它是開源的,可在GitHub上獲得。etcd在網絡分區期間優雅地處理領導者選舉,並且可以容忍機器故障,包括領導者。

您的應用程序可以將數據讀寫到etcd中。一個簡單的用例是將etcd中的數據庫連接詳細信息或功能標記存儲為鍵值對。可以監視這些值,允許您的應用在更改時重新配置。

高級用法利用一致性保證來實現數據庫領導者選舉或跨工作集群進行分布式鎖定。

etcd的特性

技術分享圖片

和同類產品的對比

技術分享圖片

為什麽選用etcd

本計劃使用consul的,但是考慮到k8s默認使用etcd進行存儲.所以這裏也使用etcd來做存儲和服務發現

2.搭建一個集群版的etcd

2.1使用yum安裝etcd

yum install etcd -y

2.2 配置etcd

分別在各個節點上備份配置文件後清空原始配置文件

主要是方便後續寫入新的配置文件

cd /etc/etcd/
cp etcd.conf etcd.conf.bak
cat /dev/null > /etc/etcd/etcd.conf

master1節點

# 節點名稱
ETCD_NAME=master1
# 數據庫存放位置
ETCD_DATA_DIR="/var/lib/etcd/etcd"
# 監聽其他 Etcd 實例地址
ETCD_LISTEN_PEER_URLS
="http://192.168.161.128:2380" # 監聽客戶端地址 ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379,http://0.0.0.0:4001" # 通知其他 Etcd 實例地址 ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.161.128:2380" # 初始化集群內節點地址 ETCD_INITIAL_CLUSTER="master1=http://192.168.161.128:2380,master2=http://192.168.161.129:2380,master3=http://192.168.161.130:2380
" # 初始化集群狀態,new 表示新建 ETCD_INITIAL_CLUSTER_STATE="new" # 初始化集群 token ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-token" # 通知客戶端地址 ETCD_ADVERTISE_CLIENT_URLS="http://192.168.161.128:2379"

master2節點

# 節點名稱
ETCD_NAME=master2
# 數據庫存放位置
ETCD_DATA_DIR="/var/lib/etcd/etcd"
# 監聽其他 Etcd 實例地址
ETCD_LISTEN_PEER_URLS="http://192.168.161.129:2380"
# 監聽客戶端地址
ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379,http://0.0.0.0:4001"
# 通知其他 Etcd 實例地址
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.161.129:2380"
# 初始化集群內節點地址
ETCD_INITIAL_CLUSTER="master1=http://192.168.161.128:2380,master2=http://192.168.161.129:2380,master3=http://192.168.161.130:2380"   
# 初始化集群狀態,new 表示新建
ETCD_INITIAL_CLUSTER_STATE="new"
# 初始化集群 token
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-token"
# 通知客戶端地址
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.161.129:2379"

master3

# 節點名稱
ETCD_NAME=master3
# 數據庫存放位置
ETCD_DATA_DIR="/var/lib/etcd/etcd"
# 監聽其他 Etcd 實例地址
ETCD_LISTEN_PEER_URLS="http://192.168.161.130:2380"
# 監聽客戶端地址
ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379,http://0.0.0.0:4001"
# 通知其他 Etcd 實例地址
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.161.130:2380"
# 初始化集群內節點地址
ETCD_INITIAL_CLUSTER="master1=http://192.168.161.128:2380,master2=http://192.168.161.129:2380,master3=http://192.168.161.130:2380"   
# 初始化集群狀態,new 表示新建
ETCD_INITIAL_CLUSTER_STATE="new"
# 初始化集群 token
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-token"
# 通知客戶端地址
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.161.130:2379"

3.常用命令

設置開機啟動:
systemctl enable etcd

啟動etcd:
systemctl start etcd

查看狀態:
systemctl status etcd

列出節點成員:
etcdctl member list

查看節點監控狀態:
etcdctl cluster-health

1.搭建etcd集群