我是 Docker 和 Consul 的新手,我正在尝试了解容器化应用如何将 Consul 用于服务注册表和 KV 对配置管理(“配置”)。
我的理解是我可以:
myvm01.example.com(一个 Ubuntu 虚拟机)上启动三个 Docker-Consul 容器(从而形成一个集群/仲裁);那么myvm02.example.com(另一个 Ubuntu VM)上运行我的应用容器。首先,如果我对 Docker 和 Consul(无注册器)的正常/正确使用有任何误解,请先纠正我!
假设我或多或少是正确的,我最近偶然发现了 Registrator我现在更加困惑。 Registrator 似乎是您的应用容器和您的 Consul(或您使用的任何注册表)服务器之间的一些中间人。
阅读他们的快速入门教程后,听起来就像你应该做的是:
myvm01.example.com我的担忧:
最佳答案
Is my understanding here correct or way off base? If so, how?
在我看来,让所有集群/仲裁成员在同一个虚拟机中运行并不是一个好的解决方案。如果您将其用于开发或测试或其他您不太关心可靠性但不用于生产的东西,那还不错。
一旦您的 VM 死机,您将失去创建集群所拥有的所有优势。更重要的是,您可以丢失 K/V 存储中的所有数据,因为您在 docker 容器中运行 Consul 服务器,应该额外配置为在运行之间共享配置。
至于其他的,我的看法和你一样。
What is actually gained by the addition of Registrator.
在我看来,最主要的是,您不必在运行的每个容器中都提供 Consul Agent 的实例。并且您运行的带有镜像的容器只负责它们的主要功能,而不是在某处注册自己。您可以简单地拉取一个镜像并使用它运行一个容器,以使其服务可用,而无需进行额外的工作。
Will I still be able to leverage Consul's KV config service through Registrator?
很遗憾,没有。至少,当我们正在寻找一些东西来进行服务发现和配置管理时,我们没有找到以这种方式使用它的解决方案。我们得出的结论是,Registrator 不是 K/V 存储的代理,仅用于自动化服务发现。所以你必须使用其他一些逻辑来访问 consul 的 K/V 存储。
更新:此外,这里有 2 篇文章:"Automatic Docker Service Announcement with Registrator"和 "Automatic container registration with Consul and Registrator" ,我发现了解注册器在服务发现过程中的角色很有用。
关于Docker、Registrator 和 Consul 示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32745275/
1.错误信息:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:requestcanceledwhilewaitingforconnection(Client.Timeoutexceededwhileawaitingheaders)或者:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:TLShandshaketimeout2.报错原因:docker使用的镜像网址默认为国外,下载容易超时,需要修改成国内镜像地址(首先阿里
//1.验证返回状态码是否是200pm.test("Statuscodeis200",function(){pm.response.to.have.status(200);});//2.验证返回body内是否含有某个值pm.test("Bodymatchesstring",function(){pm.expect(pm.response.text()).to.include("string_you_want_to_search");});//3.验证某个返回值是否是100pm.test("Yourtestname",function(){varjsonData=pm.response.json
我对图像处理完全陌生。我对JPEG内部是什么以及它是如何工作一无所知。我想知道,是否可以在某处找到执行以下简单操作的ruby代码:打开jpeg文件。遍历每个像素并将其颜色设置为fx绿色。将结果写入另一个文件。我对如何使用ruby-vips库实现这一点特别感兴趣https://github.com/ender672/ruby-vips我的目标-学习如何使用ruby-vips执行基本的图像处理操作(Gamma校正、亮度、色调……)任何指向比“helloworld”更复杂的工作示例的链接——比如ruby-vips的github页面上的链接,我们将不胜感激!如果有ruby-
我已经有很多两个值数组,例如下面的例子ary=[[1,2],[2,3],[1,3],[4,5],[5,6],[4,7],[7,8],[4,8]]我想把它们分组到[1,2,3],[4,5],[5,6],[4,7,8]因为意思是1和2有关系,2和3有关系,1和3有关系,所以1,2,3都有关系我如何通过ruby库或任何算法来做到这一点? 最佳答案 这是基本Bron–Kerboschalgorithm的Ruby实现:classGraphdefinitialize(edges)@edges=edgesenddeffind_maximum_
很高兴看到google代码:google-api-ruby-client项目,因为这对我来说意味着Ruby人员可以使用GoogleAPI-s来完善代码。虽然我现在很困惑,因为给出的唯一示例使用Buzz,并且根据我的实验,Google翻译(v2)api的行为必须与google-api-ruby-client中的Buzz完全不同。.我对“Explorer”演示示例很感兴趣——但据我所知,它并不是一个探索器。它所做的只是调用一个Buzz服务,然后浏览它已经知道的关于Buzz服务的事情。对我来说,Explorer应该让您“发现”所公开的服务和方法/功能,而不一定已经知道它们。我很想听听使用这个
在他们的网站上找不到任何内容。我主要只是想看看哪个值得一试(当然是RIA)。谢谢 最佳答案 SproutCoredemos 关于ruby-是否有SproutCore或Cappuccino的现场演示/示例应用程序,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/1419788/
我对自动测试的工作方式的印象(基于cucumbergithubwiki和其他在线内容)是它应该重新运行红色示例,直到它们通过。我的问题是它会重新运行规范文件中找到失败示例的所有示例,包括通过的示例。我不想浪费时间在修复失败示例的同时重新运行通过的示例。是否可以配置自动测试以便仅运行失败的示例? 最佳答案 您需要rspec-retrygem。以下是文档中有关如何实现它的一些示例:将它应用到覆盖整个测试套件的configureblock中...RSpec.configuredo|config|config.verbose_retry=t
我正在尝试使用docker运行一个Rails应用程序。通过github的sshurl安装的gem很少,如下所示:Gemfilegem'swagger-docs',:git=>'git@github.com:xyz/swagger-docs.git',:branch=>'my_branch'我在docker中添加了keys,它能够克隆所需的repo并从git安装gem。DockerfileRUNmkdir-p/root/.sshCOPY./id_rsa/root/.ssh/id_rsaRUNchmod700/root/.ssh/id_rsaRUNssh-keygen-f/root/.ss
我找不到任何使用Rack::Session::Cookie的简单示例,并且希望能够将信息存储在cookie中,并在以后的请求中访问它并让它过期.这些是我能找到的唯一示例:HowdoIset/getsessionvarsinaRackapp?http://rack.rubyforge.org/doc/classes/Rack/Session/Cookie.html这是我得到的:useRack::Session::Cookie,:key=>'rack.session',:domain=>'foo.com',:path=>'/',:expire_after=>2592000,:secret=
我在Heroku上构建了一个必须在Docker容器内运行的RoR应用程序。为此,我使用officialDockerfile.因为它在Heroku中很常见,所以我需要一些附加组件才能使这个应用程序完全运行。在生产中,变量DATABASE_URL在我的应用程序中可用。但是,如果我尝试其他一些使用环境变量(在我的例子中是Mailtrap)的加载项,变量不会在运行时复制到实例中。所以我的问题很简单:如何让docker实例在Heroku上执行时知道环境变量?您可能会问,我已经知道我们可以在docker-compose.yml中指定一个environment指令。我想避免这种情况,以便能够通过项目