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:…...
微信怎么定时发圈?
定时发圈的妙用 在合适的时间点发布新的产品、促销活动,不仅能够及时提醒用户品牌的存在,还可以引发用户的兴趣,增加品牌的曝光率。 选择最佳的发朋友圈时间段,以确保推广内容得到最大的曝光和关注,提高广告投放的效果…...
记录造数据测试接口
一、前言 在java开发中经常需要造数据进行测试接口,这里记录一下常用的通过造数据测试接口的方法。 二、一般的接口传参方式 1、接口的方式最好是使用JSON或者map的方式,这样的好处是传参可以灵活伸缩,返回的结果也最好是JSON或者map的方式…...
数据结构基础7:二叉树【链式结构】实现和递归思想。
二叉树的链式结构实现 一.二叉树链式结构的实现:1.前置说明:1.创建二叉树:2.二叉树的结构: 2.二叉树的遍历:1.二叉树的前中后序遍历:2.内容拓展: 二.二叉树链式(题目)题目一:计算节点…...
[.NET 6] IHostedService 的呼叫等等我的爱——等待Web应用准备就绪
📢欢迎点赞 :👍 收藏 ⭐留言 📝 如有错误敬请指正,赐人玫瑰,手留余香!📢本文作者:由webmote 原创📢作者格言:新的征程,我们面对的不是技术而是人心,人心不可测,海水不可量,唯有技术,才是深沉黑夜中的一座闪烁的灯塔 !序言 在这篇文章中,我将介绍如何等…...
基于jeecg-boot的flowable流程自定义业务退回撤回或驳回到发起人后的再次流程提交
更多nbcio-boot功能请看演示系统 gitee源代码地址 后端代码: https://gitee.com/nbacheng/nbcio-boot 前端代码:https://gitee.com/nbacheng/nbcio-vue.git 在线演示(包括H5) : http://122.227.135.243:9888 主要…...
python如何学习
功能如此强大、高效的Python,却非常的简单好学,这让学它的同学爱不释手,也让越来越多的互联网企业开始用Python来做主要的开发语言,比如谷歌、Facebook(现Meta)、豆瓣、知乎等知名互联网公司都在使用Python…...
Centos7更新php7.2版本升级
之前搭建的LNMP环境php使用yum安装的版本为7.2,现有项目wordpress安装wp插件需要php7.4版本的支持,需要在原来的环境更新php版本。 一、卸载php7.2 yum remove php*原先的安装方式是yum安装直接yum remove就可以卸载否则需要rpm命令查询,按…...
操作系统学习笔记---计算机系统概述
目录 概念 功能和目标 特征 并发 共享(资源共享) 虚拟 异步 发展与分类 手工操作阶段(无OS) 批处理阶段 单道批处理系统 多道批处理系统 分时操作系统 实时操作系统 网络操作系统 分布式计算机系统 个人计算机操…...
uniapp H5 navigateBack无法返回上一层级
项目场景: 提交表单后需要返回上一级 原因分析: H5在PC端打开,当前页面重新加载的情况下,出现navigateBack不能返回,由于H5端页面刷新后返回页面栈会消失 //提交 const handleSubmit async () > {form.value?.a…...
Android性能优化之应用瘦身(APK瘦身)
关于作者:CSDN内容合伙人、技术专家, 从零开始做日活千万级APP。 专注于分享各领域原创系列文章 ,擅长java后端、移动开发、人工智能等,希望大家多多支持。 目录 一、导读二、概览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——实现在线选座功能——技能提升
首先声明一点:下面的内容是从一个uniapp的程序中摘录的,并非本人所写,先做记录,以免后续遇到相似需求抓耳挠腮。 这里写目录标题 效果图代码——html部分cu-custom组件anil-seat组件 代码——jscss部分 效果图 代码——html部分 …...
领域驱动设计:微服务的各种边界
文章目录 演进式架构微服务还是小单体?微服务边界的作用 在用 DDD 进行微服务设计时,我们可以通过事件风暴来确定领域模型边界,划定微服务边界,定义业务和系统运行边界,从而保证微服务的单一职责和随需而变的架构演进能…...
MySQL之数据类型
目录 一、MySQL数据类型分类 二、数值类型 1、整数类型 2、bit类型 3、小数类型 三、字符串类型 1、char 2、varchar 3、char和varchar比较 四、日期和时间类型 五、enum和set 一、MySQL数据类型分类 MySQL 数据类型可以大致分为以下三类: 数值类型:用于…...
词法作用域改变词法作用域
一、词法作用域 1.定义: 为什么叫词法作用域?因为大部分标准语言编译器的第一个工作阶段叫作词法化,词法化的过程会对源代码中的字符进行检查,如果是有状态的解析过程,还会赋予单词语义。 简单来说࿰…...
关于C++的隐藏 (hidden),重载(overload),重写(override)小结。
关于隐藏 (hidden) 假如继承以后,子类出现父类同名函数, 即使参数的形式不同, 也会导致父类的函数隐藏, 不参与函数匹配,不能使用。 这个链接讲的不错。https://zhuanlan.zhihu.com/p/575423511 #include <iostrea…...
算法通关村18关 | 透析回溯的模板
回溯有清晰的解题模板, void backtracking(参数){if (终止条件){存放结果;return;}for (选择本层中的集合元素(画成树,就是树节点孩子的大小) {处理节点;backtracking();回溯,撤销处理结果;}} 1. 从N叉树说起 在回溯之前&#x…...
【论文阅读】Untargeted Backdoor Attack Against Object Detection(针对目标检测的无目标后门攻击)
文章目录 一.论文信息二.论文内容0.摘要1.论文概述2.背景介绍3.作者贡献4.重点图表 一.论文信息 论文题目: Untargeted Backdoor Attack Against Object Detection(针对目标检测的无目标后门攻击) 发表年份: 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服务实现高效蓝牙串口通信 在嵌入式开发中,设备与移动端的双向通信一直是个痛点。传统AT指令虽然简单,但效率低下、扩展性差,每次通信都需要复杂的握手流程。而基于nRF52832的BLE NUS(Nordic UART Service&…...
ARM Cortex-R52 GIC架构详解与中断管理实践
1. Cortex-R52 GIC架构概述ARM Cortex-R52处理器采用的通用中断控制器(GIC)架构是嵌入式实时系统的中断管理核心。作为GICv2架构的实现,它通过硬件级的中断路由和优先级管理机制,为多核实时应用提供了确定性的中断响应能力。在汽车电子和工业控制领域&am…...
Linux系统级音频处理:JDSP4Linux架构、DSP效果器与实战调音指南
1. 项目概述:从“听个响”到“听个准”的桌面音频革命如果你是一个对电脑音质有追求的Linux用户,或者是一个音频领域的开发者,那么你很可能经历过这样的困扰:系统自带的音频管理就像个“大锅饭”,所有声音都混在一起&a…...
基于OCR与NLP的智能账单分析系统:从数据处理到消费洞察
1. 项目概述:一个AI驱动的家庭账单智能分析系统最近在GitHub上看到一个挺有意思的项目,叫ai_code_family_bill。光看名字,你大概能猜到它和家庭账单、AI分析有关。作为一个长期和代码、数据打交道的技术人,我第一反应是࿱…...
从RISC-V到SSITH:构建下一代硬件安全架构的开放之路
1. 项目概述:从“亡羊补牢”到“未雨绸缪”的硬件安全范式转移在智能设备无处不在的今天,我们正面临一个尴尬的现实:许多产品的安全设计,更像是在一栋已经建好的毛坯房里,见缝插针地安装防盗门和监控摄像头。这种“事后…...
告别工具堆叠:2026 年智能运维的核心竞争力是数据一体化
在运维行业待得越久,越能感受到一个普遍的痛点:很多团队工具越买越多,效率却没跟上。你是不是也踩过类似的坑?装了 Zabbix、Prometheus、ELK,再配上一堆自研脚本和自动化工具,看起来功能齐全,实…...
基于LLM的智能体驱动文字冒险游戏引擎设计与实现
1. 项目概述:一个AI驱动的文字冒险游戏引擎最近在GitHub上闲逛,发现了一个挺有意思的项目,叫droxey/agentadventure。光看名字,大概能猜到它和“智能体”(Agent)以及“冒险”(Adventure…...
Nature级研究启动前必做这5步:Perplexity智能检索校准清单(20年顶刊审稿人压箱底工作流)
更多请点击: https://intelliparadigm.com 第一章:Nature级研究启动前的智能检索认知革命 在高影响力科研项目(如 Nature、Science 级别)立项初期,传统关键词检索已无法应对跨学科文献爆炸、语义歧义与隐性知识关联等…...
ARM HCR_EL2寄存器解析与虚拟化控制
1. ARM HCR_EL2寄存器架构解析HCR_EL2(Hypervisor Configuration Register)是ARMv8/v9架构中用于控制虚拟化行为的关键系统寄存器。作为Hypervisor的主要控制接口,它定义了EL2对低特权级(EL1/EL0)执行环境的监控策略。…...
oh-my-prompt:打造高效终端提示符的模块化方案与实战配置
1. 项目概述:为什么我们需要一个现代化的终端提示符?如果你和我一样,每天有超过一半的工作时间是在终端(Terminal)里度过的,那么终端提示符(Prompt)就是你最熟悉的“工作台面”。默认…...
