使用第 7 層功能
藉由將航點 Proxy 新增至流量流程,您可以啟用更多 Istio 的功能。航點是使用 Kubernetes Gateway API 設定的。
路由和原則附加
Gateway API 以附加的方式定義物件(例如路由和閘道)之間的關係。
- 路由物件(例如 HTTPRoute)包含一種方式來參考其想要附加到的父資源。
- 原則物件被視為 metaresources:一種以標準方式增強目標物件行為的物件。
下表顯示為每個物件設定的附加類型。
流量路由
部署航點 Proxy 後,您可以使用以下流量路由類型
名稱 | 功能狀態 | 附加 |
---|---|---|
HTTPRoute | Beta | parentRefs |
TLSRoute | Alpha | parentRefs |
TCPRoute | Alpha | parentRefs |
請參閱流量管理文件,以了解可以使用這些路由實作的功能範圍。
安全性
若未安裝航點 (waypoint),您僅能使用第 4 層安全策略。透過新增航點,您即可存取以下策略:
名稱 | 功能狀態 | 附加 |
---|---|---|
AuthorizationPolicy (包含第 7 層功能) | Beta | targetRefs |
RequestAuthentication | Beta | targetRefs |
授權原則的考量
在環境模式 (ambient mode) 中,授權策略可以是目標式 (用於 ztunnel 強制執行) 或附加式 (用於航點強制執行)。若要將授權策略附加到航點,它必須具有一個 targetRef
,該 targetRef
參照該航點,或參照使用該航點的服務。
ztunnel 無法強制執行第 7 層策略。如果一個具有符合第 7 層屬性的規則的策略,其目標是對象是使用工作負載選擇器(而非使用 targetRef
附加),因而由 ztunnel 強制執行,則該策略將會失效並安全地變成 DENY
策略。
請參閱第 4 層策略指南以獲取更多資訊,包括何時將策略附加到航點以用於僅限 TCP 的使用案例。
可觀察性
完整的Istio 流量指標集由航點代理程式匯出。
擴充
由於航點代理程式是 Envoy 的部署,因此在 邊車模式中可用的 Envoy 擴充機制也可用於航點代理程式。
名稱 | 功能狀態 | 附加 |
---|---|---|
WasmPlugin † | Alpha | targetRefs |
EnvoyFilter | Alpha | targetRefs |
† 閱讀更多關於如何使用 WebAssembly 外掛程式擴充航點的資訊。
擴充配置被 Gateway API 定義視為策略。
範圍路由或原則
路由或策略的範圍可以設定為適用於所有通過航點代理程式的流量,或僅適用於特定服務。
附加到整個航點 Proxy
要將路由或策略附加到整個航點,使其適用於所有註冊使用它的流量,請根據類型將 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