📜  领事-使用微服务

📅  最后修改于: 2020-11-01 03:05:20             🧑  作者: Mango


在本章中,我们将了解微服务如何与Consul一起工作。我们还将学习以下组件如何影响领事。

  • 使用码头工人
  • 服务发现的建筑注册商
  • 使用rkt和Nomad

现在让我们详细讨论每个。

使用Docker

开始之前,请不要在生产中使用此设置,因为它仅用于演示目的。 Docker是基于容器的服务,使用它我们可以轻松地部署我们的应用程序。对于使用Consul,我们将在以下链接–0中使用该图像

https://hub.docker.com/r/progrium/consul/

假定您的系统已安装并正确配置了Docker。让我们尝试通过运行以下命令从Docker集线器中提取映像-

$ docker pull progrium/consul

输出将如以下屏幕快照所示。

拉动程序

我们将通过以下方式发布一些带有端口的接口(在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

输出将如以下屏幕快照所示。

拉制

您还可以使用-为领事启用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

为了在不同节点上的各种docker容器上使用consul,我们可以在不同节点上运行以下命令-

在Node1上

$ docker run -d --name node1 -h node1 progrium/consul -server -bootstrap-expect 3

其中, -bootstrap-expect 3表示领事服务器将等到连接了3个对等方之后,才能进行自我引导并成为工作群集。

在继续之前,我们需要通过检查容器来获取容器的内部IP。为了便于使用,我们将声明$ JOIN_IP

$ JOIN_IP = "$(docker inspect -f '{{.NetworkSettings.IPAddress}}' node1)"

在Node2上

因此,让我们启动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

输出将如以下屏幕快照所示。

滑翔机实验室

$ docker run -d \
--name = registrator \
--net = host \
--volume = /var/run/docker.sock:/tmp/docker.sock \
gliderlabs/registrator:latest \
 consul://localhost:8500

输出将如以下屏幕快照所示。

滑翔机实验室

您收到的输出是您刚刚启动的Docker容器的ID。您可以使用以下命令检查容器是否正在运行:

$ docker ps -a

他的输出将如以下屏幕截图所示。

码头工人ps

您还可以使用以下命令查看Registrator的日志。

$ docker logs registrator

使用rkt和Nomad

rkt是另一种基于容器的服务,您可以在环境中使用它。它由CoreOS构建。构建rkt的主要原因是为了提高安全性,这是Docker在2013-14年度仍处于开发阶段时的危机问题之一。

至于Consul,我们可以使用Rkt Registrator与Consul一起进行服务发现。 rkt涵盖的该特定注册器项目正在开发中,不建议用于生产级别

您可以通过转到rkt的路径并运行以下命令来检查rkt是否已安装。

$ ./rkt

您可以检查输出以检查其是否正确安装,如以下屏幕截图所示。

Rkt注册器

要尝试rkt和Consul,请查看− https://github.com/r3boot/rkt-registrator

游牧工具

其中最常用和最喜欢的选项是游牧的工具。 Nomad是用于管理计算机集群并在计算机上运行应用程序的工具。它类似于MesosKubernetes 。默认情况下,Nomad自身包含Docker和rkt驱动程序。因此,如果您正在使用Consul寻找容器的大规模部署。游牧民族可能是一个很好的解决方案。退房-https: //www.nomadproject.io/docs/drivers/rkt.html,以获取有关Nomad的更多信息。