Etcd docker 容器化部署
Etcd标准软件基于Bitnami Etcd 构建。当前版本为3.5.11
你可以通过Qinghub Studio 在线体验部署工具直接安装部署,也可以手动按如下文档操作
部署配置文件获取地址: https://gitee.com/qingplus/qingcloud-platform
容器示例
在示例中,我们将创建一个 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 版本。