使用第 7 層功能

藉由將航點 Proxy 新增至流量流程,您可以啟用更多 Istio 的功能。航點是使用 Kubernetes Gateway API 設定的。

路由和原則附加

Gateway API 以附加的方式定義物件(例如路由和閘道)之間的關係。

  • 路由物件(例如 HTTPRoute)包含一種方式來參考其想要附加到的資源。
  • 原則物件被視為 metaresources:一種以標準方式增強目標物件行為的物件。

下表顯示為每個物件設定的附加類型。

流量路由

部署航點 Proxy 後,您可以使用以下流量路由類型

名稱功能狀態附加
HTTPRouteBetaparentRefs
TLSRouteAlphaparentRefs
TCPRouteAlphaparentRefs

請參閱流量管理文件,以了解可以使用這些路由實作的功能範圍。

安全性

若未安裝航點 (waypoint),您僅能使用第 4 層安全策略。透過新增航點,您即可存取以下策略:

名稱功能狀態附加
AuthorizationPolicy (包含第 7 層功能)BetatargetRefs
RequestAuthenticationBetatargetRefs

授權原則的考量

在環境模式 (ambient mode) 中,授權策略可以是目標式 (用於 ztunnel 強制執行) 或附加式 (用於航點強制執行)。若要將授權策略附加到航點,它必須具有一個 targetRef,該 targetRef 參照該航點,或參照使用該航點的服務。

ztunnel 無法強制執行第 7 層策略。如果一個具有符合第 7 層屬性的規則的策略,其目標是對象是使用工作負載選擇器(而非使用 targetRef 附加),因而由 ztunnel 強制執行,則該策略將會失效並安全地變成 DENY 策略。

請參閱第 4 層策略指南以獲取更多資訊,包括何時將策略附加到航點以用於僅限 TCP 的使用案例。

可觀察性

完整的Istio 流量指標集由航點代理程式匯出。

擴充

由於航點代理程式是 Envoy 的部署,因此在 邊車模式中可用的 Envoy 擴充機制也可用於航點代理程式。

名稱功能狀態附加
WasmPluginAlphatargetRefs
EnvoyFilterAlphatargetRefs

閱讀更多關於如何使用 WebAssembly 外掛程式擴充航點的資訊

擴充配置被 Gateway API 定義視為策略。

範圍路由或原則

路由或策略的範圍可以設定為適用於所有通過航點代理程式的流量,或僅適用於特定服務。

附加到整個航點 Proxy

要將路由或策略附加到整個航點,使其適用於所有註冊使用它的流量,請根據類型將 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
此資訊對您有幫助嗎?
您有任何改進建議嗎?

感謝您的回饋!