2. 搭建 Etcd 单节点和集群

简介: 2. 搭建 Etcd 单节点和集群

docker命令就不解释了,从官网上copy下来的,都是一些内部的配置信息

需要挂载和端口暴露的docker基础

单机单实例

安装命令

shell

复制代码

docker run \
  -d \
  --name etcd \
  -p 2379:2379 \
  -p 2380:2380 \
  --volume=/var/etcd:/etcd-data \
  quay.io/coreos/etcd:v3.3.13 \
  /usr/local/bin/etcd \
  --name my-etcd-1 \
  --data-dir /etcd-data \
  --listen-client-urls http://0.0.0.0:2379 \
  --advertise-client-urls http://0.0.0.0:2379 \
  --listen-peer-urls http://0.0.0.0:2380 \
  --initial-advertise-peer-urls http://0.0.0.0:2380 \
  --initial-cluster my-etcd-1=http://0.0.0.0:2380 \
  --initial-cluster-token my-etcd-token \
  --initial-cluster-state new \
  --auto-compaction-retention 1 \
  --auto-compaction-mode periodic

etcdctl 工具先进入容器

shell

复制代码

~ # etcdctl set name cfd
cfd
~ # etcdctl get name
cfd
~ # etcdctl --endpoints http://localhost:2379 set name cfd
cfd
~ # etcdctl --endpoints http://localhost:2379 get name
cfd

单机多实例

默认使用:

  • 2379 - 服务接口
  • 2380 - 通信监听端口

多实例配置端口如下,按照上面的 docker 安装命令修改 将192.168.159.128配置为本机ip,0.0.0.0不变 如果出错了需要重新配置,需要停止容器并删除,再把挂载的目录也删掉,运行命令

12379 12380
22379 22380
32379 32380

shell

复制代码

docker run \
  -d \
  --name my-etcd-2 \
  -p 12379:12379 \
  -p 12380:12380 \
  --volume=/home/cfd/env/etcd/2:/etcd-data \
  quay.io/coreos/etcd:v3.3.13 \
  /usr/local/bin/etcd \
  --name my-etcd-2 \
  --data-dir /etcd-data \
  --listen-client-urls http://0.0.0.0:12379 \
  --advertise-client-urls http://192.168.159.128:12379 \
  --listen-peer-urls http://0.0.0.0:12380 \
  --initial-advertise-peer-urls http://192.168.159.128:12380 \
  --initial-cluster 'my-etcd-2=http://192.168.159.128:12380,my-etcd-3=http://192.168.159.128:22380,my-etcd-4=http://192.168.159.128:32380' \
  --initial-cluster-token my-etcd-token \
  --initial-cluster-state new \
  --auto-compaction-retention 1 \
  --auto-compaction-mode periodic
docker run \
  -d \
  --name my-etcd-3 \
  -p 22379:22379 \
  -p 22380:22380 \
  --volume=/home/cfd/env/etcd/3:/etcd-data \
  quay.io/coreos/etcd:v3.3.13 \
  /usr/local/bin/etcd \
  --name my-etcd-3 \
  --data-dir /etcd-data \
  --listen-client-urls http://0.0.0.0:22379 \
  --advertise-client-urls http://192.168.159.128:22379 \
  --listen-peer-urls http://0.0.0.0:22380 \
  --initial-advertise-peer-urls http://192.168.159.128:22380 \
  --initial-cluster 'my-etcd-2=http://192.168.159.128:12380,my-etcd-3=http://192.168.159.128:22380,my-etcd-4=http://192.168.159.128:32380' \
  --initial-cluster-token my-etcd-token \
  --initial-cluster-state new \
  --auto-compaction-retention 1 \
  --auto-compaction-mode periodic
