时长一周的golang萌新学习go-zero --- 进度三(部署ETCD)

879 阅读2分钟

logo.webp 本文已参与「新人创作礼」活动, 一起开启掘金创作之路。

本来今天打算学学那个go-zero那个鉴权JWT部分的;但是今天突然想玩玩Dcoker搭建ETCD,我工作中很少用到Docker容器的。自己不想玩Docker;不想折腾公司配的老掉牙的电脑;自己电脑平时写项目没空玩玩Docker;前几天才刚刚开始玩;玩起来真香。后面的环境我都会是Docker部署搭建。

先来聊聊什么是 ETCD

etcd是一种开源的分布式统一键值存储,用于分布式系统或计算机集群的共享配置、服务发现和的调度协调。etcd 有助于促进更加安全的自动更新,协调向主机调度的工作,并帮助设置容器的覆盖网络。

etcd 是许多其他项目的核心组件。最值得注意的是,它是 Kubernetes的首要数据存储,也是容器编排的实际标准系统。使用 etcd, 云原生应用可以保持更为一致的运行时间,而且在个别服务器发生故障时也能正常工作。应用从 etcd 读取数据并写入到其中;通过分散配置数据,为节点配置提供冗余和弹性。

那 ETCD 在 Kubernets 有什么作用呢

作为 Kubernetes 的首要数据存储,etcd 存储和复制所有的 Kubernetes集群状态。etcdKubernetes 集群的关键组件,因此必须要有一种可靠的方法来进行配置和管理。 etcd属于基于共识的分布式系统,因此 etcd 的配置可能比较复杂。引导、维护仲裁、重新配置集群成员身份、创建备份、处理灾难恢复以及监控重要事件都是复杂、繁冗的任务,需要运用相关的专业技能。

看完了介绍;也许我们还在云里雾里;总之我们学会用就可以了;后面我会讲明白他们有什么用;实践出真知。

接下来我们开始部署 ETCD 在 Docker 容器中吧

  1. 第一步 编写我们的 DockerFile 文件吧
  2. 第二步编译文件并且启动ETCD
  3. 第三步本地客户端连接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-docker-compose-up.jpg

第四步 本地客户端连接 ETCD

这里我是用 Mac 的软件 etcdWP;来来看看软件截图吧。

etcd-wp1.jpg

etcd-wp2.jpg

这就是部署的全部过程。就这么简单快捷