我是靠谱客的博主 每日一库,最近开发中收集的这篇文章主要介绍每日一库:etcd在Windows下的单机部署,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

etcd 常用配置参数

--name       #指定节点名称

--data-dir   #指定节点的数据存储目录,用于保存日志和快照

--addr       #公布的 IP 地址和端口;默认为 127.0.0.1:2379

--bind-addr   #用于客户端连接的监听地址;默认为–addr 配置

--peers       #集群成员逗号分隔的列表;例如 127.0.0.1:2380,127.0.0.1:2381

--peer-addr   #集群服务通讯的公布的 IP 地址;默认为 127.0.0.1:2380

--peer-bind-addr  #集群服务通讯的监听地址;默认为-peer-addr 配置

--wal-dir         #指定节点的 wal 文件的存储目录,若指定了该参数 wal 文件会和其他数据文件分开存储

--listen-client-urls #监听 URL;用于与客户端通讯

--listen-peer-urls   #监听 URL;用于与其他节点通讯

--initial-advertise-peer-urls  #告知集群其他节点 URL

--advertise-client-urls  #告知客户端 URL

--initial-cluster-token  #集群的 ID

--initial-cluster        #集群中所有节点

--initial-cluster-state new  #表示从无到有搭建 etcd 集群

--discovery-srv  #用于 DNS 动态服务发现,指定 DNS SRV 域名

--discovery      #用于 etcd 动态发现,指定 etcd 发现服务的 URL


etcd总共有两种集群模式:

单节点(Standalone);


多节点,多节点的话,因为节点数必须是奇数个,所以最小集群通常是3节点.


etcd在windows下面有三种启动方式:

将参数直接输入到命令行里,然后通过命令行或者bat启动;


将参数写入到yml配置文件里面,通过命令行或者bat启动;


运行在docker下面了.


1.直接命令行

1.1单节点

.\etcd.exe --name standalone ^

--data-dir .\data\standalone ^

--advertise-client-urls http://0.0.0.0:2379 ^

--listen-client-urls http://0.0.0.0:2379 ^

--initial-cluster-token etcd-standalone ^

--initial-cluster-state new

pause


1.2多节点

.\etcd.exe --name node01 ^

--data-dir .\data\node01 ^

--advertise-client-urls http://0.0.0.0:2379 ^

--listen-client-urls http://0.0.0.0:2379 ^

--listen-peer-urls http://0.0.0.0:2380 ^

--initial-advertise-peer-urls http://0.0.0.0:2380 ^

--initial-cluster-token etcd-cluster-1 ^

--initial-cluster node01=http://0.0.0.0:2380,node02=http://0.0.0.0:2381,node03=http://0.0.0.0:2382 ^

--initial-cluster-state new


.\etcd.exe --name node02 ^

--data-dir .\data\node02 ^

--advertise-client-urls http://0.0.0.0:2378 ^

--listen-client-urls http://0.0.0.0:2378 ^

--listen-peer-urls http://0.0.0.0:2381 ^

--initial-advertise-peer-urls http://0.0.0.0:2381 ^

--initial-cluster-token etcd-cluster-1 ^

--initial-cluster node01=http://0.0.0.0:2380,node02=http://0.0.0.0:2381,node03=http://0.0.0.0:2382 ^

--initial-cluster-state new


.\etcd.exe --name node03 ^

--data-dir .\data\node03 ^

--advertise-client-urls http://0.0.0.0:2377 ^

--listen-client-urls http://0.0.0.0:2377 ^

--listen-peer-urls http://0.0.0.0:2382 ^

--initial-advertise-peer-urls http://0.0.0.0:2382 ^

--initial-cluster-token etcd-cluster-1 ^

--initial-cluster node01=http://0.0.0.0:2380,node02=http://0.0.0.0:2381,node03=http://0.0.0.0:2382 ^

--initial-cluster-state new

pause


2.yml配置文件

2.1单节点

name: etcd-standalone

data-dir: .\etcd-data\standalone 

listen-client-urls: 'http://0.0.0.0:2379'

advertise-client-urls: 'http://0.0.0.0:2379'