docker run \
  -d \
  --name my-etcd-4 \
  -p 32379:32379 \
  -p 32380:32380 \
  --volume=/home/cfd/env/etcd/4:/etcd-data \
  quay.io/coreos/etcd:v3.3.13 \
  /usr/local/bin/etcd \
  --name my-etcd-4 \
  --data-dir /etcd-data \
  --listen-client-urls http://0.0.0.0:32379 \
  --advertise-client-urls http://192.168.159.128:32379 \
  --listen-peer-urls http://0.0.0.0:32380 \
  --initial-advertise-peer-urls http://192.168.159.128:32380 \
  --initial-cluster 'my-etcd-2=http://192.168.159.128:12380,my-etcd-3=http://192.168.159.128:22380,my-etcd-4=http://192.168.159.128:32380' \
  --initial-cluster-token my-etcd-token \
  --initial-cluster-state new \
  --auto-compaction-retention 1 \
  --auto-compaction-mode periodic

etcd关键参数说明

进入容器后查看连接列表

sh

复制代码

# docker exec -it my-etcd-2 /bin/sh
# etcdctl --endpoints=192.168.159.128:12379 member list
parse 192.168.159.128:12379: first path segment in URL cannot contain colon
# etcdctl --endpoints=http://192.168.159.128:12379 member list
731ef0275af38ce7: name=my-etcd-3 peerURLs=http://192.168.159.128:22380 clientURLs=http://192.168.159.128:22379 isLeader=false
7f396b01e384c118: name=my-etcd-4 peerURLs=http://192.168.159.128:32380 clientURLs=http://192.168.159.128:32379 isLeader=false
fccae47c7ce36cc6: name=my-etcd-2 peerURLs=http://192.168.159.128:12380 clientURLs=http://192.168.159.128:12379 isLeader=true
# 三号节点是leader

简单使用etcdctl

sh

复制代码

[root@iZ2vcd6bealyr76cgiidyvZ var]# docker exec -it my-etcd-2 /bin/sh
/ # etcdctl --endpoints=http://172.27.3.40:12379 set name cfd
cfd
/ # etcdctl --endpoints=http://172.27.3.40:12379 get name
cfd


相关文章
|
2月前
|
Kubernetes 负载均衡 应用服务中间件
kubeadm快速构建K8S1.28.1高可用集群
关于如何使用kubeadm快速构建Kubernetes 1.28.1高可用集群的详细教程。
125 2
|
Kubernetes Linux Docker
极简的配置单节点Kubernetes(k8s)集群
在传统的概念当中,Docker是简单易用的,Kubernetes是复杂强大的。 深入了解之后会发现Docker的简单是因为用户可以从基本功能开始用起, 只需要一台Linux主机,运行一下apt-get install docker-engine 或者yum install docker-engine,立马就可以用docker run启动一个新的容器, 整个过程与用户之前积累的Linux软件使用体验高度一致。
5937 0
|
Kubernetes 负载均衡 应用服务中间件
部署Kubernetes(k8s)多主的高可用集群
在CentOS7上安装Kubernetes多主节点的集群,并且安装calico网络插件和metallb。使用keepalived和haproxy进行负载均衡。最后部署应用
2298 0
|
Kubernetes NoSQL Redis
教你在 Kubernetes 上部署 Redis 高可用集群?
教你在 Kubernetes 上部署 Redis 高可用集群?
241 0
|
缓存 Kubernetes 数据安全/隐私保护
安装kubernetes1.17.3多master节点的高可用集群(上)
安装kubernetes1.17.3多master节点的高可用集群
|
6月前
|
Kubernetes 应用服务中间件 nginx
使用kubeadm搭建生产环境的多master节点k8s高可用集群
使用kubeadm搭建生产环境的多master节点k8s高可用集群
551 0
|
6月前
|
Kubernetes JavaScript Java
使用kubeadm搭建高可用的K8s集群
使用kubeadm搭建高可用的K8s集群
77 0
|
6月前
|
Kubernetes 容器
Kubernetes高可用集群二进制部署(二)ETCD集群部署
Kubernetes高可用集群二进制部署(二)ETCD集群部署
|
11月前
|
Kubernetes Cloud Native Go
kubekey快速安装高可用k8s集群
kubekey快速安装高可用k8s集群
195 0
|
11月前
|
canal Kubernetes Ubuntu
kubespray安装高可用k8s集群
kubespray安装高可用k8s集群
134 0