Hashicorp 发布Consul 1.9测试版,为其服务网格平台添加了新特性。这个版本包括对意图模型的增强,以支持 Layer 7 构造、新的验证配置可视化,以及 Kubernetes 自定义资源。
随着应用程序感知意图的引入,现在可以制定支持 L7 交互的策略,包括支持基于 HTTP 请求头和 URL 路径来判断是否允许服务间通信。在以前的版本中,意图只支持 L4 交互,现在可以将 L4 和 L7 混合成一个意图声明:
上面的示例定义了“api”的公共目标意图。第一个意图拒绝来自“hackathon-project”的连接,同时允许来自“web”的连接。对于“nightly-reconciler”,只允许使用 POST 方法从指定路径发送的 HTTP 流量。
传统上,Consul 的调试和故障排除需要依赖错误日志、命令行输出和发送遥测到外部系统。Consul 缺乏一种简单的方法来可视化服务网格拓扑,从而简化故障排除。这个版本添加了一个新的Topology选项卡,用于展示拓扑关系图以及关键的服务网格指标,如请求、错误率和时间。维护和监控操作指南提供了更多的细节和最佳实践。
在拓扑图中可以看到网格内服务之间的交互。两个服务之间的明确拒绝将显示为带 x 的红线。我们可以通过拓扑图将拒绝调整为允许。
Consul UI 的新拓扑选项卡显示被拒绝的连接(感谢:Hashicorp)
为了改善 kubernets 优先的体验,该版本将引入对自定义资源定义的支持,可通过 kubernets 风格的对象来简化 Consul 的配置。现在可以通过 CRD 管理服务配置。在发布时,以下的配置项可以作为 CRD:
proxy-defaults——控制代理配置;
service-defaults——为给定服务的所有实例配置默认值;
service-resolver——匹配带有特定 Connect 上游请求的服务实例;
service-router——定义向何处发送 L7 流量(基于 HTTP 路由);
service-splitter——定义如何基于百分比划分 HTTP 路由请求;
service-intentions——定义服务与服务之间的交互限制。
作为与 Kubernetes 集成的一个额外改进,Consul 现在可以通过它的就绪状态探针来检测 Kubernetes 的健康状态。这样就可以根据Consul的运行状况检查和原生 Kubernetes 的运行状况检查来决定流量应该流向哪里。
流的引入提高了 Consul 大规模部署时的 CPU 和网络带宽使用率。在阻塞查询的更新通知方面做出了重大的架构改进。服务健康检查HTTP端点提供了流功能,可以通过配置标志和缓存的 URL 参数来启用。未来的版本将有更多的端点提供流功能。
Consul 1.9 现已发布测试版。Hashicorp 不保证向前兼容,因此建议将其安装在允许发生故障的集群中。更多的发布细节可以查看变更日志。
原文链接:
HashiCorp Enhances Consul with Topology Maps and Improved Kubernetes Integrations
评论