【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

相关推荐
IT项目管理43 分钟前
达梦数据库DMHS介绍及安装部署
linux·数据库
你都会上树?1 小时前
MySQL MVCC 详解
数据库·mysql
大春儿的试验田1 小时前
高并发收藏功能设计:Redis异步同步与定时补偿机制详解
java·数据库·redis·学习·缓存
Ein hübscher Kerl.1 小时前
虚拟机上安装 MariaDB 及依赖包
数据库·mariadb
醇醛酸醚酮酯2 小时前
Qt项目锻炼——TODO清单(二)
开发语言·数据库·qt
GreatSQL社区3 小时前
用systemd管理GreatSQL服务详解
数据库·mysql·greatsql
掘根3 小时前
【MySQL进阶】错误日志,二进制日志,mysql系统库
数据库·mysql
weixin_438335403 小时前
基础知识:mysql-connector-j依赖
数据库·mysql
沉着的码农3 小时前
【设计模式】基于责任链模式的参数校验
java·spring boot·分布式
小明铭同学3 小时前
MySQL 八股文【持续更新ing】
数据库·mysql