当前位置: 首页 > news >正文

docker-compose部署etcd集群

1. docker-compose.yml

cat > docker-compose.yml << EOF
version: "3.0"networks:etcd-net:           # 网络driver: bridge    # 桥接模式volumes:etcd1_data:         # 挂载到本地的数据卷名driver: localetcd2_data:driver: localetcd3_data:driver: local
###
### etcd 其他环境配置见:https://doczhcn.gitbook.io/etcd/index/index-1/configuration
###
services:etcd1:image: bitnami/etcd:latest  # 镜像container_name: etcd1       # 容器名 --namerestart: always             # 总是重启networks:- etcd-net                # 使用的网络 --networkports:                      # 端口映射 -p- "20000:2379"- "20001:2380"environment:                # 环境变量 --env- ALLOW_NONE_AUTHENTICATION=yes                       # 允许不用密码登录- ETCD_NAME=etcd1                                     # etcd 的名字- ETCD_INITIAL_ADVERTISE_PEER_URLS=http://etcd1:2380  # 列出这个成员的伙伴 URL 以便通告给集群的其他成员- ETCD_LISTEN_PEER_URLS=http://0.0.0.0:2380           # 用于监听伙伴通讯的URL列表- ETCD_LISTEN_CLIENT_URLS=http://0.0.0.0:2379         # 用于监听客户端通讯的URL列表- ETCD_ADVERTISE_CLIENT_URLS=http://etcd1:2379        # 列出这个成员的客户端URL,通告给集群中的其他成员- ETCD_INITIAL_CLUSTER_TOKEN=etcd-cluster             # 在启动期间用于 etcd 集群的初始化集群记号- ETCD_INITIAL_CLUSTER=etcd1=http://etcd1:2380,etcd2=http://etcd2:2380,etcd3=http://etcd3:2380 # 为启动初始化集群配置- ETCD_INITIAL_CLUSTER_STATE=new                      # 初始化集群状态volumes:- etcd1_data:/bitnami/etcd                            # 挂载的数据卷etcd2:image: bitnami/etcd:latestcontainer_name: etcd2restart: alwaysnetworks:- etcd-netports:- "20002:2379"- "20003:2380"environment:- ALLOW_NONE_AUTHENTICATION=yes- ETCD_NAME=etcd2- ETCD_INITIAL_ADVERTISE_PEER_URLS=http://etcd2:2380- ETCD_LISTEN_PEER_URLS=http://0.0.0.0:2380- ETCD_LISTEN_CLIENT_URLS=http://0.0.0.0:2379- ETCD_ADVERTISE_CLIENT_URLS=http://etcd2:2379- ETCD_INITIAL_CLUSTER_TOKEN=etcd-cluster- ETCD_INITIAL_CLUSTER=etcd1=http://etcd1:2380,etcd2=http://etcd2:2380,etcd3=http://etcd3:2380- ETCD_INITIAL_CLUSTER_STATE=newvolumes:- etcd2_data:/bitnami/etcdetcd3:image: bitnami/etcd:latestcontainer_name: etcd3restart: alwaysnetworks:- etcd-netports:- "20004:2379"- "20005:2380"environment:- ALLOW_NONE_AUTHENTICATION=yes- ETCD_NAME=etcd3- ETCD_INITIAL_ADVERTISE_PEER_URLS=http://etcd3:2380- ETCD_LISTEN_PEER_URLS=http://0.0.0.0:2380- ETCD_LISTEN_CLIENT_URLS=http://0.0.0.0:2379- ETCD_ADVERTISE_CLIENT_URLS=http://etcd3:2379- ETCD_INITIAL_CLUSTER_TOKEN=etcd-cluster- ETCD_INITIAL_CLUSTER=etcd1=http://etcd1:2380,etcd2=http://etcd2:2380,etcd3=http://etcd3:2380- ETCD_INITIAL_CLUSTER_STATE=newvolumes:- etcd3_data:/bitnami/etcd
EOFdocker-compose up -d #运行
root@k8s-master:~#  docker ps
CONTAINER ID   IMAGE                 COMMAND                  CREATED         STATUS         PORTS                                                                                      NAMES
db11e79ee1c1   bitnami/etcd:latest   "/opt/bitnami/script…"   8 minutes ago   Up 8 minutes   0.0.0.0:20004->2379/tcp, :::20004->2379/tcp, 0.0.0.0:20005->2380/tcp, :::20005->2380/tcp   etcd3
249d8c83b745   bitnami/etcd:latest   "/opt/bitnami/script…"   8 minutes ago   Up 8 minutes   0.0.0.0:20002->2379/tcp, :::20002->2379/tcp, 0.0.0.0:20003->2380/tcp, :::20003->2380/tcp   etcd2
7d0a06d1d3c9   bitnami/etcd:latest   "/opt/bitnami/script…"   8 minutes ago   Up 8 minutes   0.0.0.0:20000->2379/tcp, :::20000->2379/tcp, 0.0.0.0:20001->2380/tcp, :::20001->2380/tcp   etcd1
root@k8s-master:~# 
root@k8s-master:~#  docker volume ls  #查看挂载的数据卷
DRIVER    VOLUME NAME
local     root_etcd1_data
local     root_etcd2_data
local     root_etcd3_data
root@k8s-master:~# 
root@k8s-master:~# docker inspect etcd1 |grep Source"Source": "/var/lib/docker/volumes/root_etcd1_data/_data",
root@k8s-master:~# 

