docker部署bitnami/etcd:latest

对于etcd集群,如果在配置文件内配置了其他节点信息,而其他节点没有启动就会报错,进入容器执行命令也执行不了,因为他们需要严格同步,如果想只使用单节点,在docker中映射出配置文件,修改为单节点,把其他节点信息去掉用时再加上。

由于集群中的单节点可以启动,但无法和其他节点同步,所以执行命令如下错误,gui客户端也会报连接超时,就练习还是单节点。

{"level":"warn","ts":"2024-11-16T19:26:41.679994+0800","logger":"etcd-client","caller":"v3@v3.5.17/retry_interceptor.go:63","msg":"retrying of unary invoker failed","target":"etcd-endpoints://0xc0001461e0/127.0.0.1:2379","attempt":0,"error":"rpc error: code = DeadlineExceeded desc = context deadline exceeded"}
Error: context deadline exceeded

在网上各种各样的构建版本导致来源多样,直接从网上使用报错,以bitnami/etcd:latest为例,镜像的构建执行文件按配置文件可能与其他版本不同,官方推荐从网络构建镜像,但有人构建后挪动位置构建出来的不易使用。

先创建网络

docker network create app-tier --subnet 172.25.0.0/16
docker run -d --name Etcd-server \--network app-tier \--publish 2379:2379 \--publish 2380:2380 \--env ALLOW_NONE_AUTHENTICATION=yes \--env ETCD_ADVERTISE_CLIENT_URLS=http://etcd-server:2379 \bitnami/etcd:latest

简单配置:

version: '2'networks:app-tier:driver: bridgeservices:Etcd:image: 'bitnami/etcd:latest'environment:- ALLOW_NONE_AUTHENTICATION=yes- ETCD_ADVERTISE_CLIENT_URLS=http://etcd:2379ports:- 2379:2379- 2380:2380networks:- app-tiermyapp:image: 'YOUR_APPLICATION_IMAGE'networks:- app-tier

关于配置文件映射:后面的路径就是要确认的

docker run --name Etcd -v /path/to/Etcd.conf.yml:/opt/bitnami/Etcd/conf/etcd.conf.yml bitnami/etcd:latest

文件构建

Etcd:
  ...
  volumes:
    - /path/to/Etcd.conf.yml:/opt/bitnami/etcd/conf/etcd.conf.yml
  ...
其次是数据映射

version: '3'services:etcd:container_name: etcdimage: bitnami/etcd:latestenvironment:- ALLOW_NONE_AUTHENTICATION=yesentrypoint: [ "/opt/bitnami/etcd/bin/etcd", "--config-file", "/opt/bitnami/etcd/conf/etcd.conf.yml" ]volumes:- /Data/etcd/cluster/etcd1/data:/bitnami/etcd- /Data/etcd/cluster/etcd1/conf/etcd.conf.yml:/opt/bitnami/etcd/conf/etcd.conf.yml- "/etc/localtime:/etc/localtime:ro"ports:- 2379:2379- 2380:2380networks:default:name: etcd-tierdriver: bridge

重点就是容器启动后的配置文件和数据文件的路径问题和可执行文件的位置,如何不对,容器启动失败。

完整配置过程:

1 创建配置文件目录,设置权限,每个文件下配置如下:etcd.conf.yaml

# 其他node 分别将 `etcd1`改为 `etcd2`/ `etcd3`
name: etcd1
data-dir: /bitnami/etcd
# 其他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:2379
advertise-client-urls: http://172.25.0.101:2379
listen-peer-urls: http://172.25.0.101:2380
initial-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:2380
initial-cluster-token: etcd-cluster-token
initial-cluster-state: new

2 三个容器一起启动:如果启动1个由于这个节点配置了其他节点信息,会导致该节点不能正常工作如put和get甚至不能被外界连接

