当前位置: 首页 > 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$ 

搭建成功!

相关文章:

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:…...

微信怎么定时发圈?

定时发圈的妙用 在合适的时间点发布新的产品、促销活动&#xff0c;不仅能够及时提醒用户品牌的存在&#xff0c;还可以引发用户的兴趣&#xff0c;增加品牌的曝光率。 选择最佳的发朋友圈时间段&#xff0c;以确保推广内容得到最大的曝光和关注&#xff0c;提高广告投放的效果…...

记录造数据测试接口

一、前言 在java开发中经常需要造数据进行测试接口&#xff0c;这里记录一下常用的通过造数据测试接口的方法。 二、一般的接口传参方式 1、接口的方式最好是使用JSON或者map的方式&#xff0c;这样的好处是传参可以灵活伸缩&#xff0c;返回的结果也最好是JSON或者map的方式…...

数据结构基础7:二叉树【链式结构】实现和递归思想。

二叉树的链式结构实现 一.二叉树链式结构的实现&#xff1a;1.前置说明&#xff1a;1.创建二叉树&#xff1a;2.二叉树的结构&#xff1a; 2.二叉树的遍历&#xff1a;1.二叉树的前中后序遍历&#xff1a;2.内容拓展&#xff1a; 二.二叉树链式(题目)题目一&#xff1a;计算节点…...

[.NET 6] IHostedService 的呼叫等等我的爱——等待Web应用准备就绪

📢欢迎点赞 :👍 收藏 ⭐留言 📝 如有错误敬请指正,赐人玫瑰,手留余香!📢本文作者:由webmote 原创📢作者格言:新的征程,我们面对的不是技术而是人心,人心不可测,海水不可量,唯有技术,才是深沉黑夜中的一座闪烁的灯塔 !序言 在这篇文章中,我将介绍如何等…...

基于jeecg-boot的flowable流程自定义业务退回撤回或驳回到发起人后的再次流程提交

更多nbcio-boot功能请看演示系统 gitee源代码地址 后端代码&#xff1a; https://gitee.com/nbacheng/nbcio-boot 前端代码&#xff1a;https://gitee.com/nbacheng/nbcio-vue.git 在线演示&#xff08;包括H5&#xff09; &#xff1a; http://122.227.135.243:9888 主要…...

python如何学习

功能如此强大、高效的Python&#xff0c;却非常的简单好学&#xff0c;这让学它的同学爱不释手&#xff0c;也让越来越多的互联网企业开始用Python来做主要的开发语言&#xff0c;比如谷歌、Facebook&#xff08;现Meta&#xff09;、豆瓣、知乎等知名互联网公司都在使用Python…...

Centos7更新php7.2版本升级

之前搭建的LNMP环境php使用yum安装的版本为7.2&#xff0c;现有项目wordpress安装wp插件需要php7.4版本的支持&#xff0c;需要在原来的环境更新php版本。 一、卸载php7.2 yum remove php*原先的安装方式是yum安装直接yum remove就可以卸载否则需要rpm命令查询&#xff0c;按…...

操作系统学习笔记---计算机系统概述

目录 概念 功能和目标 特征 并发 共享&#xff08;资源共享&#xff09; 虚拟 异步 发展与分类 手工操作阶段&#xff08;无OS&#xff09; 批处理阶段 单道批处理系统 多道批处理系统 分时操作系统 实时操作系统 网络操作系统 分布式计算机系统 个人计算机操…...

uniapp H5 navigateBack无法返回上一层级

项目场景&#xff1a; 提交表单后需要返回上一级 原因分析&#xff1a; H5在PC端打开&#xff0c;当前页面重新加载的情况下&#xff0c;出现navigateBack不能返回&#xff0c;由于H5端页面刷新后返回页面栈会消失 //提交 const handleSubmit async () > {form.value?.a…...

Android性能优化之应用瘦身(APK瘦身)

关于作者&#xff1a;CSDN内容合伙人、技术专家&#xff0c; 从零开始做日活千万级APP。 专注于分享各领域原创系列文章 &#xff0c;擅长java后端、移动开发、人工智能等&#xff0c;希望大家多多支持。 目录 一、导读二、概览2.1 apk组成 三、优化方向3.1 源代码3.1.1 代码混…...

