Etcd docker 容器化部署

Etcd标准软件基于Bitnami Etcd 构建。当前版本为3.5.11

你可以通过轻云UC部署工具直接安装部署,也可以手动按如下文档操作,该项目已经全面开源,可以从如下环境获取 配置文件地址: 轻云/qingcloud-platform

qinghub自动安装部署配置库

什么是etcd

etcd是一个分布式的、高可用的、一致的key-value存储数据库,基于Go语言实现,主要用于共享配置和服务发现。 它归根结底是一个存储组件,且可以实现配置共享和服务发现。在分布式系统中,各种服务配置信息的管理共享和服务发现是一个很基本也是很重要的问题,无论你调用服务还是调度容器,都需要知道对应的服务实例和容器节点地址信息。etcd 就是这样一款实现了元数据信息可靠存储的组件。

容器示例

在示例中,我们将创建一个 Etcd 客户端实例,该实例将连接到与客户端在同一 docker 网络上运行的服务器实例。

适用docker 命令行

第 1 步:创建网络

docker network create app-tier --driver bridge

步骤 2:启动 Etcd 服务器实例

使用命令--network app-tier的参数docker run将 Etcd 容器连接到网络app-tier。

docker run -d --name Etcd-server \
    --network app-tier \
    --publish 2379:2379 \
    --publish 2380:2380 \
    --env ALLOW_NONE_AUTHENTICATION=yes \
    --env ETCD_ADVERTISE_CLIENT_URLS=http://etcd-server:2379 \
    registry.cn-hangzhou.aliyuncs.com/qingcloudtech/etcd:latest
第 3 步:启动 Etcd 客户端实例

最后,我们创建一个新的容器实例来启动 Etcd 客户端并连接到上一步中创建的服务器:

docker run -it --rm \
    --network app-tier \
    --env ALLOW_NONE_AUTHENTICATION=yes \
    registry.cn-hangzhou.aliyuncs.com/qingcloudtech/etcd:latest etcdctl --endpoints http://etcd-server:2379 put /message Hello

使用 Docker Compose 文件

如果未指定,Docker Compose 会自动设置一个新网络并将所有已部署的服务附加到该网络。但是,我们将显式定义一个bridge名为 的新网络app-tier。在此示例中,我们假设您希望从您自己的自定义应用程序映像连接到 Etcd 服务器,该映像在以下代码段中通过服务名称进行标识myapp。

version: '2'
networks:
  app-tier:
    driver: bridge

services:
  Etcd:
    image: 'registry.cn-hangzhou.aliyuncs.com/qingcloudtech/etcd:latest'
    environment:
      - ALLOW_NONE_AUTHENTICATION=yes
      - ETCD_ADVERTISE_CLIENT_URLS=http://etcd:2379
    ports:
      - 2379:2379
      - 2380:2380
    networks:
      - app-tier
  myapp:
    image: 'YOUR_APPLICATION_IMAGE'
    networks:
      - app-tier

重要:

请使用应用程序image更新上述代码片段中的占位符YOUR_APPLICATION_IMAGE 在应用程序容器中,使用主机名etcd连接到 Etcd 服务器

启动容器:

docker-compose up -d

配置

通过挂载宿主机的目录到容器目录中十分容易的更改相关配置,容器配置位置为:/opt/bitnami/etcd/conf

docker run --name etcd -v /path/to/etcd.conf.yml:/opt/bitnami/etcd/conf/etcd.conf.yml registry.cn-hangzhou.aliyuncs.com/qingcloudtech/etcd:latest

随后可以通过宿主机上更改相关配置文件

更改docker-compose.yml完成此操作:

etcd:
  ...
  volumes:
    - /path/to/etcd.conf.yml:/opt/bitnami/etcd/conf/etcd.conf.yml
  ...

注意:默认情况下,环境变量ETCDCTL_API设置为3. 修改此环境变量以使用不同的 API 版本。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值