initial-cluster-token: etcd-standalone

initial-cluster-state: new


2.2多节点

name: node01

data-dir: .\data\node01 

listen-client-urls: 'http://0.0.0.0:2379'

advertise-client-urls: 'http://0.0.0.0:2379'

listen-peer-urls: 'http://0.0.0.0:2380'

initial-advertise-peer-urls: 'http://0.0.0.0:2380'

initial-cluster: node01=http://0.0.0.0:2380,node02=http://0.0.0.0:2381,node03=http://0.0.0.0:2382

initial-cluster-token: etcd-cluster-test1

initial-cluster-state: new


name: node02

data-dir: .\data\node02 

listen-client-urls: 'http://0.0.0.0:2378'

advertise-client-urls: 'http://0.0.0.0:2378'

listen-peer-urls: 'http://0.0.0.0:2381'

initial-advertise-peer-urls: 'http://0.0.0.0:2381'

initial-cluster: node01=http://0.0.0.0:2380,node02=http://0.0.0.0:2381,node03=http://0.0.0.0:2382

initial-cluster-token: etcd-cluster-test1

initial-cluster-state: new


name: node03

data-dir: .\data\node03

listen-client-urls: 'http://0.0.0.0:2377'

advertise-client-urls: 'http://0.0.0.0:2377'

listen-peer-urls: 'http://0.0.0.0:2382'

initial-advertise-peer-urls: 'http://0.0.0.0:2382'

initial-cluster: node01=http://0.0.0.0:2380,node02=http://0.0.0.0:2381,node03=http://0.0.0.0:2382

initial-cluster-token: etcd-cluster-test1

initial-cluster-state: new


启动的bat为:

.\etcd.exe --config-file .\conf\standalone.yml


3.docker

3.1单节点

SETLOCAL ENABLEEXTENSIONS


SET REGISTRY=quay.io/coreos/etcd

SET ETCD_VERSION=latest


SET DATA_DIR=/etcd-data/standalone

SET CLUSTER_STATE=new

SET CLUSTER_TOKEN=etcd-standalone

SET NODE_NAME=etcd-standalone


docker run ^

  -d --name %NODE_NAME% ^

  --volume=%DATA_DIR%:/etcd-data ^

  --publish 2379:2379 ^

  --env ALLOW_NONE_AUTHENTICATION=yes ^

  --env ETCD_NAME=%NODE_NAME% ^

  --env ETCD_DATA_DIR=%DATA_DIR% ^

  --env ETCD_ADVERTISE_CLIENT_URLS="http://0.0.0.0:2379" ^

  --env ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379" ^

  --env ETCD_INITIAL_CLUSTER_TOKEN=%CLUSTER_TOKEN% ^

  --env ETCD_INITIAL_CLUSTER_STATE=%CLUSTER_STATE% ^

  bitnami/etcd:latest

pause


3.2多节点

SETLOCAL ENABLEEXTENSIONS


SET REGISTRY=quay.io/coreos/etcd

SET ETCD_VERSION=latest


SET DATA_DIR=/etcd-data/node01

SET CLUSTER_STATE=new

SET CLUSTER_TOKEN=etcd-cluster-test1

SET NODE_NAME=etcd-node01


docker run ^

  -d --name %NODE_NAME% ^

  --volume=%DATA_DIR%:/etcd-data ^

  --publish 2380:2380 ^

  --publish 2379:2379 ^

  --env ALLOW_NONE_AUTHENTICATION=yes ^

  --env ETCD_NAME=%NODE_NAME% ^

  --env ETCD_DATA_DIR=%DATA_DIR% ^

  --env ETCD_LISTEN_CLIENT_URLS=http://0.0.0.0:2379 ^

  --env ETCD_ADVERTISE_CLIENT_URLS=http://host.docker.internal:2379 ^

  --env ETCD_LISTEN_PEER_URLS=http://0.0.0.0:2380 ^

  --env ETCD_INITIAL_ADVERTISE_PEER_URLS=http://host.docker.internal:2380 ^

  --env ETCD_INITIAL_CLUSTER=etcd-node01=http://host.docker.internal:2380,etcd-node02=http://host.docker.internal:2381,etcd-node03=http://host.docker.internal:2382 ^

  --env ETCD_INITIAL_CLUSTER_TOKEN=%CLUSTER_TOKEN% ^

  --env ETCD_INITIAL_CLUSTER_STATE=%CLUSTER_STATE% ^

  bitnami/etcd:latest

