HashiCorp 发布 Consul 1.5.0 :支持 L7 可观察性及集中式配置

Hashicorp发布了Consul 1.5.0版本,Consul是他们的Service Mesh应用程序和键-值存储。该版本首次发布了Consul新路线图上的功能,包括:通过Envoy支持L7可观察性和负载均衡,集中式配置以及对可信第三方应用程序的ACL身份验证支持。

此版本中,通过Envoy的集成,Consul Connect现在支持L7可观察性和负载均衡。 Connect是在1.4版本添加到Consul中的,它利用自动TLS加密和基于身份的授权,提供安全的服务到服务通信。和任何Service Mesh一样,使用Connect时,所有进出服务的流量都通过以Connect作为控制平面的side-car代理进行流动。它允许Connect响应工作负载和网络的变更。这些代理构成一个数据平面,该数据平面提供一致的应用程序度量源,可以将其发送到时序数据库或其他应用程序监控软件。 Consul Connect还允许配置分布式跟踪。现在,可以为第4层和第7层HTTP和gRPC配置度量配置和分布式跟踪。

1.5版本还包含了包括过期时间、角色及服务标识映射在内的ACL增强功能。这些改进使服务能够使用第三方身份获取有效的ACL令牌。根据Consul团队的说法,“用户设置时的复杂性主要体现在,如何为具有正确访问权限的服务创建和分发有效的ACL令牌,以便在服务目录中注册自己”。通过引入ACL身份认证方法,应用程序可以使用受信的第三方自动获取具有正确权限的ACL令牌。此版本包含首个认证方法, 它使用Kubernetes服务账户来处理在Kubernetes上运行的服务。

此版本还旨在解决配置与应用程序部署的耦合问题。使用现有模型,配置由本地Consul代理管理,这意味着配置更改需要重新部署应用程序。通过这个版本,现在可以在一个集中的位置管理配置,让代理在Consul服务器中监听配置更改。更新配置后,引用该配置的所有代理将自动重新加载其设置,而无需重新部署。

图表描述了集中式Consul服务的工作流程(来源:HashiCorp

例如,要添加集中配置开启用于度量的StatsD收集器,可以添加以下内容:

kind = "proxy-defaults"
name = "global"
config {
    envoy_dogstatsd_url = "udp://127.0.0.1:9125"
}

假设这是在一个名为policy.hcl 的文件中,可以使用以下命令将其写入Consul服务器:consul config write proxy.hcl。 该写命令还支持-cas选项(比较和转换),以防止覆盖其他修改。

类型(kind)支持两个值:proxy-defaults和service-defaults。 proxy-defaults允许为跨Connect代理配置的所有服务,配置全局默认值。目前仅支持一个全局条目。service-defaults控制服务的默认全局值,例如其协议。

Kubernetes集成也将更新,以支持上述新功能。这包括L7可观察性和新的ACL认证方法。这些更新将在Consul 1.5.0发布后不久发布。有关此领域的完整变更列表,请查看consul-k8sconsul-helm的变更日志。

此次发布的版本还包括跨多个ConsulHTTP API的过滤支持。它允许添加查询参数,以便使用filter参数将过滤表达式传递到API调用中:

curl -G <path> --data-urlencode 'filter=<filter expression>'

这些过滤器表达式以纯文本格式编写,并支持布尔逻辑、匹配运算符和括号。

根据Consul的路线图,Consul的未来版本应该会包括基于HTTP路径的路由和流量转移特性。通过基于HTTP路径的路由,Consul将能够基于HTTP路径或HTTP头将流量路由到不同的上游服务。这通过第7层路由扩展到对当前的第4层网络支持。流量转移特性将允许一定比例的流量路由到服务的特定实例或完全不同的服务。这允许通过仅更新服务的一部分并将一小部分流量定向到更新的实例中,从而对新版本的软件进行金丝雀测试

有关此版本的更多详细信息及其他改进,请查看HashiCorp博客上的官方公告变更日志提供了该版本的完整变更列表。Consul可以从HashiCorp网站免费下载

查看英文原文HashiCorp Releases Consul 1.5.0 With Layer 7 Observability and Centralized Configuration

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章