本文介绍了在 Windows 10 上基于 Docker 搭建 Consul 多数据中心集群的步骤,包括 Consul 镜像的拉取和容器的创建,每个数据中心对应服务端节点和客户节点的创建,节点之间相互加入组成集群,数据中心之间进行关联。多数据中心集群建立之后,通过 Consul 提供的 WEB UI 可以对集群中每个节点健康状况和服务的监控。最后列出了几个常用的命令,用于查看数据中心和节点的状态,以及对节点进行一些操作。
1 准备工作
1.1 环境说明
操作系统:Windows 10
Docker:V18.06.1-ce, build e68fc7a
Consul:V1.2.2
1.2 准备环境
1.2.1 安装 Docker
在 Windows 10 中下载 Docker 并进行安装,安装过程请参考其他教程。
注意:
1、请确认你的 Windows 10 支持虚拟化(CPU 支持 VMX 指令集);
2、后面所述的集群搭建过程中,有些步骤不适用于其他版本的 Windows 系统,即使你安装的是 Docker Toolbox;
1.2.2 拉取 Consul 镜像
Docker 安装成功后,我们使用 Windows PowerShell 来拉取 Consul 镜像,你也可以使用其他任何命令行工具。
docker pull consul
2 搭建数据中心(dc1)
2.1 节点1
docker run -d -p 8500:8500 --name node1 consul agent -server -bootstrap-expect 3 -data-dir=/tmp/consul -client="0.0.0.0" -ui
启用 WEB UI,并将端口映射到 8500,方便通过 WEB 的方式查看群集状态,默认数据中心为 dc1。
为了后续创建的节点能够加入到该节点,我们先获取节点 node1 的 IP 地址并绑定到 JOIN_IP 变量:
JOIN_IP="$(docker inspect -f '{
{.NetworkSettings.IPAddress}}' node1)"
上述命令在 Windows 10 的 PowerShell 下运行时会报以下错误:
PS C:\Users\Administrator> JOIN_IP="$(docker inspect -f '{
{
.NetworkSettings.IPAddress}}' node1)"
JOIN_IP=$(docker inspect -f '{
{
.NetworkSettings.IPAddress}}' node1) : 无法将“JOIN_IP=$(docker inspect -f '{
{
.NetworkSe
ttings.IPAddress}}' node1)”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路
径正确,然后再试一次。
所在位置 行:1 字符: 1
+ JOIN_IP="$(docker inspect -f '{
{
.NetworkSettings.IPAddress}}' node1)"
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (JOIN_IP=$(docke...dress}}' node1):String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
我们直接使用以下命令查看 node1 的 IP 地址:
docker inspect -f '{
{.NetworkSettings.IPAddress}}' node1
PS C:\Users\Administrator> docker inspect -f '{
{.NetworkSettings.IPAddress}}' node1
172.17.0.2
2.2 节点2
docker run -d --name node2 consul agent -server -join 172.17.0.2
如果 JOIN_IP 绑定成功,则可以使用以下命令创建:
docker run -d --name node2 consu

最低0.47元/天 解锁文章
2766

被折叠的 条评论
为什么被折叠?



