【etcd】集群部署

一、环境准备

  1. 操作系统:建议使用Ubuntu 18.04 LTS或其他支持Docker的Linux发行版。
  2. 硬件要求:至少三台机器,每台机器两核CPU、2GB内存。
  3. 网络要求:集群内机器之间网络互通,建议使用内网。
  4. 安装Docker:请参考Docker官方文档进行安装。

二、安装etcd

参见 【etcd 编译与安装】。

  1. 创建集群配置文件:
    在etcd目录下创建etcd.yaml,配置如下:
yaml 复制代码
cluster:
  name: my-etcd-cluster
  peers:
    - peer-urls:
        - "http://192.168.1.101:2380"
        - "http://192.168.1.101:2379"
        name: "etcd-1"
      client-urls:
        - "http://192.168.1.101:2379"
    - peer-urls:
        - "http://192.168.1.102:2380"
        - "http://192.168.1.102:2379"
        name: "etcd-2"
      client-urls:
        - "http://192.168.1.102:2379"
    - peer-urls:
        - "http://192.168.1.103:2380"
        - "http://192.168.1.103:2379"
        name: "etcd-3"
      client-urls:
        - "http://192.168.1.103:2379"

修改配置文件中的IP地址为你的集群内机器的IP地址。

  1. 启动etcd集群:

在etcd目录下,为每个节点创建一个启动脚本,例如start-etcd-1.shstart-etcd-2.shstart-etcd-3.sh,内容如下:

bash 复制代码
#!/bin/bash
cd /path/to/etcd
./etcd --name=$1 --data-dir=/path/to/data --listen-client-urls="http://0.0.0.0:2379" --advertise-client-urls="http://$2:2379" --listen-peer-urls="http://0.0.0.0:2380" --initial-cluster=$3 --initial-cluster-token=my-etcd-cluster-token --initial-cluster-state=new

/path/to/etcd替换为etcd的安装路径,/path/to/data替换为etcd数据目录的路径,$1替换为节点名称,$2替换为节点IP地址,$3替换为集群配置文件中的peers部分。

在每个节点上执行对应的启动脚本,例如:

bash 复制代码
bash start-etcd-1.sh etcd-1 192.168.1.101
bash start-etcd-2.sh etcd-2 192.168.1.102
bash start-etcd-3.sh etcd-3 192.168.1.103

三、验证集群状态

  1. 安装etcdctl

    curl -L https://github.com/etcd-io/etcd/releases/download/v3.5.0/etcd-v3.5.0-linux-amd64.tar.gz | tar xz -C /tmp
    mv /tmp/etcd-v3.5.0-linux-am

相关推荐
古城小栈17 分钟前
MySQL 配置优化 绿皮书
数据库·mysql
向葭奔赴♡1 小时前
若依数据权限实现全流程解析
数据库
不许赖zhang1 小时前
navicat免安装 navicat12 适配win10、win11
数据库
箬敏伊儿1 小时前
Apple M2 + Docker + MySQL 轻量配置全教程
数据库·mysql·docker
FserSuN2 小时前
mysql8 loose index skip scan 特性加速分组查询性能
数据库·mysql
陈文锦丫2 小时前
微服务-----
java·数据库·微服务
dishugj2 小时前
[ORACLE]oracle用户密码永不过期修改以及ORA-28000报错解决
数据库·oracle
一点事2 小时前
oracle:存储过程基础语法
数据库·oracle
tebukaopu1482 小时前
mysql distinct慢
数据库·mysql
步步为营DotNet2 小时前
深入理解IAsyncEnumerable:异步迭代的底层实现与应用优化
java·服务器·数据库