C语言数组和指针笔试题(二)(一定要看)

目录 字符数组二例题1例题2例题3例题4例题5例题6例题7总结 字符数组三例题1例题2例题3例题4例题5例题6例题7 字符数组二 char arr[] {a,b,c,d,e,f} 1:printf("%d\n", strlen(arr)); 2:printf("%d\n", strlen(arr0)); 3:printf("%d\n", strlen(…...

uniapp——实现在线选座功能——技能提升

首先声明一点&#xff1a;下面的内容是从一个uniapp的程序中摘录的&#xff0c;并非本人所写&#xff0c;先做记录&#xff0c;以免后续遇到相似需求抓耳挠腮。 这里写目录标题 效果图代码——html部分cu-custom组件anil-seat组件 代码——jscss部分 效果图 代码——html部分 …...

领域驱动设计:微服务的各种边界

文章目录 演进式架构微服务还是小单体&#xff1f;微服务边界的作用 在用 DDD 进行微服务设计时&#xff0c;我们可以通过事件风暴来确定领域模型边界&#xff0c;划定微服务边界&#xff0c;定义业务和系统运行边界&#xff0c;从而保证微服务的单一职责和随需而变的架构演进能…...

MySQL之数据类型

目录 一、MySQL数据类型分类 二、数值类型 1、整数类型 2、bit类型 3、小数类型 三、字符串类型 1、char 2、varchar 3、char和varchar比较 四、日期和时间类型 五、enum和set 一、MySQL数据类型分类 MySQL 数据类型可以大致分为以下三类&#xff1a; 数值类型&#xff1a;用于…...

词法作用域改变词法作用域

一、词法作用域 1.定义&#xff1a; 为什么叫词法作用域&#xff1f;因为大部分标准语言编译器的第一个工作阶段叫作词法化&#xff0c;词法化的过程会对源代码中的字符进行检查&#xff0c;如果是有状态的解析过程&#xff0c;还会赋予单词语义。 简单来说&#xff0…...

关于C++的隐藏 (hidden),重载(overload),重写(override)小结。

关于隐藏 (hidden) 假如继承以后&#xff0c;子类出现父类同名函数&#xff0c; 即使参数的形式不同&#xff0c; 也会导致父类的函数隐藏&#xff0c; 不参与函数匹配&#xff0c;不能使用。 这个链接讲的不错。https://zhuanlan.zhihu.com/p/575423511 #include <iostrea…...

算法通关村18关 | 透析回溯的模板

回溯有清晰的解题模板&#xff0c; void backtracking(参数){if (终止条件){存放结果;return;}for (选择本层中的集合元素&#xff08;画成树&#xff0c;就是树节点孩子的大小) {处理节点;backtracking();回溯&#xff0c;撤销处理结果;}} 1. 从N叉树说起 在回溯之前&#x…...

【论文阅读】Untargeted Backdoor Attack Against Object Detection(针对目标检测的无目标后门攻击)

文章目录 一.论文信息二.论文内容0.摘要1.论文概述2.背景介绍3.作者贡献4.重点图表 一.论文信息 论文题目&#xff1a; Untargeted Backdoor Attack Against Object Detection&#xff08;针对目标检测的无目标后门攻击&#xff09; 发表年份&#xff1a; 2023-ICASSP&#x…...

分库分表---理论

目录 一、垂直切分 1、垂直分库 2、垂直分表 3、垂直切分优缺点 二、水平切分 1、水平分库 2、水平分表 3、水平切分优缺点 三、数据分片规则 1、Hash取模分表 2、数值Range分表 3、一致性Hash算法 四、分库分表带来的问题 1、分布式事务问题 2、跨节点关联查询…...

告别AT指令!用nRF52832的BLE NUS服务,5分钟搞定手机与开发板的双向通信

用nRF52832的BLE NUS服务实现高效蓝牙串口通信 在嵌入式开发中&#xff0c;设备与移动端的双向通信一直是个痛点。传统AT指令虽然简单&#xff0c;但效率低下、扩展性差&#xff0c;每次通信都需要复杂的握手流程。而基于nRF52832的BLE NUS&#xff08;Nordic UART Service&…...

ARM Cortex-R52 GIC架构详解与中断管理实践

1. Cortex-R52 GIC架构概述ARM Cortex-R52处理器采用的通用中断控制器(GIC)架构是嵌入式实时系统的中断管理核心。作为GICv2架构的实现&#xff0c;它通过硬件级的中断路由和优先级管理机制&#xff0c;为多核实时应用提供了确定性的中断响应能力。在汽车电子和工业控制领域&am…...

Linux系统级音频处理:JDSP4Linux架构、DSP效果器与实战调音指南

1. 项目概述&#xff1a;从“听个响”到“听个准”的桌面音频革命如果你是一个对电脑音质有追求的Linux用户&#xff0c;或者是一个音频领域的开发者&#xff0c;那么你很可能经历过这样的困扰&#xff1a;系统自带的音频管理就像个“大锅饭”&#xff0c;所有声音都混在一起&a…...

基于OCR与NLP的智能账单分析系统:从数据处理到消费洞察

1. 项目概述&#xff1a;一个AI驱动的家庭账单智能分析系统最近在GitHub上看到一个挺有意思的项目&#xff0c;叫ai_code_family_bill。光看名字&#xff0c;你大概能猜到它和家庭账单、AI分析有关。作为一个长期和代码、数据打交道的技术人&#xff0c;我第一反应是&#xff1…...

从RISC-V到SSITH:构建下一代硬件安全架构的开放之路

1. 项目概述&#xff1a;从“亡羊补牢”到“未雨绸缪”的硬件安全范式转移在智能设备无处不在的今天&#xff0c;我们正面临一个尴尬的现实&#xff1a;许多产品的安全设计&#xff0c;更像是在一栋已经建好的毛坯房里&#xff0c;见缝插针地安装防盗门和监控摄像头。这种“事后…...

告别工具堆叠:2026 年智能运维的核心竞争力是数据一体化

在运维行业待得越久&#xff0c;越能感受到一个普遍的痛点&#xff1a;很多团队工具越买越多&#xff0c;效率却没跟上。你是不是也踩过类似的坑&#xff1f;装了 Zabbix、Prometheus、ELK&#xff0c;再配上一堆自研脚本和自动化工具&#xff0c;看起来功能齐全&#xff0c;实…...

基于LLM的智能体驱动文字冒险游戏引擎设计与实现

1. 项目概述&#xff1a;一个AI驱动的文字冒险游戏引擎最近在GitHub上闲逛&#xff0c;发现了一个挺有意思的项目&#xff0c;叫droxey/agentadventure。光看名字&#xff0c;大概能猜到它和“智能体”&#xff08;Agent&#xff09;以及“冒险”&#xff08;Adventure&#xf…...

Nature级研究启动前必做这5步:Perplexity智能检索校准清单(20年顶刊审稿人压箱底工作流)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Nature级研究启动前的智能检索认知革命 在高影响力科研项目&#xff08;如 Nature、Science 级别&#xff09;立项初期&#xff0c;传统关键词检索已无法应对跨学科文献爆炸、语义歧义与隐性知识关联等…...

ARM HCR_EL2寄存器解析与虚拟化控制

1. ARM HCR_EL2寄存器架构解析HCR_EL2&#xff08;Hypervisor Configuration Register&#xff09;是ARMv8/v9架构中用于控制虚拟化行为的关键系统寄存器。作为Hypervisor的主要控制接口&#xff0c;它定义了EL2对低特权级&#xff08;EL1/EL0&#xff09;执行环境的监控策略。…...

oh-my-prompt:打造高效终端提示符的模块化方案与实战配置

1. 项目概述&#xff1a;为什么我们需要一个现代化的终端提示符&#xff1f;如果你和我一样&#xff0c;每天有超过一半的工作时间是在终端&#xff08;Terminal&#xff09;里度过的&#xff0c;那么终端提示符&#xff08;Prompt&#xff09;就是你最熟悉的“工作台面”。默认…...