云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

阿里云_pycharm百度云_评分榜

小七 141 0

HashiCorp Nomad 0.12中的consur Connect本机任务

随着nomad0.12的发布,Nomad现在支持运行consulconnect本地任务!去年10月,nomadv0.10首次推出了使用consulconnect运行任务的支持。通过使用像特使这样的侧车代理,Nomad任务能够快速、安全地与领事服务网的其他组件进行通信。现在,通过对Connect native的支持,Nomad用户可以直接从他们的应用程序中使用Connect特性。»概述consur Connect native是应用程序加入consur服务网格的一种方式,而不需要sidecar服务。应用程序嵌入了一个库,能够管理与其他支持连接的服务的连接,而不是依赖于sidecar来管理服务网格的网络细节。将应用程序实现为Connect native服务提供了一些重要的好处。使用此功能,操作员可以期望减少集群范围内资源的总体开销。虽然像特使这样的代理旨在提高效率,但它们仍然会消耗大量的计算和内存资源。例如,每个启用连接的Nomad任务都需要它自己的sidecar代理实例。当分布在整个集群中时,额外的资源消耗确实会增加!使用connectnative,加入服务网格的应用程序只需要导入一个小库,不需要额外的资源。那些组成Nomad作业的人在部署Connect native任务时将享受简化的任务配置。虽然Nomad在使用sidecar时尽力启用合理的默认设置,但是没有什么比不运行sidecar更容易配置的了。Connect本机服务只需要指示它们的底层Nomad任务。游牧民和执政官负责剩下的事。»任务配置对于Nomad作业规范中在组级别定义的Connect节的服务,有一个新的本机参数可用。当设置为true时,Nomad了解配置的任务是Connect native服务的实现。如果组中只有一个任务,则不需要设置任务参数。连接{原生=真}与使用sidecar代理不同,在jobspec中不需要描述任务将连接到的上游。Connect native使应用程序能够引用CONSUR DNS名称,而无需实际配置CONSUR DNS。例如,要连接到名为myapp的服务,客户端将使用connect native库发出请求,以:https://myapp.connect.consul/当与启用TLS和/或ACL的CONSUR通信时,可以在任务上设置环境变量,以提供建立安全连接所需的信息。HashiCorp提供的Connect库理解consur自己熟悉的相同环境变量,例如。领事馆地址执政官HTTP_令牌吕·卡塞特领事领事客户证书执政官客户密钥»Nomad客户端配置在TLS中使用consur-enabled时,Nomad客户机尝试通过选择性地与Connect native任务共享consult-TLS配置来提供帮助。证书被复制到任务分配中,并在任务运行时环境中设置使用它们的标准conver环境变量。可以通过在Nomad agent consur节中设置share\u ssl参数来配置此行为。启用consur acl时,Nomad不共享其consur令牌,而是代表Connect native任务自动生成consur服务标识令牌,并通过consur_HTTP_token环境变量提供。执政官{share_ssl=true}»连接本机库为了使应用程序Connect为本机,它需要使用一个库来自动处理Connect服务mesh网络。HashiCorp为Go应用程序提供了一个高质量的参考实现。其他语言可以通过遵循Connect文档中提供的指导来实现它们自己的语言。简而言之,Connect库应该取代标准库的使用http.TLSConfig服务器的结构,以及http.客户端客户端的结构。这些组件将被自动网络配置的连接感知替代品所取代。下面的示例代码片段建立了一个在Connect服务网格中工作的HTTPS服务器。服务,:=connect.NewService服务("myserver",consultclient)(&http服务器{地址:"0.0.0.0",TLS配置:service.ServerTLSConfig(),处理程序:Handler(),}).ListendServetls(","")NewService方法实例化一个服务对象,可以从该对象派生其他Connect本机组件。这里的consulClient参数只是普通converhttpapi客户机的一个实例。注意listendservetls通常需要设置certFile和keyFile参数。在这里,它们是空的,因为这些证书将由特殊的TLSConfig结构自动管理,该结构实现TLSConfig.证书以及TLSConfig.GetCertificate专门用于连接服务网格。同样,下面的示例代码片段建立了一个在Connect服务网格上工作的HTTPS客户机。服务,:=connect.NewService服务("我的客户",咨询客户)客户:=服务.HTTPClient()从这里看,实例化的客户机与标准的HTTP客户机库非常相似,只是它用于连接支持连接的服务。例如,使用内置的consur DNS功能向另一个Connect服务发出GET请求。响应,:=客户,快("https://myserver.connect.consul/")这是在两个Connect本机应用程序之间建立连接所需的全部内容。当然,Connect native任务也可以连接到任何其他consur服务mesh服务。这一切都管用!»例子以下作业规范同时包含Connect native API服务和HTTP前端服务。如果consur、Nomad和Docker已经配置好了,这个开源示例可以运行。作业"cn演示"{数据中心=dc1"]"发电机"组{网络{端口"api"{}}服务{name="uuid api"port="${NOMAD_port_api}"连接{原生=真}}任务"生成"{driver="docker"配置{image="哈希目录/uuid-api:v3"network_mode="主机"}环境{BIND="0.0.0.0"PORT="${NOMAD_PORT_api}"}}}"前端"组{网络{端口"http"{静态=9800}}服务{name="uuid-fe"端口="9800"连接{原生=真}}任务"前端"{driver="docker"配置{image="哈希代码/uuid fe:v3"network_mode="主机"}环境{上游="uuid api"BIND="0.0.0.0"端口="9800"}}}}您可以通过将其另存为connect来运行此示例-原生.nomad运行命令,$CONSUR代理-开发$sudo nomad代理-dev connect$nomad作业运行连接-原生.nomad一旦运行,前端服务将在运行该服务的节点的端口9800上可用。在后台,前端服务连接到API生成器服务,以便根据需要为每个请求检索新的UUID。每个服务都是本地连接,不需要边车来建立安全连接。»局限性特使侧车代理启用的一些功能无法连接本机任务。例如,consur可以配置特使sidecar来创建公开路径,允许不安全的流量通过特定的HTTP路径。一个常见的用例是允许converhttp检查处理Connect任务。Connect-native等效方法是在普通的、非安全的HTTP服务器侦听器上手动建立这样的HTTP端点。»结论在这篇博文中,我们分享了Nomad的consur Connect本机集成的概述,以及如何使用它连接支持非sidecar的服务,以便与consur服务网格交互。使用这种集成,作业规范作者可以在Nomad上运行他们的Connect-native任务,只需要额外的一行配置。有关更多信息,请参阅concur Connect本机文档。有关Nomad的更多信息,请访问我们的文档