使用第 7 层功能
通过将路径点代理添加到流量流中,您可以启用更多Istio 的功能。路径点使用Kubernetes 网关 API配置。
路由和策略附加
Gateway API 定义了对象(如路由和网关)之间的关系,称为“附加”。
下表显示了为每个对象配置的附加类型。
流量路由
部署了中转代理后,您可以使用以下流量路由类型
名称 | 功能状态 | 附加 |
---|---|---|
HTTPRoute | Beta | parentRefs |
TLSRoute | Alpha | parentRefs |
TCPRoute | Alpha | parentRefs |
请参阅 流量管理 文档,以了解可以使用这些路由实现的功能范围。
安全
没有安装中转代理,您只能使用 第 4 层安全策略。通过添加中转代理,您可以访问以下策略
名称 | 功能状态 | 附加 |
---|---|---|
AuthorizationPolicy (包括第 7 层功能) | Beta | targetRefs |
请求身份验证 | Beta | targetRefs |
授权策略的注意事项
在环境模式下,授权策略可以是目标(用于 ztunnel 强制执行)或附加(用于中转代理强制执行)。为了将授权策略附加到中转代理,它必须具有一个targetRef
,该targetRef
指向中转代理,或一个使用该中转代理的服务。
ztunnel 无法执行第 7 层策略。如果一个具有匹配第 7 层属性规则的策略以工作负载选择器为目标(而不是使用targetRef
附加),从而由 ztunnel 强制执行,则它将以安全的方式失效,变为DENY
策略。
请参阅 第 4 层策略指南,以获取更多信息,包括何时将策略附加到中转代理以用于仅 TCP 的用例。
可观测性
中转代理会导出 完整的 Istio 流量指标集。
扩展
由于中转代理是 Envoy 的部署,因此 Sidecar 模式 中可用于 Envoy 的扩展机制也可以用于中转代理。
名称 | 功能状态 | 附加 |
---|---|---|
WasmPlugin † | Alpha | targetRefs |
EnvoyFilter | Alpha | targetRefs |
† 阅读有关如何使用 WebAssembly 插件扩展中转代理的更多信息。
扩展配置在 Gateway API 定义中被认为是策略。
路由或策略范围
路由或策略的范围可以是应用于穿越中转代理的所有流量,也可以是仅应用于特定服务。
附加到整个路径点代理
要将路由或策略附加到整个中转代理(以便它应用于所有注册使用它的流量),请将Gateway
设置为parentRefs
或targetRefs
值,具体取决于类型。
要将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
设置为parentRefs
或targetRefs
值。
要将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