本文已参与「新人创作礼」活动, 一起开启掘金创作之路。
本来今天打算学学那个go-zero那个鉴权JWT部分的;但是今天突然想玩玩Dcoker搭建ETCD,我工作中很少用到Docker容器的。自己不想玩Docker;不想折腾公司配的老掉牙的电脑;自己电脑平时写项目没空玩玩Docker;前几天才刚刚开始玩;玩起来真香。后面的环境我都会是Docker部署搭建。
先来聊聊什么是 ETCD
etcd是一种开源的分布式统一键值存储,用于分布式系统或计算机集群的共享配置、服务发现和的调度协调。etcd 有助于促进更加安全的自动更新,协调向主机调度的工作,并帮助设置容器的覆盖网络。
etcd 是许多其他项目的核心组件。最值得注意的是,它是 Kubernetes的首要数据存储,也是容器编排的实际标准系统。使用 etcd, 云原生应用可以保持更为一致的运行时间,而且在个别服务器发生故障时也能正常工作。应用从 etcd 读取数据并写入到其中;通过分散配置数据,为节点配置提供冗余和弹性。
那 ETCD 在 Kubernets 有什么作用呢
作为 Kubernetes 的首要数据存储,etcd 存储和复制所有的 Kubernetes集群状态。etcd 是 Kubernetes 集群的关键组件,因此必须要有一种可靠的方法来进行配置和管理。 etcd属于基于共识的分布式系统,因此 etcd 的配置可能比较复杂。引导、维护仲裁、重新配置集群成员身份、创建备份、处理灾难恢复以及监控重要事件都是复杂、繁冗的任务,需要运用相关的专业技能。
看完了介绍;也许我们还在云里雾里;总之我们学会用就可以了;后面我会讲明白他们有什么用;实践出真知。
接下来我们开始部署 ETCD 在 Docker 容器中吧
- 第一步 编写我们的
DockerFile文件吧 - 第二步编译文件并且启动
ETCD - 第三步本地客户端连接
ETCD
DockerFile文件
version: "3.5"
services:
etcd:
hostname: etcd
image: bitnami/etcd:lasted
deploy:
replicas: 1
restart_policy:
condition: on-failure
privileged: true
volumes:
- "/etcd/data:/opt/bitnami/etcd/data"
environment:
- "ETCD_ADVERTISE_CLIENT_URLS=http://0.0.0.0:2379"
- "ETCD_LISTEN_CLIENT_URLS=http://0.0.0.0:2379"
- "ETCD_LISTEN_PEER_URLS=http://0.0.0.0:2380"
- "ETCD_INITIAL_ADVERTISE_PEER_URLS=http://0.0.0.0:2380"
- "ALLOW_NONE_AUTHENTICATION=yes"
- "ETCD_INITIAL_CLUSTER=node1=http://0.0.0.0:2380"
- "ETCD_NAME=node1"
- "ETCD_DATA_DIR=/opt/bitnami/etcd/data"
ports:
- 2379:2379
- 2380:2380
networks:
- etcdnet
networks:
etcdnet:
name: etcdnetls
编译 DockerFile
在文件目录下 docker-compose up 命令进行编译;下面是我的编译启动过程截图
第四步 本地客户端连接 ETCD
这里我是用 Mac 的软件 etcdWP;来来看看软件截图吧。
这就是部署的全部过程。就这么简单快捷