最新要闻
- 厦门市场监管部门发出“五一”旅游行业价格行为提醒告诫_天天速看
- 日本强推“排污入海”!学界:全球海洋生态将面临核污染水风险 全球信息
- 天天微速讯:自动泊车挑战立体车库 奔驰唯一成功 碾压华为、特斯拉
- 世界新资讯:特斯拉动能回收要彻底取消?博主辟谣:不实、只有两级可调
- 未上线就创纪录!《原神》开发商新作《崩坏:星穹铁道》iOS 113国登顶-热点
- 歼-20试飞员评价《长空之王》:很真实的影片
- 常欣科技2022年亏损30.64万同比由盈转亏 产品销售下降
- 要闻:彻底服了!这JB,NBA第一硬!黑8,必须黑8!
- 2023年宁德社保费用参考 宁德社保个人缴费标准是多少|速讯
- 江西日报经济版头条 | 分宜工业经济高质量发展步履坚实
- 宋都基业投资股份有限公司发布公司股票可能被实施退市风险警示的第二次风险提示公告
- 东北地区及新疆等地有雨雪天气 江南华南有明显降雨过程
- 2023一卡逛崇川在哪里购买
- 今日报丨青岛口岸启运港退税政策宣传推介会举行
- 汽车也能戴“手表” 五菱宝骏悦也预告:行业首次搭载Car-watch
- 2499元 雷神MIX迷你主机上架:13代i5 比一罐可乐还小 世界快消息
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
使用docker 运行etcd 单实例/集群|环球播资讯
- 一. 介绍
- 二. etcd 单实例
- 1. 准备
- a. 创建本机数据存储目录
- b. 关闭本机 etcd 服务
- c.编写 etcd config
- 2.下载 etcd image
- 3. 使用 docker-compose 启动 etcd
- a. 编写 docker-compose
- b. 参数介绍
- c. 运行容器
- d. 管理容器
- e. 如何使用我们刚启动的 etcd
- 4. 使用 docker run 启动 etcd
- a. 运行容器
- b. 参数介绍
- c. 管理 etcd
- d. 使用 etcd
- 1. 准备
- 三. etcd 集群
- 1. 准备
- a. 创建数据目录与配置目录
- b. 编写配置etcd config
- 2. docker-compose
- a. docker-compose 配置文件
- b. 参数介绍
- c. 运行并使用etcd cluster
- 1. 准备
- 四. 其他
- 1. mac 下主机不能直接访问容器 ip
- a. 解决方法1, 使用端口映射
- b. 使用 vpn
- 1. mac 下主机不能直接访问容器 ip
- 参考
一. 介绍
本文描述了如何使用docker搭建etcd集群,github/etcd上有单实例etcd服务的搭建方法,包括linux,mac,docker。
(资料图片仅供参考)
在操作之前你需要安装dockerdocker-compose 是可选的,如果你不想使用 docker-compose 就跳过他
二. etcd 单实例
1. 准备
a. 创建本机数据存储目录
创建本机目录,用于挂载到容器来保存etcd data你可以更换目录位置
rm -rf /tmp/etcd/single/data mkdir -p /tmp/etcd/single/datamkdir -p /tmp/etcd/single/conf
b. 关闭本机 etcd 服务
没有就跳过
ubuntusystemctl stop etcd
macbrew services stop etcd
c.编写 etcd config
打开etcd.ymlvim /tmp/etcd/single/conf/etcd.yml
name: s1data-dir: /etcd-datalisten-client-urls: http://0.0.0.0:2379advertise-client-urls: http://0.0.0.0:2379listen-peer-urls: http://0.0.0.0:2380initial-advertise-peer-urls: http://0.0.0.0:2380initial-cluster: s1=http://0.0.0.0:2380initial-cluster-token: etcd-cluster-tokeninitial-cluster-state: newlog-level: infologger: zaplog-outputs: stderr
config 介绍
name
节点的名字,在集群中必须唯一data-dir
存储数据的路径,注意这是容器内部路径listen-client-urls
:这个参数用于指定 etcd 服务监听客户端请求的地址和端口。客户端(如 etcdctl 命令行工具、其他使用 etcd 客户端库的应用程序)将通过这些地址与 etcd 服务进行通信,以执行各种操作,如读取、写入和修改键值对.http://127.0.0.1:2379
就只能内网访问,http://0.0.0.0:2379
则表示 etcd 服务将在所有可用的 IPv4 网络接口上监听客户端请求advertise-client-urls
:这个参数用于告知客户端和其他 etcd 成员如何访问 etcd 服务器。这些 URL 通常是可以从集群外部访问的地址。客户端和其他 etcd 服务器将使用这些地址与 etcd 服务进行通信。listen-peer-urls
:这个参数用于指定 etcd 服务监听其他 etcd 集群成员节点间通信请求的地址和端口。这个参数对于 etcd 集群的节点之间的数据同步、心跳检测和集群管理等操作至关重要。initial-advertise-peer-urls
:这个参数用于指定 etcd 服务在初始化时向其他 etcd 集群成员宣告其可用于集群间通信的地址和端口。其他 etcd 成员节点将使用这些地址与当前 etcd 服务进行通信,进行数据同步、心跳检测和集群管理等操作。initial-cluster
:这个参数用于在 etcd 集群初始化时定义集群内所有成员的列表。它是一个逗号分隔的键值对列表,键是成员的名称,值是对应的 initial-advertise-peer-urls。当一个新的 etcd 节点加入集群时,它需要知道集群内其他成员的信息,这个参数就是提供这些信息的途径。
2.下载 etcd image
docker pull gcr.io/etcd-development/etcd:v3.4.25
3. 使用 docker-compose 启动 etcd
a. 编写 docker-compose
vim ~/docker-compose.yml
version: "3.8"services: etcd-single: image: gcr.io/etcd-development/etcd:v3.4.25 restart: on-failure entrypoint: ["/usr/local/bin/etcd", "--config-file", "/tmp/etcd/conf/etcd.yml"] ports: - "2379:2379" - "2380:2380" environment: ETCDCTL_API: 3 volumes: - type: bind source: /tmp/etcd/single/ target: /tmp/etcd
b. 参数介绍
etcd-single
: 容器名称image
: 容器使用的docker镜像restart
: 设置自动重启策略,这里是当容器退出时,只有当退出码非 0 时才重启容器。entrypoint
: 入口点(初学者很容易和 command 搞混)ports
: 将容器内端口映射到主机端口,以便从主机或外部网络访问容器中的服务environment
: 设置容器的环境变量volumes
: 在启动容器时挂载volume或绑定主机目录,这里使用bind绑定刚才创建的主机目录
c. 运行容器
# --detach 在后台运行容器# up 启动或重启配置的所有容器docker-compose up --detach
d. 管理容器
docker-compose的配置文件中可以定义多个容器,从而来一条命令启动/停止多个容器,通过命令最后添加容器名(刚才定义的etcd-single)可以只操作一个容器
# 查看容器状态docker-compose ps -a# 查看容器日志docker-compose logs --detach# 停止容器docker-compose stop# 启动停止的容器docker-compose start# 停止并删除容器docker-compose down
e. 如何使用我们刚启动的 etcd
- 通过容器内部的 etcdctl 读写 etcd
# exec 命令需要指定容器名,也就是etcd-single# 容器名后面参数是在容器内部执行的命令docker-compose exec etcd-single etcdctl get foo
- 通过本机etcdctl
# 因为我们将容器端口映射到主机端口上,并且是 etcd 默认端口# 所以我们可以像使用本地服务一样使用 etcd 容器# 当然前提是你本机已经安装了 etcdctl# 设置请求版本export ETCDCTL_API=3etcdctl put foo baretcdctl get foo
- 远程访问本机添加参数
--endpoints=[127.0.0.1:2379]
,如果你没有外网 ip 就只能在局域网使用局域网 ip 访问,否则可以在任意位置通过 ip:port 访问
4. 使用 docker run 启动 etcd
a. 运行容器
这条命令与编写docker-compose.yml 没有区别
docker run \ -d \ -p 2379:2379 \ -p 2380:2380 \ -e ETCDCTL_API=3 \ --mount type=bind,source=/tmp/etcd/single,destination=/tmp/etcd \ --name etcd-single \ gcr.io/etcd-development/etcd:v3.4.25 \ /usr/local/bin/etcd \ --config-file /tmp/etcd/conf/etcd.yml
b. 参数介绍
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
-d
后台运行容器-p
或--publish
localhost-port:cantainer-port
将容器内端口映射到主机端口,以便从主机或外部网络访问容器中的服务,--mount
在启动容器时挂载volume或绑定主机目录,这里使用bind绑定刚才创建的主机目录,--name
指定运行的容器的名称,方便管理,如果没有指定将会生成一个随机的容器名gcr.io/etcd-development/etcd:v3.4.25
要运行的容器的镜像名称- 后续参数是容器内部执行的命令,在这里是使用配置文件启动 etcd
c. 管理 etcd
# docker ps -a# 查看日志docker logs etcd-single# 停止容器docker stop etcd-single# 启动停止的容器docker start etcd-single# 删除容器docker rm etcd-single
d. 使用 etcd
使用容器内部的 etcdctl
docker exec etcd-single etcdctl put foo bardocker exec etcd-single etcdctl get foo
其他方法和 docker-compose上的相同
三. etcd 集群
因为 etcd 使用 raft 一致性协议, 所以最少需要 3 个节点我们将使用 docker 创建 3 个 etcd 节点在本机搭建 etcd 集群
1. 准备
a. 创建数据目录与配置目录
与单节点相似
rm -rf /tmp/etcd/cluster# node1mkdir -p /tmp/etcd/cluster/edcd1/data mkdir -p /tmp/etcd/cluster/edcd1/conf # node2mkdir -p /tmp/etcd/cluster/edcd2/data mkdir -p /tmp/etcd/cluster/edcd2/conf # node3mkdir -p /tmp/etcd/cluster/edcd3/data mkdir -p /tmp/etcd/cluster/edcd3/conf
b. 编写配置etcd config
每一个节点的 config 都类似,在这里我们之给出node1 的 config
vim /tmp/etcd/cluster/edcd1/conf/etcd.yml
# 其他node 分别将 `etcd1`改为 `etcd2`/ `etcd3`name: etcd1data-dir: /etcd/data# 其他node 分别下面的将`172.25.0.101`改为`172.25.0.102`/ `172.25.0.103`listen-client-urls: http://172.25.0.101:2379, http://127.0.0.1:2379advertise-client-urls: http://172.25.0.101:2379listen-peer-urls: http://172.25.0.101:2380initial-advertise-peer-urls: http://172.25.0.101:2380# 这里之后不需要改initial-cluster: etcd1=http://172.25.0.101:2380,etcd2=http://172.25.0.102:2380,etcd3=http://172.25.0.103:2380initial-cluster-token: etcd-cluster-tokeninitial-cluster-state: new
2. docker-compose
a. docker-compose 配置文件
version: "3.8"services: etcd-1: image: gcr.io/etcd-development/etcd:v3.4.25 entrypoint: [ "/usr/local/bin/etcd", "--config-file", "/tmp/etcd/conf/etcd.yml" ] ports: - "23791:2379" environment: ETCDCTL_API: 3 volumes: - type: bind source: /tmp/etcd/cluster/etcd1 target: /tmp/etcd networks: etcd-net: ipv4_address: 172.25.0.101 etcd-2: image: gcr.io/etcd-development/etcd:v3.4.25 entrypoint: [ "/usr/local/bin/etcd", "--config-file", "/tmp/etcd/conf/etcd.yml" ] ports: - "23792:2379" environment: ETCDCTL_API: 3 volumes: - type: bind source: /tmp/etcd/cluster/etcd2 target: /tmp/etcd networks: etcd-net: ipv4_address: 172.25.0.102 etcd-3: image: gcr.io/etcd-development/etcd:v3.4.25 entrypoint: [ "/usr/local/bin/etcd", "--config-file", "/tmp/etcd/conf/etcd.yml" ] ports: - "23793:2379" environment: ETCDCTL_API: 3 volumes: - type: bind source: /tmp/etcd/cluster/etcd3 target: /tmp/etcd networks: etcd-net: ipv4_address: 172.25.0.103networks: etcd-net: driver: bridge ipam: config: - subnet: 172.25.0.0/16 gateway: 172.25.0.1
b. 参数介绍
可以看到整体上每个容器和之前还是很相似的,只是做出了一点点修改
- 最外层
networks
等同于docker network create etcdnet --subnet 172.25.0.0/16
- 容器内部
networks
然后我们在容器内使用该 network 并给每个容器分配一个 ipv4 地址 ports
: 如果是使用其他Linux系统的用户则不必配置这个端口映射,Linxu系统会自动帮我们处理好ip之间的互通(宿主机和各个容器之间)。而Mac想要直接访问容器的ip,则需要曲线救国,通过搭建一个vpn服务,然后通过vpn再去和容器的网段互联。
c. 运行并使用etcd cluster
大致操作和单节点etcd 相同只是在本机访问etcd容器时需要指定--endpoints=
ubuntu
etcdctl --endpoints="172.25.0.101:2379" put foo baretcdctl --endpoints="172.25.0.101:2379" get foo
mac(可以看其他,配置成功后就可以使用上面的命令直接访问 etcd cluster)
etcdctl --endpoints="127.0.0.1:23791" put foo baretcdctl --endpoints="127.0.0.1:23791" get foo
四. 其他
1. mac 下主机不能直接访问容器 ip
在 Mac 主机上,Docker 通过使用名为 "Docker Desktop" 的虚拟化技术实现。由于这种虚拟化方法的限制,主机到容器子网的网络访问与 Linux 主机上的 Docker 有所不同。
a. 解决方法1, 使用端口映射
在 docker-compose.yml 中使用ports
将容器内部端口映射到主机端口上,注意,一个端口只能映射一个容器,所以我们使用23791,23792,23793也就是我们目前使用的方法
b. 使用 vpn
mac 下主机和容器网络互通解决方案
参考
使用docker创建etcd集群chat-gpt4
关键词:
-
使用docker 运行etcd 单实例/集群|环球播资讯
一 介绍本文描述了如何使用docker搭建etcd集群,github etcd上有单实例etcd服务的搭建方法,包括linux,mac
来源: 强强联合,ByteHouse 携手亚马逊云科技,新一代云数仓服务重磅升级 世界新消息
全球通讯!深入理解C#泛型:new与where关键字全解析
使用docker 运行etcd 单实例/集群|环球播资讯
厦门市场监管部门发出“五一”旅游行业价格行为提醒告诫_天天速看
日本强推“排污入海”!学界:全球海洋生态将面临核污染水风险 全球信息
天天微速讯:自动泊车挑战立体车库 奔驰唯一成功 碾压华为、特斯拉
世界新资讯:特斯拉动能回收要彻底取消?博主辟谣:不实、只有两级可调
未上线就创纪录!《原神》开发商新作《崩坏:星穹铁道》iOS 113国登顶-热点
歼-20试飞员评价《长空之王》:很真实的影片
常欣科技2022年亏损30.64万同比由盈转亏 产品销售下降
要闻:彻底服了!这JB,NBA第一硬!黑8,必须黑8!
2023年宁德社保费用参考 宁德社保个人缴费标准是多少|速讯
iFlutter - 加速Flutter开发 环球消息
江西日报经济版头条 | 分宜工业经济高质量发展步履坚实
昭通昭阳富滇村镇银行获批解散 被富滇银行吸收合并 世界要闻
【环球财经】美国第一共和银行一季度业绩显著恶化
宋都基业投资股份有限公司发布公司股票可能被实施退市风险警示的第二次风险提示公告
东北地区及新疆等地有雨雪天气 江南华南有明显降雨过程
2023一卡逛崇川在哪里购买
今日报丨青岛口岸启运港退税政策宣传推介会举行
汽车也能戴“手表” 五菱宝骏悦也预告:行业首次搭载Car-watch
2499元 雷神MIX迷你主机上架:13代i5 比一罐可乐还小 世界快消息
商家浑水摸鱼 买到无码SteamDeck你肯定被骗了 全球观速讯
全球球精选!苹果影像破天荒升级!iPhone 15 Pro Max终于跟上安卓步伐了
今日热讯:恒大汽车暂缓生产恒驰5 全国交付量“感人”
广生泉:家政服务进社区
全球观天下!晋宁区开展“你点我检”食品安全专项抽检工作
安庆市养老金能提前支取吗 2023年安庆养老金如何计算 要闻速递
dnfyy是什么意思?dnfyy有哪些辅助频道?
首次发布!成都这个地方上火星了!
电压低是什么原因造成的?电压低对笔记本有影响吗?
戴尔inspiron 1440右侧卡槽干什么用?戴尔inspiron 1440配置
华为手机怎么获得root权限?华为手机怎么设置24小时时间显示?
[XXL-JOB] 分布式调度XXL-JOB快速上手 世界最新
今日观点!登录接口实现细节分析与登录接口代码实现
使用AI优化慢SQL,开发秒变DBA|焦点资讯
视讯!MIME Base64编码
圆通速递和圆通快递一样吗?圆通速递价格表查询
不止新机血赚!去年苹果iPhone在翻新手机市场占比达49%,同比增长16%
璞泰来江苏新设膜材料科技子公司 注册资本4亿元|今头条
台安县气象局发布大风黄色预警【Ⅲ级/较重】【2023-04-25】
企业有诉求,深圳坂田服务小组立即出动……
OPPO Reno 10 Pro+通过认证:骁龙8+、100W超级闪充
每日播报!强风吹倒墙壁女子新车被砸烂 4S店:无偿修复 赔7千
网友想要比小米13更小的小屏手机!雷军回应
世界资讯:电车出行半径不设限 AITO问界M5纯电版五一说走就走
博主曝易车网策划宝马MINI冰淇淋热点传播 易车回应 当前信息
快看:现代侧钻井技术_关于现代侧钻井技术介绍
【环球热闻】中国代表队在2022
锻造年轻干部成长链 环球简讯
青年宫合唱团成立10余年 已成为百余名老年人的心灵港湾 天天精选
天天播报:2023上海车展:捷尼赛思G90 财阀大佬座驾灵不灵?
接口测试快速入门1简介 焦点关注
Netstat 备忘清单_开发速查表分享|焦点播报
焦点速递!我要手把手教你搭建一套抗瞬时百万流量的秒杀系统
全球时讯:如何在Android studio导入jdk9及以上版本中依赖包,如'rt.jar',' dt.jar'等
第133届广交会第三期行业论坛闭幕
长城汽车一季度净利同比下跌近9成,皮卡成唯一增长板块 天天热资讯
烤箱吐司面包的做法窍门_烤箱吐司面包的做法
手机厂商们宣传的“等效光圈”是什么鬼?如何计算
酒店在五一推出“99元睡大厅”:0.8米的沙发床!已火速下架
全球聚焦:1399元起 荣耀X50i开售:一亿像素、轻羽纹理后盖
全球快看点丨《王者荣耀》五五朋友节皮肤来了:刘关张桃源结义、妲己九尾狐
世界快资讯:CPU为什么很少会坏?答案揭晓
信用卡欠钱影响政审吗?信用卡逾期影响考公务员吗?|热闻
二级医疗事故赔偿标准是怎样的
中宏保险官网登录-中宏保险骗了多少人 环球观点
QDII基金一季度吸金效应显著-世界讯息
【Jmeter】按比例分配Api压测-焦点日报
世界微速讯:瑞银聘请巴克莱三位银行家以扩大美国投行业务
一图读懂|不爱开窗户,大脑易萎缩!快改掉这5个伤脑习惯
环球头条:咖喱牛肉的做法最正宗的做法图片(咖喱牛肉的做法最正宗的做法)
苹果拿到了顶级OLED屏幕!iPhone 15系列要用
5月前还有两股冷空气影响我国:这些地方将“报复式”升温|环球即时
早间公告:永清环保控股股东及其一致行动人拟减持不超6%股份
焦点资讯:Natasha 高级编译类 (五)- 第二部分
【聚看点】马栏山新媒体中心即将华丽亮相
可转债“暗度陈仓”惹争议 股债短线交易规则亟待明晰_环球资讯
【国际大宗商品早报】CBOT农产品全线下跌 需求前景改善支撑油价上涨
欧派家居2022年实现营收约224.8亿,同比增长9.97%
iPhone 14关键时刻能救命!三名学生顺利脱险-当前独家
苹果用户想装三方应用商店泡汤了!美国裁定:App Store不构成垄断
吉利博越换什么轮胎好?安全又节能怎么选-每日聚焦
环球热讯:学系统集成项目管理工程师(中项)系列11b_沟通管理(下)
天天快资讯:存活在奥特曼的世界
特斯拉连续踩刹车4次没用 20年女司机地库惨撞车:到底什么情况?
焦点速看:上海正试点高品质直饮水:欲改变国人爱喝开水习惯?
勇者义彦与魔王城在线观看未删减_勇者义彦与魔王城在线观看
重载 世界热文
每日速递:今日月亮走我也走歌词原唱_张也_月亮走我也走歌词
史上最热闹!今年五一档17部电影上映:预售票房已破亿_环球看点
罕见!新疆出现绚丽极光:特大地磁暴引起-环球报资讯
世界热头条丨苹果挤爆牙膏 iPhone 15 Pro Max将搭载潜望式长焦相机
丧心病狂的翡翠原石直播诈骗:公然骗你好几万 根本没人管|今亮点
CDPR引擎出BUG!实测锐龙7000用不了DLSS3 天天新动态
北京:西四包子铺遭46家店铺“傍名牌”
冷知识:原来我国实行周末双休制还不足 30 年 1995 年才开始_天天讯息
工技大有什么专业(工技大)
第八批集采药品开始挂网 7月有望用上中选产品-每日精选
先让有想法 再给想办法 ——积石山县牛羊产业发展见闻