欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 社会 > docker部署bitnami/etcd:latest

docker部署bitnami/etcd:latest

2024/11/20 12:28:16 来源:https://blog.csdn.net/m0_72363694/article/details/143819224  浏览:    关键词:docker部署bitnami/etcd:latest

对于etcd集群,如果在配置文件内配置了其他节点信息,而其他节点没有启动就会报错,进入容器执行命令也执行不了,因为他们需要严格同步,如果想只使用单节点,在docker中映射出配置文件,修改为单节点,把其他节点信息去掉用时再加上。

由于集群中的单节点可以启动,但无法和其他节点同步,所以执行命令如下错误,gui客户端也会报连接超时,就练习还是单节点。

{"level":"warn","ts":"2024-11-16T19:26:41.679994+0800","logger":"etcd-client","caller":"v3@v3.5.17/retry_interceptor.go:63","msg":"retrying of unary invoker failed","target":"etcd-endpoints://0xc0001461e0/127.0.0.1:2379","attempt":0,"error":"rpc error: code = DeadlineExceeded desc = context deadline exceeded"}
Error: context deadline exceeded

在网上各种各样的构建版本导致来源多样,直接从网上使用报错,以bitnami/etcd:latest为例,镜像的构建执行文件按配置文件可能与其他版本不同,官方推荐从网络构建镜像,但有人构建后挪动位置构建出来的不易使用。

先创建网络

docker network create app-tier --subnet 172.25.0.0/16
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 \bitnami/etcd:latest

简单配置:

version: '2'networks:app-tier:driver: bridgeservices:Etcd:image: 'bitnami/etcd:latest'environment:- ALLOW_NONE_AUTHENTICATION=yes- ETCD_ADVERTISE_CLIENT_URLS=http://etcd:2379ports:- 2379:2379- 2380:2380networks:- app-tiermyapp:image: 'YOUR_APPLICATION_IMAGE'networks:- app-tier

关于配置文件映射:后面的路径就是要确认的

docker run --name Etcd -v /path/to/Etcd.conf.yml:/opt/bitnami/Etcd/conf/etcd.conf.yml bitnami/etcd:latest

文件构建

Etcd:
  ...
  volumes:
    - /path/to/Etcd.conf.yml:/opt/bitnami/etcd/conf/etcd.conf.yml
  ...
其次是数据映射

version: '3'services:etcd:container_name: etcdimage: bitnami/etcd:latestenvironment:- ALLOW_NONE_AUTHENTICATION=yesentrypoint: [ "/opt/bitnami/etcd/bin/etcd", "--config-file", "/opt/bitnami/etcd/conf/etcd.conf.yml" ]volumes:- /Data/etcd/cluster/etcd1/data:/bitnami/etcd- /Data/etcd/cluster/etcd1/conf/etcd.conf.yml:/opt/bitnami/etcd/conf/etcd.conf.yml- "/etc/localtime:/etc/localtime:ro"ports:- 2379:2379- 2380:2380networks:default:name: etcd-tierdriver: bridge

重点就是容器启动后的配置文件和数据文件的路径问题和可执行文件的位置,如何不对,容器启动失败。

完整配置过程:

1 创建配置文件目录,设置权限,每个文件下配置如下:etcd.conf.yaml

# 其他node 分别将 `etcd1`改为 `etcd2`/ `etcd3`
name: etcd1
data-dir: /bitnami/etcd
# 其他node 分别下面的将`172.25.0.101`改为`172.25.0.102`/ `172.25.0.103`
listen-client-urls: http://172.25.0.101:2379, http://127.0.0.1:2379
advertise-client-urls: http://172.25.0.101:2379
listen-peer-urls: http://172.25.0.101:2380
initial-advertise-peer-urls: http://172.25.0.101:2380
# 这里之后不需要改
initial-cluster: etcd1=http://172.25.0.101:2380,etcd2=http://172.25.0.102:2380,etcd3=http://172.25.0.103:2380
initial-cluster-token: etcd-cluster-token
initial-cluster-state: new

2 三个容器一起启动:如果启动1个由于这个节点配置了其他节点信息,会导致该节点不能正常工作如put和get甚至不能被外界连接

version: '3'services:etcd-1:image: bitnami/etcd:latestentrypoint: [ "/opt/bitnami/etcd/bin/etcd", "--config-file", "/opt/bitnami/etcd/conf/etcd.conf.yml" ]ports:- "23791:2379"environment:ETCDCTL_API: 3volumes:- /Data/etcd/cluster/etcd1/data:/bitnami/etcd- /Data/etcd/cluster/etcd1/conf/etcd.conf.yml:/opt/bitnami/etcd/conf/etcd.conf.yml- "/etc/localtime:/etc/localtime:ro"networks:etcd-tier:ipv4_address: 172.25.0.101etcd-2:image: bitnami/etcd:latestentrypoint: [ "/opt/bitnami/etcd/bin/etcd", "--config-file", "/opt/bitnami/etcd/conf/etcd.conf.yml" ]ports:- "23792:2379"environment:ETCDCTL_API: 3volumes:- /Data/etcd/cluster/etcd2/data:/bitnami/etcd- /Data/etcd/cluster/etcd2/conf/etcd.conf.yml:/opt/bitnami/etcd/conf/etcd.conf.yml- "/etc/localtime:/etc/localtime:ro"networks:etcd-tier:ipv4_address: 172.25.0.102etcd-3:image: bitnami/etcd:latestentrypoint: [ "/opt/bitnami/etcd/bin/etcd", "--config-file", "/opt/bitnami/etcd/conf/etcd.conf.yml" ]ports:- "23793:2379"environment:ETCDCTL_API: 3volumes:- /Data/etcd/cluster/etcd3/data:/bitnami/etcd- /Data/etcd/cluster/etcd3/conf/etcd.conf.yml:/opt/bitnami/etcd/conf/etcd.conf.yml- "/etc/localtime:/etc/localtime:ro"networks:etcd-tier:ipv4_address: 172.25.0.103networks:etcd-tier:driver: bridgeipam:config:- subnet: 172.25.0.0/16gateway: 172.25.0.1

参考地址:使用docker 运行etcd 单实例/集群 - 哪吒young - 博客园

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com