Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker 码头工人、登记员和领事举例_Docker_Consul - Fatal编程技术网

Docker 码头工人、登记员和领事举例

Docker 码头工人、登记员和领事举例,docker,consul,Docker,Consul,我对Docker和Concur都是新手,我试图了解集装箱化应用程序如何使用Concur进行服务注册和KV对配置管理(“配置”) 我的理解是,我可以: 创建一个运行领事服务器的映像,例如;然后 在myvm01.example.com(一个Ubuntu虚拟机)上启动三个Docker-Concur容器(从而形成集群/仲裁);然后 重构我的应用程序以使用Concur并创建运行我的应用程序和Concur代理的Docker映像,并将代理配置为在启动时加入3节点仲裁。在启动时,我的应用程序使用本地concu

我对Docker和Concur都是新手,我试图了解集装箱化应用程序如何使用Concur进行服务注册和KV对配置管理(“配置”)

我的理解是,我可以:

  • 创建一个运行领事服务器的映像,例如;然后
  • myvm01.example.com
    (一个Ubuntu虚拟机)上启动三个Docker-Concur容器(从而形成集群/仲裁);然后
  • 重构我的应用程序以使用Concur并创建运行我的应用程序和Concur代理的Docker映像,并将代理配置为在启动时加入3节点仲裁。在启动时,我的应用程序使用本地concur代理来下拉其所有配置,存储为KV对。它还引入注册/正常服务,并使用本地负载平衡工具来平衡与之集成的服务
  • 在myvm02.example.com(另一个Ubuntu虚拟机)上运行我的应用程序的容器
因此,首先,如果我对Docker和Consor(sans Registrator)的正常/正确使用有任何误解,请首先纠正我

假设我或多或少是正确的,我最近偶然发现,现在甚至更加困惑。注册者似乎是你的应用程序容器和你的领事(或任何你使用的注册)服务器之间的中间人

在阅读了他们的快速入门教程后,听起来您应该做的是:

  • 像以前一样,将我的领事群集/仲裁容器部署到
    myvm01.example.com
  • 我没有直接“停靠”我的应用程序来使用Concur,而是简单地将它与Registrator集成
  • 然后我在某处部署了一个注册器容器,并将其配置为与concur集成
  • 然后我部署我的应用程序容器。它们与注册者相结合,注册者又与领事相结合
我关注的是:

  • 我在这里的理解是正确的还是有点离谱?如果是,怎么做
  • 通过添加注册人实际获得的信息。它看起来(至少在未经培训的人看来)只不过是应用程序和服务注册中心之间的一层间接关系
  • 我仍然能够通过注册商利用领事的KV配置服务吗
我在这里的理解是正确的还是有点离谱?如果是,怎么做

在我看来,让所有集群/仲裁成员在同一个VM中运行并不是一个好的解决方案。如果您将其用于开发、测试或其他方面,您不太关心可靠性,但不关心生产,那么这并不是件坏事

一旦虚拟机死机,您将失去创建集群的所有优势。更重要的是,您可能会丢失K/V store中的所有数据,因为您正在docker容器中运行Concur服务器,应该对其进行额外配置,以便在运行之间共享配置

至于其余的,我和你看的一样

通过添加注册人实际获得的信息

在我看来,最主要的是,您不必在运行的每个容器中提供一个consur代理实例。您运行的带有映像的容器只负责它们的主要功能,而不负责在某处注册自身。您可以简单地拉取一个图像并运行一个容器,以使其服务可用,而无需进行额外的工作

我仍然能够通过注册商利用领事的KV配置服务吗

不幸的是,没有。至少,当我们在寻找能够实现服务发现和配置管理的东西时,我们没有找到这样使用它的解决方案。我们得出的结论是,Registrator不是K/V store的代理,只用于自动化服务发现。因此,您必须使用其他一些逻辑来访问领事的K/V商店

更新:此外,这里有两篇文章:而且,我发现了解注册者在服务发现过程中的角色很有用