2. 测试节点

从etcd1写一个key

root@k8s-master:~# docker exec -it etcd1 bash
I have no name!@7d0a06d1d3c9:/opt/bitnami/etcd$ etcdctl put name "i am mqq"
OK
I have no name!@7d0a06d1d3c9:/opt/bitnami/etcd$ exit

从etcd2读一个value

root@k8s-master:~# docker exec -it etcd2 bash
I have no name!@249d8c83b745:/opt/bitnami/etcd$ etcdctl get name
name
i am mqq
I have no name!@249d8c83b745:/opt/bitnami/etcd$ exit

从etcd3读一个value

root@k8s-master:~# docker exec -it etcd3  bash
I have no name!@db11e79ee1c1:/opt/bitnami/etcd$ etcdctl get name
name
i am mqq
I have no name!@db11e79ee1c1:/opt/bitnami/etcd$ 

搭建成功!

http://www.lryc.cn/news/165651.html

相关文章:

  • 微信怎么定时发圈?
  • 记录造数据测试接口
  • 数据结构基础7:二叉树【链式结构】实现和递归思想。
  • [.NET 6] IHostedService 的呼叫等等我的爱——等待Web应用准备就绪
  • 基于jeecg-boot的flowable流程自定义业务退回撤回或驳回到发起人后的再次流程提交
  • python如何学习
  • Centos7更新php7.2版本升级
  • 操作系统学习笔记---计算机系统概述
  • uniapp H5 navigateBack无法返回上一层级
  • Android性能优化之应用瘦身(APK瘦身)
  • C语言数组和指针笔试题(二)(一定要看)
  • uniapp——实现在线选座功能——技能提升
  • 领域驱动设计:微服务的各种边界
  • MySQL之数据类型
  • 词法作用域改变词法作用域
  • 关于C++的隐藏 (hidden),重载(overload),重写(override)小结。
  • 算法通关村18关 | 透析回溯的模板
  • 【论文阅读】Untargeted Backdoor Attack Against Object Detection(针对目标检测的无目标后门攻击)
  • 分库分表---理论
  • [golang 流媒体在线直播系统] 2.搭建基于golang的流媒体服务器实现拉流推流,以及Html客户端拉取hls类型的流
  • 9月12日作业
  • React框架下如何集成H.265网页流媒体视频播放器EasyPlayer.js?
  • 《向量数据库》——向量数据库的使用场景有哪些?
  • Java 中 List 集合取补集
  • 我的个人网站——宏夏Coding上线啦
  • 【机器视觉】喇叭的外圆以及金属内圆的同心度视觉检测--康耐德智能
  • STM32WB55开发(2)----修改蓝牙地址
  • 【1++的C++进阶】之C++11(二)
  • 【VS2022】调试
  • python:使用RESTful API(flask)调用python程序传递参数,实现Web端调用python程序