概述
etcd是让配置数据和程序代码脱离的产物,更详尽的应用场景阐述,可以参考《etcd:从应用场景到实现原理的全方位解读》
前言:
1、需要至少两台服务器,
节点1:etd-1 192.168.0.1
节点2:etd-2 192.168.0.2
2、系统版本:CentOS7
3、端口2379、2380、4001的开放
节点1中:
一、下载安装
1、下载etcd二进制包 etcd-v3.3.8-linux-amd64.tar.gz,官方地址:https://github.com/coreos/etcd/releases/
2、解压里面命令,复制到/usr/bin目录里
二、配置
1、新建etcd所需的数据目录/opt/etcd/data,后续配置会用到
mkdir -p /opt/etcd/data
2、新建配置文件,注意这里ip的配置必须是内网ip,公网ip会启动不了,vim /etc/etcd/conf.yml
name: etcd-1
data-dir: /opt/etcd/data
listen-client-urls: http://192.168.0.1:2379,http://127.0.0.1:2379
advertise-client-urls: http://192.168.0.1:2379,http://127.0.0.1:2379
listen-peer-urls: http://192.168.0.1:2380
initial-advertise-peer-urls: http://192.168.0.1:2380
initial-cluster-token: etcd-cluster-token
initial-cluster-state: new
initial-cluster: etcd-1=http://192.168.0.1:2380,etcd-2=http://192.168.0.2:2380
配置参数说明:
name 节点名称
data-dir 指定节点的数据存储目录
listen-peer-urls 监听URL,用于与其他节点通讯
listen-client-urls 对外提供服务的地址:比如 http://ip:2379,http://127.0.0.1:2379 ,客户端会连接到这里和 etcd 交互
initial-advertise-peer-urls 该节点同伴监听地址,这个值会告诉集群中其他节点
initial-cluster-state 新建集群的时候,这个值为 new ;假如已经存在的集群,这个值为 existing
initial-cluster-token 创建集群的 token,这个值每个集群保持唯一。这样的话,如果你要重新创建集群,即使配置和之前一样,也会再次生成新的集群和节点 uuid;否则会导致多个集群之间的冲突,造成未知的错误
advertise-client-urls 对外公告的该节点客户端监听地址,这个值会告诉集群中其他节点
initial-cluster 集群中所有节点的信息,格式为 node1=http://ip1:2380,node2=http://ip2:2380,… 。注意:这里的 node1 是节点的 --name 指定的名字;后面的 ip1:2380 是 --initial-advertise-peer-urls 指定的值
3、新建启动服务,vim /usr/lib/systemd/system/etcd.service
[Unit]
Description=Etcd Server
After=network.target
After=network-online.target
Wants=network-online.target
[Service]
Type=notify
WorkingDirectory=/opt/etcd/data/
# User=etcd
ExecStart=/usr/bin/etcd --config-file=/etc/etcd/conf.yml
Restart=on-failure
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target
三、启动etcd服务
systemctl daemon-reload
systemctl enable etcd.service
systemctl start etcd.service
节点2中:
一、重复以上步骤,不同的是配置文件vim /etc/etcd/conf.yml,为
name: etcd-2
data-dir: /opt/etcd/data
listen-client-urls: http://192.168.0.2:2379,http://127.0.0.1:2379
advertise-client-urls: http://192.168.0.2:2379,http://127.0.0.1:2379
listen-peer-urls: http://192.168.0.2:2380
initial-advertise-peer-urls: http://192.168.0.2:2380
initial-cluster-token: etcd-cluster-token
initial-cluster-state: new
initial-cluster: etcd-1=http://192.168.0.1:2380,etcd-2=http://192.168.0.2:2380
应用:
1、查看集群的节点列表
etcdctl member list
27bff32661a83e07: name=etcd-1 peerURLs=http://192.168.0.1:2380 clientURLs=http://127.0.0.1:2379,http://192.168.0.1:2379 isLeader=true
34dgg34dfdsf2e32: name=etcd-2 peerURLs=http://192.168.0.2:2380 clientURLs=http://127.0.0.1:2379,http://192.168.0.2:2379 isLeader=true
2、查看集群节点健康状态
etcdctl cluster-health
3、ECTD读写操作
基于HTTP协议的API使用起来比较简单,这里主要通过etcdctl和curl两种方式来做简单介绍。
下面通过给message key设置Hello值示例:
etcdctl set /message Hello
Hello
$ curl -X PUT http://127.0.0.1:2379/v2/keys/message -d value="Hello"
{"action":"set","node":{"key":"/message","value":"Hello","modifiedIndex":4,"createdIndex":4}}
读取message的值:
etcdctl get /message
Hello
$ curl http://127.0.0.1:2379/v2/keys/message
{"action":"get","node":{"key":"/message","value":"Hello","modifiedIndex":9,"createdIndex":9}}
删除message key:
etcdctl rm /message
$ curl -X DELETE http://127.0.0.1:2379/v2/keys/message
{"action":"delete","node":{"key":"/message","modifiedIndex":10,"createdIndex":9},"prevNode":{"key":"/message","value":"Hello","modifiedIndex":9,"createdIndex":9}}
如想了解更多技术架构文章,扫码关注我的个人公众号以及转发分享哈~
最后
以上就是坦率发卡为你收集整理的etcd集群部署前言:节点1中:节点2中:应用:的全部内容,希望文章能够帮你解决etcd集群部署前言:节点1中:节点2中:应用:所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复