etcd 是云原生架构中重要的基础组件,由 CNCF 孵化托管。etcd 在微服务和 Kubernates 集群中不仅可以作为服务注册与发现,还可以作为 key-value 存储的中间件。
今天我们来记录下etcd的安装部署过程
首先我们下载etcd包
wget https://github.com/etcd-io/etcd/releases/download/v3.5.0/etcd-v3.5.0-linux-amd64.tar.gz tar -zxf etcd-v3.5.0-linux-amd64.tar.gz mv etcd-v3.5.0-linux-amd64 /usr/local/etcd
添加环境变量并使其生效
echo 'export PATH=$PATH:/usr/local/etcd' >> /etc/profile source /etc/profile
创建存储目录
mkdir -p /data/etcd
接着我们创建etcd.conf配置文件
mkdir -p /etc/etcd vi /etc/etcd/etcd.conf name: "etcd-1" #节点名称 data-dir: "/data/etcd" #etcd数据存储目录 listen-client-urls: "http://192.168.1.76:2379,http://127.0.0.1:2379" #对外服务地址
这样就配置完成了,我们可以查看下etcd版本
etcdctl version #或者 etcd --version
接着我们编写system服务,这样可以用来管理etcd和让其开机启动
cat /usr/lib/systemd/system/etcd.service [Unit] Description=Etcd Server After=network.target After=network-online.target Wants=network-online.target [Service] Type=notify EnvironmentFile=/etc/etcd/etcd.conf ExecStart=/usr/local/etcd/etcd --config-file=/etc/etcd/etcd.conf Restart=on-failure LimitNOFILE=65536 [Install] WantedBy=multi-user.target
然后设置开机启动并启动etcd
systemctl daemon-reload systemctl start etcd systemctl enable etcd
启动以后我们就可以进行验证了。
etcdctl endpoint status --cluster -w table
etcd.conf文件配置参考参数如下
-name | etcd节点名字如果在集群环境中,name必须是唯一的,建议用主机名称或者机器ID |
–data-dir | 数据存储目录 |
–initial-cluster | etcd启动的时候,通过这个配置找到其他ectd节点的地址列表,格式:‘节点名字1=http://节点ip1:2380,节点名字1=http://节点ip1:2380,…’ |
–initial-cluster-state | 初始化的时候,集群的状态 “new” 或者 "existing"两种状态,new代表新建的集群,existing表示加入已经存在的集群。 |
–advertise-client-urls | 如果–listen-client-urls配置了,多个监听客户端请求的地址,这个参数可以给出,建议客户端使用什么地址访问etcd。 |
–initial-advertise-peer-urls | 服务端之间通讯使用的地址列表。 |
–listen-client-urls | 监听客户端请求的地址列表,格式:‘http://localhost:2379’, 多个用逗号分隔。 |
–listen-peer-urls | 服务端节点之间通讯的监听地址,格式:‘http://localhost:2380’ |