version: '3'services:etcd-1:image: bitnami/etcd:latestentrypoint: [ "/opt/bitnami/etcd/bin/etcd", "--config-file", "/opt/bitnami/etcd/conf/etcd.conf.yml" ]ports:- "23791:2379"environment:ETCDCTL_API: 3volumes:- /Data/etcd/cluster/etcd1/data:/bitnami/etcd- /Data/etcd/cluster/etcd1/conf/etcd.conf.yml:/opt/bitnami/etcd/conf/etcd.conf.yml- "/etc/localtime:/etc/localtime:ro"networks:etcd-tier:ipv4_address: 172.25.0.101etcd-2:image: bitnami/etcd:latestentrypoint: [ "/opt/bitnami/etcd/bin/etcd", "--config-file", "/opt/bitnami/etcd/conf/etcd.conf.yml" ]ports:- "23792:2379"environment:ETCDCTL_API: 3volumes:- /Data/etcd/cluster/etcd2/data:/bitnami/etcd- /Data/etcd/cluster/etcd2/conf/etcd.conf.yml:/opt/bitnami/etcd/conf/etcd.conf.yml- "/etc/localtime:/etc/localtime:ro"networks:etcd-tier:ipv4_address: 172.25.0.102etcd-3:image: bitnami/etcd:latestentrypoint: [ "/opt/bitnami/etcd/bin/etcd", "--config-file", "/opt/bitnami/etcd/conf/etcd.conf.yml" ]ports:- "23793:2379"environment:ETCDCTL_API: 3volumes:- /Data/etcd/cluster/etcd3/data:/bitnami/etcd- /Data/etcd/cluster/etcd3/conf/etcd.conf.yml:/opt/bitnami/etcd/conf/etcd.conf.yml- "/etc/localtime:/etc/localtime:ro"networks:etcd-tier:ipv4_address: 172.25.0.103networks:etcd-tier:driver: bridgeipam:config:- subnet: 172.25.0.0/16gateway: 172.25.0.1

参考地址:使用docker 运行etcd 单实例/集群 - 哪吒young - 博客园

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/472589.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

TCP(下):三次握手四次挥手 动态控制

欢迎浏览高耳机的博客 希望我们彼此都有更好的收获 感谢三连支持! TCP(上):成熟可靠的传输层协议-CSDN博客 🥝在上篇博客中,我们针对TCP的特性,报文结构,连接过程以及相对于其他协议的区别进行了探讨,提供了初步的理解和概览。本…

后端——接口文档(API)

一、概念 后端的接口文档(API文档)——全称为应用程序编程接口(Application Programming Interface)文档,是详细阐述特定软件应用程序或Web服务所开放接口的具体使用指南。这份文档为开发者提供了与这些接口进行交互的…

【Linux:epoll】

目录 epoll与select、poll的区别: epoll操作函数: int epoll_create(int size); epoll_ctl: epoll_wait: epoll与select、poll的区别: select,poll底层是一个线性表的结构,而epoll是一个红黑树结构。epoll、poll不能跨平台…

Java基础——多线程

1. 线程 是一个程序内部的一条执行流程程序中如果只有一条执行流程,那这个程序就是单线程的程序 2. 多线程 指从软硬件上实现的多条执行流程的技术(多条线程由CPU负责调度执行) 2.1. 如何创建多条线程 Java通过java.lang.Thread类的对象…

使用Redis的一些经验总结

目录 一、Redis中的key和value的设计 1.key的命名规范 2.避免出现BigKey 3.value中选择恰当的数据类型 例1:比如存储一个User对象,我们有三种存储方式: ①方式一:json字符串 ②方式二:字段打散 ③方式三&#x…

如何在 Ubuntu 上配置 Kotlin 应用环境 ?

Kotlin 是一种运行在 Java 虚拟机 (JVM) 上的现代编程语言,它同时支持函数式和面向对象编程。它可与 Java 互操作,并以其简洁的语法而闻名。在本指南中,我们将介绍在 Ubuntu 系统上准备好 Kotlin 开发环境的要点,包括 Java、Kotli…

2024强化学习的结构化剪枝模型RL-Pruner原理及实践

[2024] RL-Pruner: Structured Pruning Using Reinforcement Learning for CNN Compression and Acceleration 目录 [2024] RL-Pruner: Structured Pruning Using Reinforcement Learning for CNN Compression and Acceleration一、论文说明二、原理三、实验与分析1、环境配置在…

嵌入式硬件电子电路设计(五)MOS管详解(NMOS、PMOS、三极管跟mos管的区别)

引言:在我们的日常使用中,MOS就是个纯粹的电子开关,虽然MOS管也有放大作用,但是几乎用不到,只用它的开关作用,一般的电机驱动,开关电源,逆变器等大功率设备,全部使用MOS管…

