【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

相关推荐
程序边界6 分钟前
KingbaseES 表空间目录自动创建特性深度解析(下篇)
数据库·oracle
Jul1en_8 分钟前
【Redis】Zset类型、命令及应用场景
数据库·redis·缓存
晨曦夜月14 分钟前
mysql事务的基本操作
数据库·mysql
那个失眠的夜18 分钟前
AspectJ
java·开发语言·数据库·spring
亚空间仓鼠31 分钟前
NoSQL数据库Redis(一):数据库基础
数据库·redis·nosql
weixin_580614001 小时前
如何防止SQL注入利用存储过程_确保存储过程不拼字符串.txt
jvm·数据库·python
james的分享1 小时前
向量数据库之Milvus
数据库·milvus
weixin_408717771 小时前
mysql权限表查询性能如何优化_MySQL系统权限缓存原理
jvm·数据库·python
吕源林1 小时前
怎么优化MongoDB的软删除设计_布尔标记与删除时间戳
jvm·数据库·python
吕源林1 小时前
如何解决SQL存储过程连接泄露_确保在异常后关闭连接
jvm·数据库·python