HashiCorp Consul 增强 Envoy 集成,新增调试工具

HashiCorp 发布 Consul 1.15 版本

HashiCorp 发布了 Consul 1.15 版本,该版本新增了多项功能,旨在改善与 Envoy 的交互以及服务网格平台中的问题排查体验。主要更新包括 Envoy 访问日志的增强、Consul Envoy 扩展的引入,以及新增的服务间故障排查工具。

主要更新内容

1. Consul Envoy 扩展系统

  • 背景:在之前的版本中,修改 Envoy 配置以使其与 Consul 兼容需要使用“逃生舱口”机制,这要求用户了解 Consul 如何命名 Envoy 资源,操作复杂。
  • 新功能:Consul 1.15 引入了新的扩展系统,允许操作员在不自定义 Consul 二进制文件的情况下修改由 Consul 生成的 Envoy 资源。扩展系统支持添加、删除或修改 Envoy 的监听器、路由、集群和端点。
  • 支持扩展:目前支持的扩展包括 Lua 和 AWS Lambda。
  • 配置方式:通过 EnvoyExtensions 字段进行配置,建议在 service-defaults 配置项中启用。

2. Envoy 访问日志管理

  • 背景:在之前的版本中,启用 Envoy 访问日志需要通过“逃生舱口”机制调整引导配置。
  • 新功能:Consul 1.15 通过配置条目和 CRDs 集中管理访问日志,简化了服务网格中所有代理的日志启用和禁用操作。
  • 日志输出配置:日志可以配置为输出不同的请求属性,并输出到标准输出管道或文件中。例如,可以通过 proxy-defaults 配置条目启用日志:

    Kind      = "proxy-defaults"
    Name      = "global"
    AccessLogs {
      Enabled = true
      Type = "stdout"
    }

3. 服务间故障排查工具

  • 新功能:Consul 1.15 引入了内置的服务间故障排查工具,该工具会验证上游和下游代理的 Envoy 配置,适用于虚拟机和 Kubernetes 环境。
  • 检查项:工具运行时,会执行多项检查,包括验证上游服务是否存在、检查主机是否健康、检查过滤器是否影响上游服务、验证证书颁发机构或服务是否已过期等。
  • 示例命令:在 Kubernetes 环境中排查服务间问题时,可以使用以下命令:

    consul-k8s troubleshoot proxy -pod frontend-767ccfc8f9-6f6gx -upstream-ip 10.4.6.160

4. 速率限制支持

  • 背景:Consul 1.14 版本引入了 Consul Dataplane,取消了在 Kubernetes 中部署 Consul 客户端代理的需求,但这也移除了 Consul 客户端提供的速率限制支持。
  • 新功能:Consul 1.15 在服务器端增加了速率限制支持,包括为每个 Consul 服务器设置的全局读写操作限制,以及达到限制时应用的模式。
  • 模式选项:模式可以是 enforcing(强制执行,拒绝超过配置速率的请求)、permissive(允许请求但生成指标和日志)或 disabled(禁用速率限制)。

总结

Consul 1.15 版本通过引入 Envoy 扩展系统、增强访问日志管理、新增服务间故障排查工具以及支持速率限制,进一步提升了服务网格的操作性和可维护性。更多详细信息可参考 HashiCorp 博客Consul 文档

阅读 28
0 条评论