etcd 集群搭建【docker-compose】

embedded/2024/10/9 9:10:23/

文章目录

  • 环境准备
  • 部署
    • 创建文件夹
    • 进入文件夹
    • 生成密钥
    • 启动
    • 查看集群成员
    • 查看节点状态
    • 结果
  • 检查
  • 配置解说

环境准备

IPROLEETCD_NAME
192.168.142.157masteretcd0
192.168.142.156slaveetcd1
192.168.142.155slave02etcd2
192.168.142.158slave03etcd3

部署

创建文件夹

mkdir -p /docker/etcd/data
mkdir -p /docker/etcd/ca-certificates

进入文件夹

cd /docker/etcd
编辑 docker-compose.yml 文件

services:etcd:image: bitnami/etcdcontainer_name: etcdrestart: alwaysports:- 4001:4001- 2380:2380- 2379:2379volumes:- /docker/etcd/ca-certificates/:/etc/ssl/certs- /docker/etcd/data:/bitnami/etcd/dataenvironment:- TZ=Asia/Shanghai- ETCD_NAME=etcd0- ETCD_DATA_DIR=/bitnami/etcd/data- ETCD_ROOT_PASSWORD=123456- ETCD_CLIENT_CERT_AUTH=true- ETCD_PEER_CLIENT_CERT_AUTH=true- ETCD_ADVERTISE_CLIENT_URLS=http://192.168.142.157:2379,http://192.168.142.157:4001- ETCD_LISTEN_CLIENT_URLS=http://0.0.0.0:2379,http://0.0.0.0:4001- ETCD_INITIAL_ADVERTISE_PEER_URLS=http://192.168.142.157:2380- ETCD_LISTEN_PEER_URLS=http://0.0.0.0:2380- ETCD_INITIAL_CLUSTER_TOKEN=etcd-cluster-1- ETCD_INITIAL_CLUSTER=etcd0=http://192.168.142.157:2380,etcd1=http://192.168.142.156:2380,etcd2=http://192.168.142.155:2380,etcd3=http://192.168.142.158:2380- ETCD_INITIAL_CLUSTER_STATE=new- ETCD_CERT_FILE=/etc/ssl/certs/etcd.crt- ETCD_KEY_FILE=/etc/ssl/certs/etcd.key- ETCD_TRUSTED_CA_FILE=/etc/ssl/certs/ca.crt- ETCD_PEER_CERT_FILE=/etc/ssl/certs/etcd.crt- ETCD_PEER_KEY_FILE=/etc/ssl/certs/etcd.key- ETCD_PEER_TRUSTED_CA_FILE=/etc/ssl/certs/ca.crt- ETCD_CLIENT_CERT_AUTH=true

所有主机的配置都差不多,略微差别,可以根据上述表格进行更改就行

生成密钥

具体操作请查看:etcd 快速入门

启动

docker-compose.yml

查看集群成员

docker exec -it etcd etcdctl --endpoints=http://192.168.142.157:2379 --user=root:123456 member list

查看节点状态

docker exec -it etcd etcdctl --endpoints=http://192.168.142.157:2379 --user=root:123456 endpoint health

结果

b7201f17edd745e, started, etcd2, http://192.168.142.155:2380, http://192.168.142.155:2379,http://192.168.142.155:4001, false
a3ece45ece93beee, started, etcd0, http://192.168.142.157:2380, http://192.168.142.157:2379,http://192.168.142.157:4001, true
e7c67df1418afbf6, started, etcd3, http://192.168.142.158:2380, http://192.168.142.158:2379,http://192.168.142.158:4001, false
f749462fb1703251, started, etcd1, http://192.168.142.156:2380, http://192.168.142.156:2379,http://192.168.142.156:4001, false
http://192.168.142.157:2379 is healthy: successfully committed proposal: took = 1.309654ms

看到这两个结果就说明集群部署基本成功了

检查

在主机点上插入数据

docker exec -it etcd etcdctl --endpoints=http://192.168.142.157:2379 --user=root:123456 put /mykey "myValue"

在从节点上查看

docker exec -it etcd etcdctl --endpoints=http://192.168.142.158:2379 --user=root:123456 get /mykey

返回

/mykey
myvalue

配置解说

