程序地带

docker搭建etcd集群 bitnami/etcd


docker部署etcd集群

优秀的博客应该一来就先上代码(不接受杠精反驳)


注意这是sh代码,liunx批处理脚本


#!/bin/bash
#设置网络名
network_name=etcd_network
#创建网络
docker network create --driver bridge --subnet=10.3.36.0/16 --gateway=10.3.1.1 ${network_name}
#设置结点名
node1=etcd_node1
node1_ip=10.3.36.1
node2=etcd_node2
node2_ip=10.3.36.2
node3=etcd_node3
node3_ip=10.3.36.3
#设置集群口令
cluster_token=etcd_cluster
#创建节点1
docker run -d --name ${node1}
--network ${network_name}
--publish 12379:2379
--publish 12380:2380
--ip ${node1_ip}
--env ALLOW_NONE_AUTHENTICATION=yes
--env ETCD_NAME=${node1}
--env ETCD_ADVERTISE_CLIENT_URLS=http://${node1_ip}:2379
--env ETCD_INITIAL_ADVERTISE_PEER_URLS=http://${node1_ip}:2380
--env ETCD_LISTEN_CLIENT_URLS=http://0.0.0.0:2379
--env ETCD_LISTEN_PEER_URLS=http://0.0.0.0:2380
--env ETCD_INITIAL_CLUSTER_TOKEN=${cluster_token}
--env ETCD_INITIAL_CLUSTER=${node1}=http://${node1_ip}:2380,${node2}=http://${node2_ip}:2380,${node3}=http://${node3_ip}:2380
--env ETCD_INITIAL_CLUSTER_STATE=new
bitnami/etcd:latest
#创建节点2
docker run -d --name ${node2}
--network ${network_name}
--publish 22379:2379
--publish 22380:2380
--ip ${node2_ip}
--env ALLOW_NONE_AUTHENTICATION=yes
--env ETCD_NAME=${node2}
--env ETCD_ADVERTISE_CLIENT_URLS=http://${node2_ip}:2379
--env ETCD_INITIAL_ADVERTISE_PEER_URLS=http://${node2_ip}:2380
--env ETCD_LISTEN_CLIENT_URLS=http://0.0.0.0:2379
--env ETCD_LISTEN_PEER_URLS=http://0.0.0.0:2380
--env ETCD_INITIAL_CLUSTER_TOKEN=${cluster_token}
--env ETCD_INITIAL_CLUSTER=${node1}=http://${node1_ip}:2380,${node2}=http://${node2_ip}:2380,${node3}=http://${node3_ip}:2380
--env ETCD_INITIAL_CLUSTER_STATE=new
bitnami/etcd:latest
#创建节点3
docker run -d --name ${node3}
--network ${network_name}
--publish 32379:2379
--publish 32380:2380
--ip ${node3_ip}
--env ALLOW_NONE_AUTHENTICATION=yes
--env ETCD_NAME=${node3}
--env ETCD_ADVERTISE_CLIENT_URLS=http://${node3_ip}:2379
--env ETCD_INITIAL_ADVERTISE_PEER_URLS=http://${node3_ip}:2380
--env ETCD_LISTEN_CLIENT_URLS=http://0.0.0.0:2379
--env ETCD_LISTEN_PEER_URLS=http://0.0.0.0:2380
--env ETCD_INITIAL_CLUSTER_TOKEN=${cluster_token}
--env ETCD_INITIAL_CLUSTER=${node1}=http://${node1_ip}:2380,${node2}=http://${node2_ip}:2380,${node3}=http://${node3_ip}:2380
--env ETCD_INITIAL_CLUSTER_STATE=new
bitnami/etcd:latest

如何执行


sh xxx.sh
# xxx填写你的shell文件名

注意 如果你在执行的时候遇到这个错误


line 2: $' ': command not found

麻烦安装一下这个东西(不要问为什么?)


yum -y install dos2unix*
dos2unix *.*

这里说一下配置参数情况


#docker网络名
--network
#端口号可以这样写-p
--publish
--env ALLOW_NONE_AUTHENTICATION
#设置成员节点的别名
--env ETCD_NAME
#广播到集群中本成员的监听客户端请求的地址
--env ETCD_ADVERTISE_CLIENT_URLS
#广播到集群中本成员的Peer监听通信地址
--env ETCD_INITIAL_ADVERTISE_PEER_URLS
#客户端请求的监听地址列表
--env ETCD_LISTEN_CLIENT_URLS
#Peer消息的监听服务地址列表
--env ETCD_LISTEN_PEER_URLS
#启动集群的时候指定集群口令,只有相同token的才能加入到同一集群
--env ETCD_INITIAL_CLUSTER_TOKEN
#所有集群节点的地址列表
--env ETCD_INITIAL_CLUSTER

测试一下成功没有


$docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
13aad2124d35 bitnami/etcd:latest "/entrypoint.sh etcd" 11 minutes ago Up 11 minutes 0.0.0.0:32379->2379/tcp, 0.0.0.0:32380->2380/tcp etcd_node3
03e368e9658e bitnami/etcd:latest "/entrypoint.sh etcd" 11 minutes ago Up 11 minutes 0.0.0.0:22379->2379/tcp, 0.0.0.0:22380->2380/tcp etcd_node2
2781e87d368d bitnami/etcd:latest "/entrypoint.sh etcd" 11 minutes ago Up 11 minutes 0.0.0.0:12379->2379/tcp, 0.0.0.0:12380->2380/tcp etcd_node1
#测试命令
$docker exec -it 2781e87d368d etcdctl member list

知识源于学习


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_42681513/article/details/112689123

随机推荐

IDEA实现SpringBoot项目的热部署

IDEA实现SpringBoot项目的热部署

IDEA实现SpringBoot项目的热部署配置Devtools添加SpringBootDevtools依赖如何判断热加载是否成功?设置自动编译步骤一:设置非运行或调试状态下的自动编译步骤二:设置运行...

蜂蜜柚子皮 阅读(314)

细说PHP笔记03(第7章)--数组与数据结构,数组定义,数组遍历,数组内部指针遍历,键值操作函数,统计数组函数,回调函数处理数组元素,数组排序,拆分、合并、分解、结合数组,数组实现堆栈,随机选取元素

1、数组索引数组:索引值是整数关联数组:索引值是字符串2、数组的定义1、以直接赋值的方式声明$数组名[下标]=资料内容或$数组名[关联字符串(键值&#...

心湖中的石子 阅读(963)

转子接地保护原理_发电机保护学习笔记(分享)

对称过流------定子过热:正序过流,转子的转速和磁场同步旋转(50Hz),在转子中不会产生电流,所以转子不会过热。负序过流------转子过热:磁场与转子方向相反,所以转子过热。对匝间保护配置国内...

不在船上的水手 阅读(453)

书城项目的第七阶段

书城项目的第七阶段

项目第七阶段:订单订单模块的分析:2.2:订单模块的实现2.2.1、创建订单模块的数据库表USEbook;CREATETABLEt_order(`or...

vid。 阅读(193)

转子接地保护原理_发变组保护动作逻辑

 1全停:分全停1、全停2两种。其中全停2(非电量保护,主高变重瓦斯等)动作行为:跳开发变组所有开关(发电机出口断路器、高厂变低压侧A/B分支断路器、灭磁开关...

天使angel中心 阅读(911)

获取Android手机日志

见:https://www.nswin.cc/39508.html1、在手机上启用USB调试2、在终端输入adbdevices3、获取日志只连接一个设备:1)...

阳光女孩666 阅读(252)