使用七层功能

通过向您的流量流添加 waypoint 代理,您可以启用更多 Istio 的功能。 waypoint 使用 Kubernetes Gateway API 配置。

路由和策略附件

Gateway API 根据附件来定义对象(例如路由和网关)之间的关系。

  • 路由对象(例如 HTTPRoute) 包含一种引用其想要附加到的资源的方法。
  • 策略对象被视为 metaresources: 以标准方式增强目标对象行为的对象。

The tables below show the type of attachment that is configured for each object. 下表展示了为每个对象配置的附件类型。

流量路由

部署 waypoint 代理后,您可以使用以下流量路由类型:

名称功能状态附加方式
HTTPRouteBetaparentRefs
TLSRouteAlphaparentRefs
TCPRouteAlphaparentRefs

请参阅流量管理文档以查看可以使用这些路由实现的功能范围。

安全

如果没有安装航点,则只能使用四层安全策略。 通过添加航点,您可以访问以下策略:

名称功能状态附加方式
AuthorizationPolicy (包括 L7 功能)BetatargetRefs
RequestAuthenticationBetatargetRefs

鉴权策略注意事项

在 Ambient 模式下,鉴权策略可以是目标(用于 ztunnel 执行)或附加(用于 waypoint 执行)。 要将鉴权策略附加到 waypoint,它必须具有引用 waypoint 的 targetRef,或使用该 waypoint 的服务。

ztunnel 无法强制执行 L7 策略。如果使用工作负载选择器(而不是附加 targetRef) 来定位具有与 L7 属性匹配的规则的策略,从而由 ztunnel 强制执行, 则该策略将由于安全被变更为 DENY 策略而失效。

有关更多信息,请参阅 L4 策略指南, 包括何时将策略附加到仅限 TCP 用例的 waypoint。

可观测性

全套 Istio 流量指标 由 waypoint 代理导出。

扩展

由于 waypoint 代理是 Envoy 的部署, 因此在 Sidecar 模式中 Envoy 可以使用的某些扩展机制模式也可用于 waypoint 代理。

名称功能状态附加方式
WasmPluginAlphatargetRefs

阅读更多关于如何使用 WebAssembly 插件扩展 waypoint 的信息

扩展配置被 Gateway API 定义视为策略。

确定路由或策略的范围

路由或策略可以适用于穿越 waypoint 代理的所有流量,或者仅适用于特定服务。

附加到整个 waypoint 代理

要将路由或策略附加到整个 waypoint(以便它适用于所有注册使用它的流量), 请根据类型将 Gateway 设置为 parentRefstargetRefs 值。

要将 AuthorizationPolicy 策略应用于 default 命名空间中名为 default 的 waypoint,请执行以下操作:

apiVersion: security.istio.io/v1
kind: AuthorizationPolicy
metadata:
  name: view-only
  namespace: default
spec:
  targetRefs:
  - kind: Gateway
    group: gateway.networking.k8s.io
    name: default
  action: ALLOW
  rules:
  - from:
    - source:
        namespaces: ["default", "istio-system"]
    to:
    - operation:
        methods: ["GET"]

附加到特定服务

您还可以将路由附加到 waypoint 内的一个或多个特定服务。 根据需要将 Service 设置为 parentRefstargetRefs 值。

要将 reviews HTTPRoute 应用于 default 命名空间中的 reviews 服务:

apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
  name: reviews
  namespace: default
spec:
  parentRefs:
  - group: ""
    kind: Service
    name: reviews
    port: 9080
  rules:
  - backendRefs:
    - name: reviews-v1
      port: 9080
      weight: 90
    - name: reviews-v2
      port: 9080
      weight: 10
这些信息有用吗?
您是否有更多建议和改进意见?

感谢您的反馈!