蓝桥杯每日真题 - 第14天

题目:(2022) 题目描述(13届 C&C B组A题) 解题思路: 定义状态: 使用一个二维数组 dp[j][k] 来表示将数字 k 拆分为 j 个不同正整数的方案数。 初始化: 初始状态设定为 dp[0][0]…

利用云计算实现高效的数据备份与恢复策略

💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 利用云计算实现高效的数据备份与恢复策略 利用云计算实现高效的数据备份与恢复策略 利用云计算实现高效的数据备份与恢复策略 引…

thinkphp6配置多应用项目及多域名访问路由app配置

这里写一写TP6下配置多应用。TP6默认是单应用模式(单模块),而我们实际项目中往往是多应用的(多个模块),所以在利用TP6是就需要进行配置,开启多应用模式。 1、安装ThinkPHP6 1.1安装ThinkPHP6.…

JavaScript:浏览器对象模型BOM

BOM介绍 浏览器对象模型(Brower Object Model,BOM)提供了独立于内容而与浏览器窗口进行交互的对象,其核心对象是window BOM由一系列相关的对象构成,并且每个对象都提供了很多方法和属性。 BOM与DOM区别 DOM是文档对…

SpringBoot 2.2.10 无法执行Test单元测试

很早之前的项目今天clone现在,想执行一个业务订单的检查,该检查的代码放在test单元测试中,启动也是好好的,当点击对应的方法执行Test的时候就报错 tip:已添加spring-boot-test-starter 所以本身就引入了junit5的库 No…

前后端、网关、协议方面补充

这里写目录标题 前后端接口文档简介前后端视角对于前端对于后端代码注册路由路由处理函数 关于httpGET/POST底层网络关于前端的获取 路由器网关路由器的IP简介公网IP(WAN IP)私网IP(LAN IP)无线网络IP(WIFI IP)查询路由器私网IP路由器公网IP LAN口与WIFI简介基本原理 手动配置电…

英伟达基于Mistral 7B开发新一代Embedding模型——NV-Embed-v2

我们介绍的 NV-Embed-v2 是一种通用嵌入模型,它在大规模文本嵌入基准(MTEB 基准)(截至 2024 年 8 月 30 日)的 56 项文本嵌入任务中以 72.31 的高分排名第一。此外,它还在检索子类别中排名第一(…

【计算机网络】TCP网络特点2

断开连接 四次挥手 原因 TCP 四次挥手是为了满足 TCP 连接的全双工特性:两个方向都可以自由传输 保证数据传输的完整性:两方都完成了数据发送和接收并且都同意断开连接 可靠地终止连接以及避免数据混淆和错误等需求:每个方向都需要单独确认导致四次挥手过程 这些…

Opengl光照测试

代码 #include "Model.h" #include "shader_m.h" #include "imgui.h" #include "imgui_impl_glfw.h" #include "imgui_impl_opengl3.h" //以上是放在同目录的头文件#include <glad/glad.h> #include <GLFW/glfw3.…

【MySQL】SQL语言

【MySQL】SQL语言 文章目录 【MySQL】SQL语言前言一、SQL的通用语法二、SQL的分类三、SQLDDLDMLDQLDCL 总结 前言 本篇文章将讲到SQL语言&#xff0c;包括SQL的通用语法,SQL的分类,以及SQL语言的DDL,DML,DQL,DCL。 一、SQL的通用语法 在学习具体的SQL语句之前&#xff0c;先来…

.netcore + postgis 保存地图围栏数据

一、数据库字段 字段类型选择(Type) 设置对象类型为&#xff1a;geometry 二、前端传递的Json格式转换 前端传递围栏的各个坐标点数据如下&#xff1a; {"AreaRange": [{"lat": 30.123456,"lng": 120.123456},{"lat": 30.123456…

T265相机双目鱼眼+imu联合标定(全记录)

最近工作用到t265&#xff0c;记录一遍标定过程 1.安装驱动 首先安装realsense驱动&#xff0c;因为笔者之前使用过d435i&#xff0c;装的librealsense版本为2.55.1&#xff0c;直接使用t265会出现找不到设备的问题&#xff0c;经查阅发现是因为realsense在2.53.1后就不再支持…