服务网格Kuma改进策略处理与调试体验

Kuma 2.1 版本发布:改进策略与更新用户界面

Kuma 是一款基于 Envoy 的开源多区域服务网格技术,适用于容器、Kubernetes 和虚拟机。最新发布的 2.1 版本在策略匹配和用户界面(UI)方面进行了显著改进。

改进的策略匹配系统

Kuma 2.1 版本进一步优化了策略匹配系统,延续了 2.0 版本引入的 targetRef 系统。该系统提供了更灵活的策略定义方式,灵感来源于 Kubernetes Gateway API。新的策略系统允许在计算并将配置推送到 Envoy 数据平面之前,按照正确的优先级规则合并策略。

targetRef 代表了在网格中运行的逻辑数据平面代理组。它提供了四种不同级别的选择器,分别为 MeshMeshSubsetMeshServiceMeshServiceSubset。这些选择器可以用于指定受影响的代理子集,或者在 FromTo 中声明应用于入站或出站流量的配置子集。

以下是一个策略的示例配置:

type: ExamplePolicy
name: my-example
mesh: default
spec:
  targetRef:
    kind: Mesh
  to:
    - targetRef:
        kind: Mesh
      default: # 应用于出站流量的配置
        key: value
  from:
    - targetRef:
        kind: Mesh
      default: # 应用于入站流量的配置
        key: value

新一代策略的更新

2.1 版本将之前未更新的策略迁移到新的模型。例如,MeshRetry 策略现在可以用于处理请求失败时的重试操作。以下示例展示了在 HTTP 500 错误代码时最多重试 10 次,并定义了回退间隔:

apiVersion: kuma.io/v1alpha1
kind: MeshRetry
metadata:
  name: web-to-backend-retry-http
  namespace: kuma-system
  labels:
    kuma.io/mesh: default # 可选,默认为 `default`
spec:
  targetRef:
    kind: MeshService
    name: web
  to:
    - targetRef:
        kind: MeshService
        name: backend
      default:
        http:
          numRetries: 10
          backOff:
            baseInterval: 15s
            maxInterval: 20m
          retryOn:
            - "5xx"

用户界面的改进

Kuma 2.1 版本还引入了改进的用户界面,包括简化的导航和整体外观的提升。现在可以通过名称或标签等元数据字段进行过滤,并且可以组合这些字段进行更高级的搜索。

此外,调试功能也得到了增强。现在可以查看每个数据平面代理的完整 XDS 配置,并支持使用正则表达式搜索来检查配置转储信息。

Kuma 中的新调试界面/filters:no_upscale()/news/2023/02/kuma-policy-handling/en/resources/1kuma_2_1_xds_dump-1675996638637.png)

开源与资源

Kuma 是开源的,遵循 Apache-2.0 许可。更多关于 2.1 版本的详细信息可以在 Kuma 博客发布说明 中找到。此外,还提供了 升级指南 以帮助用户顺利升级到新版本。

阅读 23
0 条评论