• 005.基于docker部署etcd集群部署


    一 环境准备

    ntp配置:略 #建议配置ntp服务,保证时间一致性
    etcd版本:v3.3.9
    防火墙及SELinux:关闭防火墙和SELinux
    名称
    地址
    主机名
    备注
    etcd1
    172.24.8.71
    etcd1.example.com
     
    etcd2
    172.24.8.72
    etcd2.example.com
     
    etcd3
    172.24.8.73
    etcd3.example.com
     
      1 # hostnamectl set-hostname etcd1.example.com
      2 # hostnamectl set-hostname etcd2.example.com
      3 # hostnamectl set-hostname etcd3.example.com
     

    二 docker etcd集群部署

    2.1 安装docker

    见《docker版本及安装》。

    2.2 etcd基础配置

      1 # mkdir -p /var/log/etcd/			        #建议创建etcd日志保存目录
      2 # mkdir -p /data/etcd				#建议创建单独的etcd数据目录
      3 # REGISTRY=gcr.io/etcd-development/etcd		#配置etcd镜像的仓库,不推荐使用
      4 # REGISTRY=quay.io/coreos/etcd			#建议使用此仓库
      5 # ETCD_VERSION=latest				#设置etcd版本
      6 # TOKEN=my-etcd-01				        #设置唯一集群ID
      7 # CLUSTER_STATE=new				        #置为新建集群
      8 # NAME_1=etcd1
      9 # NAME_2=etcd2
     10 # NAME_3=etcd3					#设置三个节点的name
     11 # HOST_1=172.24.8.71
     12 # HOST_2=172.24.8.72
     13 # HOST_3=172.24.8.73				#设置三个节点的IP
     14 # CLUSTER=${NAME_1}=http://${HOST_1}:2380,${NAME_2}=http://${HOST_2}:2380,${NAME_3}=http://${HOST_3}:2380					                        #设置集群所有节点信息
     15 # DATA_DIR=/data/etcd				#设置集群etcd数据节点
     
    提示:以上所有操作需要在所有节点操作。

    2.3 启动docker etcd集群

      1 [root@etcd1 ~]# THIS_NAME=${NAME_1}
      2 [root@etcd1 ~]# THIS_IP=${HOST_1}
      3 [root@etcd1 ~]# docker run 
      4   -p 2379:2379 
      5   -p 2380:2380 
      6   --volume=${DATA_DIR}:/etcd-data 
      7   --name etcd ${REGISTRY}:${ETCD_VERSION} 
      8   /usr/local/bin/etcd 
      9   --data-dir=/etcd-data --name ${THIS_NAME} 
     10   --initial-advertise-peer-urls http://${THIS_IP}:2380 --listen-peer-urls http://0.0.0.0:2380 
     11   --advertise-client-urls http://${THIS_IP}:2379 --listen-client-urls http://0.0.0.0:2379 
     12   --initial-cluster ${CLUSTER} 
     13   --initial-cluster-state ${CLUSTER_STATE} --initial-cluster-token ${TOKEN}
     14 
     15 [root@etcd2 ~]# THIS_NAME=${NAME_2}
     16 [root@etcd2 ~]# THIS_IP=${HOST_2}
     17 [root@etcd2 ~]# docker run 
     18   -p 2379:2379 
     19   -p 2380:2380 
     20   --volume=${DATA_DIR}:/etcd-data 
     21   --name etcd ${REGISTRY}:${ETCD_VERSION} 
     22   /usr/local/bin/etcd 
     23   --data-dir=/etcd-data --name ${THIS_NAME} 
     24   --initial-advertise-peer-urls http://${THIS_IP}:2380 --listen-peer-urls http://0.0.0.0:2380 
     25   --advertise-client-urls http://${THIS_IP}:2379 --listen-client-urls http://0.0.0.0:2379 
     26   --initial-cluster ${CLUSTER} 
     27   --initial-cluster-state ${CLUSTER_STATE} --initial-cluster-token ${TOKEN}
     28 
     29 [root@etcd3 ~]# THIS_NAME=${NAME_3}
     30 [root@etcd3 ~]# THIS_IP=${HOST_3}
     31 [root@etcd3 ~]# docker run 
     32   -p 2379:2379 
     33   -p 2380:2380 
     34   --volume=${DATA_DIR}:/etcd-data 
     35   --name etcd ${REGISTRY}:${ETCD_VERSION} 
     36   /usr/local/bin/etcd 
     37   --data-dir=/etcd-data --name ${THIS_NAME} 
     38   --initial-advertise-peer-urls http://${THIS_IP}:2380 --listen-peer-urls http://0.0.0.0:2380 
     39   --advertise-client-urls http://${THIS_IP}:2379 --listen-client-urls http://0.0.0.0:2379 
     40   --initial-cluster ${CLUSTER} 
     41   --initial-cluster-state ${CLUSTER_STATE} --initial-cluster-token ${TOKEN}
     
    提示:quay.io/coreos/etcd镜像国内可能无法pull,可在国外节点pull,然后scp至集群节点。

    2.4 确认验证

      1 [root@etcd1 ~]# docker ps
    15
      1 [root@etcd2 ~]# docker ps
    16
      1 [root@etcd3 ~]# docker ps
    17
      1 [root@etcd1 ~]# docker exec -it 21e6cf6e5e89 /usr/local/bin/etcdctl cluster-health
    18
      1 [root@etcd1 ~]# netstat -nltp | grep 2380
    19
     
  • 相关阅读:
    墨天轮沙龙 | 宝兰德詹年科 :基础软件中间件,让业务人员更好专注业务逻辑的实现
    Clash for Windows 使用教程(详解,全流程)
    es6 export和export default的区别
    nginx 配置go服务反向代理
    ant design pro git提交error; Angular 团队git提交规范
    windows goland go exec "gcc": executable file not found in %PATH%
    go 地址对齐保证
    node_modules/@umijs/runtime" does not exist in container.
    ant design pro 使用 getFieldValue、setFieldsValue
    antdesignpro 自定义表单 rules规则
  • 原文地址:https://www.cnblogs.com/itzgr/p/9920897.html
Copyright © 2020-2023  润新知