TZ=Asia/Shanghai: 设置容器的时区为上海时区。
ETCD_NAME=etcd0: 设置 etcd 节点的名称为 etcd0。
ETCD_DATA_DIR=/bitnami/etcd/data: 指定 etcd 存储数据的目录。
ETCD_ROOT_PASSWORD=123456: 设置 etcd 节点的根用户密码。注意:这不是官方 etcd 配置的一部分,可能是 Bitnami 镜像特有的设置。
ETCD_CLIENT_CERT_AUTH=true: 启用客户端证书认证。
ETCD_PEER_CLIENT_CERT_AUTH=true: 启用对等证书认证。
ETCD_ADVERTISE_CLIENT_URLS=http://192.168.142.157:2379,http://192.168.142.157:4001: 定义 etcd 节点向客户端广告的 URL,包括 HTTP 和 HTTPS 端口。
ETCD_LISTEN_CLIENT_URLS=http://0.0.0.0:2379,http://0.0.0.0:4001: 定义 etcd 节点监听客户端请求的 URL,包括 HTTP 和 HTTPS 端口。
ETCD_INITIAL_ADVERTISE_PEER_URLS=http://192.168.142.157:2380: 定义 etcd 节点向其他 etcd 节点广告的对等 URL。
ETCD_LISTEN_PEER_URLS=http://0.0.0.0:2380: 定义 etcd 节点监听来自其他 etcd 节点的对等请求的 URL。
ETCD_INITIAL_CLUSTER_TOKEN=etcd-cluster-1: 设置初始集群的令牌,用于集群成员之间的发现。
ETCD_INITIAL_CLUSTER=etcd0=http://192.168.142.157:2380,etcd1=http://192.168.142.156:2380,etcd2=http://192.168.142.155:2380,etcd3=http://192.168.142.158:2380: 定义初始集群的配置,包括每个成员的名称和对等 URL。
ETCD_INITIAL_CLUSTER_STATE=new: 设置集群的初始状态为 new,表示这是一个新集群。
ETCD_CERT_FILE=/etc/ssl/certs/etcd.crt: 指定 etcd 节点的客户端证书文件路径。
ETCD_KEY_FILE=/etc/ssl/certs/etcd.key: 指定 etcd 节点的客户端密钥文件路径。
ETCD_TRUSTED_CA_FILE=/etc/ssl/certs/ca.crt: 指定 etcd 节点信任的 CA 证书文件路径。
ETCD_PEER_CERT_FILE=/etc/ssl/certs/etcd.crt: 指定 etcd 节点的对等证书文件路径。
ETCD_PEER_KEY_FILE=/etc/ssl/certs/etcd.key: 指定 etcd 节点的对等密钥文件路径。
ETCD_PEER_TRUSTED_CA_FILE=/etc/ssl/certs/ca.crt: 指定 etcd 节点信任的对等 CA 证书文件路径。
ETCD_CLIENT_CERT_AUTH=true: 再次设置客户端证书认证为启用状态。


http://www.ppmy.cn/embedded/124990.html

相关文章

VNC轻松连接远程Linux桌面

Linux配置VNC(以RedHat、CentOS为例) 说明: Linux平台安装VNCServer Windows平台使用VNC-Viewer 1.在Linux平台安装VNCServer服务端软件包。 yum -y install vnc *vnc-server*2.修改VNCServer主配置文件 vi /etc/sysconfig/vncservers复制…

银河麒麟v10服务器操作系统ARM版下SPECjbb2015测试

ARM服务器进行SPEC jbb 2015测试 1 安装bisheng jdk 1.1 下载bisheng11.0.24,包括jdk开发包和jre运行环境,参见:毕昇JDK 1.2 安装bishengjdk,参见:毕昇JDK 11 安装指南 详细步骤如下: 1.2.1 在 Linux/AArc…

计算物理精解【9】-计算原理精解【6】

文章目录 马尔科夫链概述定义与性质分类应用领域收敛性马尔科夫链蒙特卡洛方法 马尔科夫链原理详解一、定义二、特性三、数学描述四、类型五、应用六、示例定义性质转移概率矩阵应用举例结论 马尔科夫链在语音识别和语音合成中的应用一、马尔科夫链在语音识别中的应用1. 基本概…

Mybatis全局配置介绍

【mybatis全局配置介绍】 mybatis-config.xml,是MyBatis的全局配置文件,包含全局配置信息,如数据库连接参数、插件等。整个框架中只需要一个即可。 1、mybatis全局配置文件是mybatis框架的核心配置,整个框架只需一个&#xff1b…

Linux学习之路 -- 线程 -- 线程池

前面介绍了条件变量的生产消费模型,下面介绍一下条件变量的另一个用法,那就是线程池。线程池的用法其实就是先创建一批线程,然后让这些线程从任务队列中取数据。具体就是生产消费者模型,(我的代码中生产线程只有一个并且生产的任务…

大数据毕业设计选题推荐-电影票房数据分析系统-Python数据可视化-Hive-Hadoop-Spark

✨作者主页:IT毕设梦工厂✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、PHP、.NET、Node.js、GO、微信小程序、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇…

wordpress Contact Form 7插件提交留言时发生错误可能的原因

WordPress Contact Form 7 插件提交留言时发生错误可能有以下几种原因,并提供相应的解决方案: 1. 表单字段验证失败 原因: 用户输入的数据未通过表单字段的验证规则。 解决方案: – 检查表单字段的验证规则是否设置正确。 –…

elementPlus的tree组件点击后有白色背景

在使用elementPlus的tree组件时&#xff0c;需要对它进行样式的重写&#xff0c;下面是相关代码 <script setup> import { ref } from vue const data [{label: Level one 1,children: [{label: Level two 1-1,children: [{label: Level three 1-1-1}]}]},{label: Leve…