etcd3 docker集群部署

3 篇文章 0 订阅
2 篇文章 0 订阅

创建一个3个节点的etcd3 集群。
注意:etcd2和etcd3 启动命令是有差别的。
之前我踩了这个坑,耗费了不少时间.

准备3台虚拟机 centos7 1810
etcd1 IP: 10.5.7.61
etcd2 IP: 10.5.7.62
etcd3 IP: 10.5.7.63

在每台虚拟机上安装好docker. 我的虚拟机是从模版创建的,本身自带了docker,所以不用安装.

确保镜像可以下载:
docker pull k8s.gcr.io/etcd:3.3.10
如果下载不了,可以
docker pull ascs/etcd:3.3.10
然后 docker image tag ascs/etcd:3.3.10 k8s.gcr.io/etcd:3.3.10

mkdir -p /var/server/etcd/
保存下面的3个脚本 start-etcd-cluster.sh ,依次拷贝到每个虚拟机里/var/server/etcd 目录
chmod +x start-etcd-cluster.sh
cd /var/server/etcd
start-etcd-cluster.sh

etcd1 节点:
[root@etcd1]# more start-etcd-cluster.sh
#!/bin/bash
firewall-cmd --add-port=2379/tcp --permanent --zone=public
firewall-cmd --add-port=2380/tcp --permanent --zone=public

current_file_path=$(cd "$(dirname "$0")"; pwd)
cd ${current_file_path}

ETCD_INITIAL_CLUSTER="etcd1=http://10.5.7.61:2380,etcd2=http://10.5.7.62:2380,etcd3=http://10.5.7.63:2380"

ETCD_INITIAL_CLUSTER_STATE=new

#export currentHostIp=`ip -4 address show eth0 | grep 'inet' |  grep -v grep | awk '{print $2}' | cut -d '/' -f1`

firewall-cmd --reload
firewall-cmd --list-all

#注意防火墙出现奇怪问题,集群可能还无法访问,只能本机访问,需要重现启动可以解决问题. to do

docker stop etcd1
docker rm   etcd1

docker run \
  --restart=always \
  --hostname=etcd1 \
  -p 2379:2379 \
  -p 2380:2380 \
  -v /etc/localtime:/etc/localtime \
  -v `pwd`/data:/data \
  --name etcd1 \
  k8s.gcr.io/etcd:3.3.10 \
   etcd \
  -name etcd1 \
  --initial-advertise-peer-urls http://10.5.7.61:2380 \
  --listen-peer-urls http://0.0.0.0:2380 \
  --listen-client-urls http://0.0.0.0:2379 \
  --advertise-client-urls http://10.5.7.61:2379 \
  --initial-cluster-token etcd-cluster-of-k8s \
  --initial-cluster etcd1=http://10.5.7.61:2380,etcd2=http://10.5.7.62:2380,etcd3=http://10.5.7.63:2380 \
  --initial-cluster-state new \
  --data-dir=/data


在etcd2节点
#!/bin/bash
firewall-cmd --add-port=2379/tcp --permanent --zone=public
firewall-cmd --add-port=2380/tcp --permanent --zone=public

current_file_path=$(cd "$(dirname "$0")"; pwd)
cd ${current_file_path}

ETCD_INITIAL_CLUSTER="etcd1=http://10.5.7.61:2380,etcd2=http://10.5.7.62:2380,etcd3=http://10.5.7.63:2380"

ETCD_INITIAL_CLUSTER_STATE=new

#export currentHostIp=`ip -4 address show eth0 | grep 'inet' |  grep -v grep | awk '{print $2}' | cut -d '/' -f1`

firewall-cmd --reload
firewall-cmd --list-all

#注意防火墙出现奇怪问题,集群可能还无法访问,只能本机访问,需要重现启动可以解决问题. to do

docker stop etcd2
docker rm   etcd2

docker run \
  --restart=always \
  --hostname=etcd2 \
  -p 2379:2379 \
  -p 2380:2380 \
  -v /etc/localtime:/etc/localtime \
  -v `pwd`/data:/data \
  --name etcd2 \
  k8s.gcr.io/etcd:3.3.10 \
   etcd \
  -name etcd2 \
  --initial-advertise-peer-urls http://10.5.7.62:2380 \
  --listen-peer-urls http://0.0.0.0:2380 \
  --listen-client-urls http://0.0.0.0:2379 \
  --advertise-client-urls http://10.5.7.62:2379 \
  --initial-cluster-token etcd-cluster-of-k8s \
  --initial-cluster etcd1=http://10.5.7.61:2380,etcd2=http://10.5.7.62:2380,etcd3=http://10.5.7.63:2380 \
  --initial-cluster-state new \
  --data-dir=/data

在etcd3节点
#!/bin/bash
firewall-cmd --add-port=2379/tcp --permanent --zone=public
firewall-cmd --add-port=2380/tcp --permanent --zone=public

current_file_path=$(cd "$(dirname "$0")"; pwd)
cd ${current_file_path}

ETCD_INITIAL_CLUSTER="etcd1=http://10.5.7.61:2380,etcd2=http://10.5.7.62:2380,etcd3=http://10.5.7.63:2380"

ETCD_INITIAL_CLUSTER_STATE=new

#export currentHostIp=`ip -4 address show eth0 | grep 'inet' |  grep -v grep | awk '{print $2}' | cut -d '/' -f1`

firewall-cmd --reload
firewall-cmd --list-all

#注意防火墙出现奇怪问题,集群可能还无法访问,只能本机访问,需要重现启动可以解决问题. to do

docker stop etcd3
docker rm   etcd3

docker run \
  --restart=always \
  --hostname=etcd3 \
  -p 2379:2379 \
  -p 2380:2380 \
  -v /etc/localtime:/etc/localtime \
  -v `pwd`/data:/data \
  --name etcd3 \
  k8s.gcr.io/etcd:3.3.10 \
   etcd \
  -name etcd3 \
  --initial-advertise-peer-urls http://10.5.7.63:2380 \
  --listen-peer-urls http://0.0.0.0:2380 \
  --listen-client-urls http://0.0.0.0:2379 \
  --advertise-client-urls http://10.5.7.63:2379 \
  --initial-cluster-token etcd-cluster-of-k8s \
  --initial-cluster etcd1=http://10.5.7.61:2380,etcd2=http://10.5.7.62:2380,etcd3=http://10.5.7.63:2380 \
  --initial-cluster-state new \
  --data-dir=/data

依次启动 etcd1 etcd2 etcd3 里的/var/server/etcd/start-etcd-cluster.sh
然后,打开浏览器测试
测试:

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

开心自由天使

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值