Consul教程

Consul 微服务

在本章中,我们将了解微服务如何与 Consul 一起工作。我们还将了解以下组件如何影响 Consul。
使用泊坞窗 为服务发现构建注册器 使用 rkt 和 Nomad
现在让我们详细讨论每一个。

使用 Docker

在开始之前, 请不要在生产中使用此设置,因为它仅用于演示目的。 Docker 是一个基于容器的服务,我们可以使用它轻松部署我们的应用程序。为了使用 Consul,我们将使用以下链接中的图像 –0
https://hub.docker.com/r/progrium/Consul/.
假设您的系统已安装并正确配置了 Docker。让我们尝试通过运行以下命令从 Docker 集线器拉下图像-
$ docker pull progrium/consul
输出将如以下屏幕截图所示。
Pull Progrium
我们将通过以下方式发布一些接口及其端口(在 Docker 上使用-p 选项)。
8400 (RPC) 8500 (HTTP) 8600 (DNS)
此外,根据拉取的内容,我们将主机名设置为 node1。您可以使用 -h 标志将其更改为您想要的任何内容 使用您自己的一些主机名,如下所示。
$ docker run-p 8400:8400-p 8500:8500-p 8600:53/udp-h node1 progrium/consul
-server-bootstrap
输出将如以下屏幕截图所示。
Pull Made
您还可以使用-
为 Consul 启用 UI 模式
$ docker run-p 8400:8400-p 8500:8500-p 8600:53/udp-h node1 progrium/consul
-server-bootstrap-ui-dir /ui
您可以在 http://localhost:8500 上检查基于 UI 的输出。以下屏幕截图可让您更好地了解基于 UI 的输出。
UI based
为了在不同节点上的各种 docker 容器上使用 consul,我们可以在不同节点上运行以下命令-

在节点 1 上

$ docker run-d--name node1-h node1 progrium/consul-server-bootstrap-expect 3
其中, -bootstrap-expect 3 表示 consul 服务器将等待,直到有 3 个对等节点连接,然后才能自引导并成为工作集群。
在继续之前,我们需要通过检查容器来获取容器的内部 IP。为了我们的使用,案例目的,我们将声明 $ JOIN_IP
$ JOIN_IP = "$(docker inspect-f '{{.NetworkSettings.IPAddress}}' node1)"

在节点 2 上

所以,让我们启动 Node2 并使用上面给出的程序中声明的变量告诉它加入 Node1、
$docker run-d--name node2-h node2 progrium/consul-server-join $JOIN_IP

在 Node3 上

$ docker run-d--name node3-h node3 progrium/consul-server-join $JOIN_IP

为服务发现构建注册器

Registrator 通过在容器上线时检查容器来自动注册和取消注册任何 Docker 容器的服务。我们即将使用的注册器目前支持可插入的服务注册,目前包括 Consul、EtcdSkyDNS2。当我们通过网络与不同的服务交互时,强烈建议使用 Registrator。
$ docker pull gliderlabs/registrator:latest
输出将如以下屏幕截图所示。
gliderlabs
$ docker run-d \
--name = registrator \
--net = host \
--volume = /var/run/docker.sock:/tmp/docker.sock \
gliderlabs/registrator:latest \
 consul://localhost:8500
输出将如以下屏幕截图所示。
gliderlabs
您收到的输出是您刚刚启动的 Docker 容器的 ID。您可以使用以下命令检查容器是否正在运行-
$ docker ps-a
他的输出将如以下屏幕截图所示。
docker ps
您也可以使用以下命令查看Registrator的日志。
$ docker logs registrator

使用rkt和Nomad

rkt 是另一个基于容器的服务,您可以在您的环境中使用它。它由 CoreOS 构建。构建 rkt 的主要原因是为了提高安全性,这是 Docker 在 2013-14 年仍处于开发阶段时面临的危机问题之一。
对于 Consul,我们可以使用 Rkt Registrator 与 Consul 一起进行服务发现。 rkt 涵盖的这个特定注册器项目正在开发中, 不推荐用于生产级使用
您可以通过转到其路径并运行以下命令来检查 rkt 是否已安装。
$ ./rkt
您可以检查输出以检查是否正确安装,如下面的屏幕截图所示。
Rkt Registrator
要试用 rkt 和 Consul,请查看-https://github.com/r3boot/rkt-registrator.

Nomad Tool

最常用和最喜欢的选项之一是 Nomad 工具。 Nomad 是一种用于管理机器集群并在其上运行应用程序的工具。它类似于 MesosKubernetes。默认情况下,Nomad 自身包含 Docker 和 rkt 驱动程序。因此,如果您正在寻找使用 Consul 进行容器的大规模部署。 Nomad 可能是一个很好的解决方案。查看-https://www.nomadproject.io/docs/drivers/rkt.html 了解更多关于 Nomad 的信息。
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4