ETCD 集群部署

0.测试环境
    Linux(ubuntu18.04)*3  etcd 3.x
    192.168.0.104   节点1
    192.168.0.107   节点2
    192.168.0.108   节点3

1.安装,可以直接下载二进制,也可以直接apt安装,这里直接apt安装(三个节点都要安装)
    
    apt-get update       //更新apt
    apt install etcd     //安装etcd
    export ETCDCTL_API=3 //etcdctl默认2.x的版本操作,这里声明用3.x版本操作
    etcdctl version      //确认安装成功

2.创建配置文件etcd.conf 目录自己定,我是放在 /etc/etcd3/etcd.conf
三个节点的内容如下(三个节点都要配置)(替换成自己的IP和路径)

name: etcd-1
data-dir: /etc/etcd3/data
listen-client-urls: http://0.0.0.0:2379,http://127.0.0.1:2379
advertise-client-urls: http://192.168.0.104:2379
listen-peer-urls: http://0.0.0.0:2380
initial-advertise-peer-urls: http://192.168.0.104:2380
initial-cluster: etcd-1=http://192.168.0.104:2380,etcd-2=http://192.168.0.107:2380,etcd-3=http://192.168.0.108:2380
initial-cluster-token: etcd-cluster-my
initial-cluster-state: new


name: etcd-2
data-dir: /etc/etcd3/data
listen-client-urls: http://0.0.0.0:2379
advertise-client-urls: http://192.168.0.107:2379
listen-peer-urls: http://0.0.0.0:2380
initial-advertise-peer-urls: http://192.168.0.107:2380
initial-cluster: etcd-1=http://192.168.0.104:2380,etcd-2=http://192.168.0.107:2380,etcd-3=http://192.168.0.108:2380
initial-cluster-token: etcd-cluster-my
initial-cluster-state: exist


name: etcd-3
data-dir: /etc/etcd3/data
listen-client-urls: http://0.0.0.0:2379
advertise-client-urls: http://192.168.0.108:2379
listen-peer-urls: http://0.0.0.0:2380
initial-advertise-peer-urls: http://192.168.0.108:2380
initial-cluster: etcd-1=http://192.168.0.104:2380,etcd-2=http://192.168.0.107:2380,etcd-3=http://192.168.0.108:2380
initial-cluster-token: etcd-cluster-my
initial-cluster-state: exist


字段说明
    name:本member的名称
    data-dir:存储的数据目录
    listen-client-urls:用于监听客户端etcdctl或者curl连接;0.0.0.0表示监听本机所有地址
    listen-peer-urls:用于监听集群中其它member的连接;0.0.0.0表示监听本机所有地址
    advertise-client-urls: 本机地址, 用于通知客户端,客户端通过此IPs与集群通信
    initial-advertise-peer-urls:本机地址,用于通知集群member,与member通信
    initial-cluster:描述集群中所有节点的信息,描述每个节点名称、ip、端口,集群静态启动使用,本member根据此信息去联系其他member
    initial-cluster-token:集群唯一标示
    initial-cluster-state:集群状态,新建集群时候设置为new,若是想加入某个已经存在的集群设置为existing
    
4.启动执行(替换成自己的路径)
    etcd --config-file /etc/etcd3/etcd.conf
    
5.查看集群状态
看下节点列表
    etcdctl member list
结果
    5eda8a03ef4ff59e, started, etcd-3, http://192.168.0.108:2380, http://192.168.0.108:2379
    882a1d2f17c73e06, started, etcd-1, http://192.168.0.104:2380, http://192.168.0.104:2379
    9cac2257803e1d3d, started, etcd-2, http://192.168.0.107:2380, http://192.168.0.107:2379

看下健康状态(每台机器都可以单独执行查看)
    etcdctl endpoint health 
结果    
    127.0.0.1:2379 is healthy: successfully committed proposal: took = 4.595363ms
    
PS:要关防火墙,不然在数据同步或者选举的时候一直提示超时。ubuntu关闭防火墙直接执行 sudo ufw disable

6.测试
  找一个节点执行put一下,找另一个节点get一下,看看数据能不能同步过来就行了。
  

最后:
  ETCD集群是支持HTTPS安全配置的,之后会把这个补充上,同时还有很多细节可以自行研究,比如说
  export ETCDCTL_API=3 这个是版本,每次打开bash的时候都要设置,可以直接
  echo 'export ETCDCTL_API=3' >>  ~/.bashrc 一次性配置。
  在比如说etcd通常是要开机自启动的,可以配置服务来做。等等。
  后期还会整理补充一些原理性的东西,比如选举算法。节点坏掉会怎么样,还有就是很重要的一个 etcd分布式锁的部分。
  

 

你可能感兴趣的:(架构师之路,k8s)