使用第 7 层功能

通过将路径点代理添加到流量流中,您可以启用更多Istio 的功能。路径点使用Kubernetes 网关 API配置。

路由和策略附加

Gateway API 定义了对象(如路由和网关)之间的关系,称为“附加”。

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

下表显示了为每个对象配置的附加类型。

流量路由

部署了中转代理后,您可以使用以下流量路由类型

名称功能状态附加
HTTPRouteBetaparentRefs
TLSRouteAlphaparentRefs
TCPRouteAlphaparentRefs

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

安全

没有安装中转代理,您只能使用 第 4 层安全策略。通过添加中转代理,您可以访问以下策略

名称功能状态附加
AuthorizationPolicy(包括第 7 层功能)BetatargetRefs
请求身份验证BetatargetRefs

授权策略的注意事项

在环境模式下,授权策略可以是目标(用于 ztunnel 强制执行)或附加(用于中转代理强制执行)。为了将授权策略附加到中转代理,它必须具有一个targetRef,该targetRef 指向中转代理,或一个使用该中转代理的服务。

ztunnel 无法执行第 7 层策略。如果一个具有匹配第 7 层属性规则的策略以工作负载选择器为目标(而不是使用targetRef附加),从而由 ztunnel 强制执行,则它将以安全的方式失效,变为DENY策略。

请参阅 第 4 层策略指南,以获取更多信息,包括何时将策略附加到中转代理以用于仅 TCP 的用例。

可观测性

中转代理会导出 完整的 Istio 流量指标集

扩展

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

名称功能状态附加
WasmPluginAlphatargetRefs
EnvoyFilterAlphatargetRefs

阅读有关如何使用 WebAssembly 插件扩展中转代理的更多信息

扩展配置在 Gateway API 定义中被认为是策略。

路由或策略范围

路由或策略的范围可以是应用于穿越中转代理的所有流量,也可以是仅应用于特定服务。

附加到整个路径点代理

要将路由或策略附加到整个中转代理(以便它应用于所有注册使用它的流量),请将Gateway设置为parentRefstargetRefs值,具体取决于类型。

要将AuthorizationPolicy策略的范围限定为应用于default命名空间的default命名的中转代理

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"]

附加到特定服务

您还可以将路由附加到中转代理中的一个或多个特定服务。根据情况将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
这些信息对您有帮助吗?
您对改进有什么建议吗?

感谢您的反馈!