pause


SETLOCAL ENABLEEXTENSIONS


SET REGISTRY=quay.io/coreos/etcd

SET ETCD_VERSION=latest


SET DATA_DIR=/etcd-data/node02

SET CLUSTER_STATE=new

SET CLUSTER_TOKEN=etcd-cluster-test1

SET NODE_NAME=etcd-node02


docker run ^

  -d --name %NODE_NAME% ^

  --volume=%DATA_DIR%:/etcd-data ^

  --publish 2381:2381 ^

  --publish 2378:2378 ^

  --env ALLOW_NONE_AUTHENTICATION=yes ^

  --env ETCD_NAME=%NODE_NAME% ^

  --env ETCD_DATA_DIR=%DATA_DIR% ^

  --env ETCD_LISTEN_CLIENT_URLS=http://0.0.0.0:2378 ^

  --env ETCD_ADVERTISE_CLIENT_URLS=http://host.docker.internal:2378 ^

  --env ETCD_LISTEN_PEER_URLS=http://0.0.0.0:2381 ^

  --env ETCD_INITIAL_ADVERTISE_PEER_URLS=http://host.docker.internal:2381 ^

  --env ETCD_INITIAL_CLUSTER=etcd-node01=http://host.docker.internal:2380,etcd-node02=http://host.docker.internal:2381,etcd-node03=http://host.docker.internal:2382 ^

  --env ETCD_INITIAL_CLUSTER_TOKEN=%CLUSTER_TOKEN% ^

  --env ETCD_INITIAL_CLUSTER_STATE=%CLUSTER_STATE% ^

  bitnami/etcd:latest

pause


SETLOCAL ENABLEEXTENSIONS


SET REGISTRY=quay.io/coreos/etcd

SET ETCD_VERSION=latest


SET DATA_DIR=/etcd-data/node03

SET CLUSTER_STATE=new

SET CLUSTER_TOKEN=etcd-cluster-test1

SET NODE_NAME=etcd-node03


docker run ^

  -d --name %NODE_NAME% ^

  --volume=%DATA_DIR%:/etcd-data ^

  --publish 2382:2382 ^

  --publish 2377:2377 ^

  --env ALLOW_NONE_AUTHENTICATION=yes ^

  --env ETCD_NAME=%NODE_NAME% ^

  --env ETCD_DATA_DIR=%DATA_DIR% ^

  --env ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2377" ^

  --env ETCD_ADVERTISE_CLIENT_URLS="http://host.docker.internal:2377" ^

  --env ETCD_LISTEN_PEER_URLS="http://0.0.0.0:2382" ^

  --env ETCD_INITIAL_ADVERTISE_PEER_URLS="http://host.docker.internal:2382" ^

  --env ETCD_INITIAL_CLUSTER=etcd-node01=http://host.docker.internal:2380,etcd-node02=http://host.docker.internal:2381,etcd-node03=http://host.docker.internal:2382 ^

  --env ETCD_INITIAL_CLUSTER_TOKEN=%CLUSTER_TOKEN% ^

  --env ETCD_INITIAL_CLUSTER_STATE=%CLUSTER_STATE% ^

  bitnami/etcd:latest

pause


需要注意的是,Docker环境下,如果要本机访问,不能够使用127.0.0.1,Docker其实就是一个Linux虚拟机,所以如果要本机容器之间进行访问的话,那么就得用host.docker.internal来替换127.0.0.1,或者是创建一个网桥.

最后

以上就是每日一库为你收集整理的每日一库:etcd在Windows下的单机部署的全部内容,希望文章能够帮你解决每日一库:etcd在Windows下的单机部署所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(747)

评论列表共有 0 条评论

立即
投稿
返回
顶部