首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Consul 1.9测试版发布:新增拓扑图和改进的Kubernetes集成

Hashicorp 发布Consul 1.9测试版,为其服务网格平台添加了新特性。这个版本包括对意图模型的增强,以支持 Layer 7 构造、新的验证配置可视化,以及 Kubernetes 自定义资源。

随着应用程序感知意图的引入,现在可以制定支持 L7 交互的策略,包括支持基于 HTTP 请求头和 URL 路径来判断是否允许服务间通信。在以前的版本中,意图只支持 L4 交互,现在可以将 L4 和 L7 混合成一个意图声明:

代码语言:javascript
复制
Kind = "service-intentions"
Name = "api"
Sources = [
  {
    Name   = "hackathon-project"
    Action = "deny"
  },
  {
    Name   = "web"
    Action = "allow"
  },
  {
    Name = "nightly-reconciler"
    Permissions = [
      {
        Action = "allow"
        HTTP {
          PathExact = "/v1/reconcile-data"
          Methods   = ["POST"]
        }
      }
    ]
  }
]

复制代码

上面的示例定义了“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

  • 发表于:
  • 本文为 InfoQ 中文站特供稿件
  • 首发地址https://www.infoq.cn/article/DUPT3ZD1N9LqVbF6gdQV
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券