使用 Istio API (代管控制層) 支援的功能
本頁面說明使用 TRAFFIC_DIRECTOR
或 ISTIOD
做為控制層時,Cloud Service Mesh 支援的功能和限制,以及各項實作方式的差異。請注意,這些並非可供選擇的選項。ISTIOD
實作方式僅適用於現有使用者。
新安裝項目會盡可能使用 TRAFFIC_DIRECTOR
導入方式。
如要查看叢內控制層支援的 Cloud Service Mesh 功能清單,請參閱「使用 Istio API (叢內 istiod
控制層)」。如果不確定使用的 Cloud Service Mesh 控制層,請按照「識別控制層實作方式」一文中的操作說明,檢查控制層實作方式。
限制
限制如下:
- GKE 叢集必須位於支援的區域。
- GKE 版本必須是支援的版本。
- 系統僅支援「環境」中列出的平台。
- 系統不支援變更發布版本。
- 不支援從使用
asmcli
的受管理 Cloud Service Mesh 遷移至使用 Fleet API 的 Cloud Service Mesh。同樣地,系統也不支援從 --management manual
到 --management automatic
,使用 Fleet API 佈建受管理 Cloud Service Mesh。
- 只有透過網格憑證授權單位安裝的叢內 Cloud Service Mesh 1.9 以上版本,才支援遷移和升級。如果安裝作業使用 Istio CA (舊稱 Citadel),請先遷移至網格 CA。
- 每個叢集最多只能有 1,000 項服務和 5,000 個工作負載。
- 多叢集僅支援多主叢集部署選項,不支援多叢集的主叢集-遠端部署選項。
- 系統不支援
istioctl ps
。請改用「疑難排解」一節所述的 gcloud beta container fleet mesh debug
指令。
不支援的 API:
EnvoyFilter
個 API
WasmPlugin
個 API
IstioOperator
個 API
Kubernetes Ingress
個 API
」。
您可以在沒有 GKE Enterprise 訂閱方案的情況下使用受管理控制層,但 Google Cloud 控制台中的特定 UI 元素和功能僅供 GKE Enterprise 訂閱者使用。如要瞭解訂閱者和非訂閱者可用的功能,請參閱 GKE Enterprise 和 Cloud Service Mesh 的 UI 差異。
在代管控制層的佈建程序中,系統會在指定叢集中安裝所選管道對應的 Istio CRD。如果叢集中已有 Istio CRD,系統會覆寫這些 CRD。
代管 Cloud Service Mesh 僅支援預設 DNS 網域 .cluster.local
。
自 2023 年 11 月 14 日起,在快速發布管道上安裝代管 Cloud Service Mesh 時,系統只會使用 Envoy 擷取 JWKS。這相當於 PILOT_JWT_ENABLE_REMOTE_JWKS=envoy
Istio 選項。與「一般版」和「穩定版」的安裝作業,或 2023 年 11 月 14 日前「快速版」的安裝作業相比,您可能需要額外的 ServiceEntry
和 DestinationRule
設定。如需範例,請參閱 requestauthn-with-se.yaml.tmpl
。
控制層差異
ISTIOD
和 TRAFFIC_DIRECTOR
控制層實作項目支援的功能有所不同。如要查看您使用的實作方式,請參閱「識別控制層實作方式」。
- :表示這項功能可用,且預設為啟用。
- † - 表示功能 API 在不同平台之間可能存在差異。
- * - 表示平台支援該功能,且可啟用該功能,如「啟用選用功能」或功能表格中連結的功能指南所述。
- §:表示許可清單支援這項功能。先前使用代管 Anthos Service Mesh 的使用者,會自動在機構層級加入允許清單。如要要求存取權或查看許可清單狀態,請與支援團隊聯絡 Google Cloud 。
- :表示功能無法使用或不支援。
Google Cloud支援服務完全支援預設和選用功能。如果表格中未明確列出某項功能,我們會盡力提供支援。
決定控制層實作方式的因素
首次在車隊中佈建代管 Cloud Service Mesh 時,我們會決定要使用的控制層實作方式。在該機群中佈建受管理 Cloud Service Mesh 的所有叢集,都會使用相同的實作方式。
加入代管 Cloud Service Mesh 的新車隊會收到 TRAFFIC_DIRECTOR
控制層實作項目,但有以下例外情況:
- 如果您是現有的代管 Cloud Service Mesh 使用者,在 2024 年 6 月 30 日前,只要在同一個機構中,將新機群加入代管 Cloud Service Mesh,即可獲得
ISTIOD
控制層實作 Google Cloud。如果您是這類使用者,可以聯絡支援團隊微調這項行為。如果使用者目前的用法與未經變更的實作方式不相容,系統會繼續提供實作方式,直到 2024 年 9 月 8 日為止。TRAFFIC_DIRECTOR
ISTIOD
(這些使用者已收到服務公告)。
- 如果您在佈建代管 Cloud Service Mesh 時,機群中的任何叢集使用憑證授權單位服務,您會收到
ISTIOD
控制層實作項目。
- 如果您在佈建代管 Cloud Service Mesh 時,機群中的任何叢集含有叢內 Cloud Service Mesh 控制層,您會收到
ISTIOD
控制層實作項目。
- 如果車隊中的任何叢集使用 GKE Sandbox,當您佈建代管 Cloud Service Mesh 時,會收到
ISTIOD
控制層實作項目。
代管控制層支援的功能
安裝、升級及復原
功能 |
代管 (TD) |
受管理 (istiod) |
使用機群功能 API 在 GKE 叢集上安裝 |
|
|
從使用 Mesh CA 的 ASM 1.9 版升級 |
|
|
從 1.9 之前的 Cloud Service Mesh 版本直接升級 (跳過層級) (請參閱間接升級的注意事項) |
|
|
從 Istio OSS 直接升級 (跳過版本),間接升級請參閱附註 |
|
|
直接 (跳級) 從 Istio on GKE 外掛程式升級 (請參閱間接升級的注意事項) |
|
|
啟用選用功能 |
|
|
環境
功能 |
代管 (TD) |
受管理 (istiod) |
支援區域的 GKE 1.25-1.27 |
|
|
搭載 Autopilot 的 GKE 1.25-1.27 叢集
|
|
|
Google Cloud 以外的環境(GKE Enterprise 地端部署、其他公有雲上的 GKE Enterprise、Amazon EKS、Microsoft AKS 或其他 Kubernetes 叢集) |
|
|
規模
功能 |
代管 (TD) |
受管理 (istiod) |
每個叢集 1000 個服務和 5000 個工作負載 |
|
|
每個網格 50 個無頭服務通訊埠,每個無頭服務通訊埠 36 個 Pod |
|
|
功能 |
代管 (TD) |
受管理 (istiod) |
單一網路 |
|
|
多網路 |
|
|
單一專案 |
|
|
具備共用虛擬私有雲的多專案 |
|
|
多叢集部署
功能 |
代管 (TD) |
受管理 (istiod) |
多重主要版本 |
|
|
Primary-remote |
|
|
使用宣告式 API 探索多叢集端點 |
|
|
使用遠端密鑰探索多叢集端點 |
|
|
術語注意事項
- 多主設定表示設定必須在所有叢集中複製。
- 主要/遠端設定是指單一叢集包含設定,並視為可靠資料來源。
- Cloud Service Mesh 會根據一般連線功能,簡化網路定義。如果工作負載執行個體能夠直接通訊,不需透過閘道,就表示這些執行個體位於同一個網路上。
基礎映像檔
† 採用代管 (TD) 控制層的 Cloud Service Mesh 僅支援不含發行版本的映像檔類型。而且無法變更。
請注意,Distroless 映像檔的二進位檔極少,因此您無法執行 bash 或 curl 等一般指令,因為這些指令不存在於 Distroless 映像檔中。不過,您可以使用暫時性容器附加至執行中的工作負載 Pod,以便檢查及執行自訂指令。例如,請參閱「收集 Cloud Service Mesh 記錄」。
安全性
VPC Service Controls
憑證發布和輪替機制
支援憑證授權單位 (CA)
功能 |
代管 (TD) |
受管理 (istiod) |
Cloud Service Mesh 憑證授權單位 |
|
|
憑證授權單位服務 |
|
|
Istio CA |
|
|
與自訂 CA 整合 |
|
|
安全性功能
除了支援 Istio 安全防護功能,Cloud Service Mesh 還提供更多功能,協助您保護應用程式。
授權政策
功能 |
代管 (TD) |
受管理 (istiod) |
授權 v1beta1 政策 |
† |
|
自訂授權政策 |
§ |
|
† TRAFFIC_DIRECTOR
控制層實作不支援 rules.from.source.RemoteIp
和 rules.from.source.NotRemoteIp
欄位。
同類應用程式驗證
功能 |
代管 (TD) |
受管理 (istiod) |
自動 mTLS |
|
|
mTLS 寬容模式 |
|
|
mTLS 嚴格模式 |
* |
* |
mTLS DISABLE 模式 |
|
|
要求驗證
功能 |
代管 (TD) |
受管理 (istiod) |
JWT 驗證(附註 1) |
|
|
以 JWT 憑證為基礎的轉送功能 |
|
|
將 JWT 副本憑證複製到標頭 |
|
|
注意:
- 第三方 JWT 預設為啟用。
- 定義 RequestAuthentication API 時,請在 JWKSURI 中新增完整 FQDN/主機名稱。
- 指定 JWKS URI 時,代管控制層會強制 Envoy 擷取 JWKS。
遙測
指標
功能 |
代管 (TD) |
受管理 (istiod) |
Cloud Monitoring (Proxy 內 HTTP 指標) |
|
|
Cloud Monitoring (Proxy 內 TCP 指標) |
|
|
將 Prometheus 指標匯出至 Grafana (僅限 Envoy 指標) |
* |
* |
將 Prometheus 指標匯出至 Kiali |
|
|
Google Cloud Managed Service for Prometheus,但不包括 Cloud Service Mesh 資訊主頁 |
* |
* |
Istio Telemetry API |
† |
|
自訂配接器/後端 (無論是否在程序中) |
|
|
任意遙測和記錄後端 |
|
|
† TRAFFIC_DIRECTOR
控制層支援用來設定存取記錄和追蹤的 Istio 遙測 API 子集。
Proxy 要求記錄
追蹤
功能 |
代管 (TD) |
受管理 (istiod) |
Cloud Trace |
* |
* |
Jaeger 追蹤 (可使用客戶管理的 Jaeger) |
|
相容 |
Zipkin 追蹤 (可使用客戶管理的 Zipkin) |
|
相容 |
網路
流量攔截和重新導向機制
功能 |
代管 (TD) |
受管理 (istiod) |
傳統使用 iptables 使用 init 容器搭配 CAP_NET_ADMIN |
|
|
Istio 容器網路介面 (CNI) |
|
|
白箱補充資訊 |
|
|
通訊協定支援
功能 |
代管 (TD) |
受管理 (istiod) |
IPv4 |
|
|
HTTP/1.1 |
|
|
HTTP/2 |
|
|
TCP 位元組串流 (附註 1) |
|
|
gRPC |
|
|
IPv6 |
|
|
注意:
- 雖然 TCP 是網路支援的通訊協定,且系統會收集 TCP 指標,但不會回報這些指標。 Google Cloud 控制台只會顯示 HTTP 服務的指標。
- 系統不支援使用第 7 層功能設定的下列通訊協定服務:WebSocket、MongoDB、Redis、Kafka、Cassandra、RabbitMQ、Cloud SQL。您或許可以使用 TCP 位元組串流支援,讓通訊協定正常運作。如果 TCP 位元組串流無法支援通訊協定 (例如 Kafka 在通訊協定專屬回覆中傳送重新導向位址,但這個重新導向與 Cloud Service Mesh 的路由邏輯不相容),則不支援該通訊協定。
Envoy 部署作業
功能 |
代管 (TD) |
受管理 (istiod) |
補充資訊 |
|
|
輸入閘道 |
|
|
直接從 Sidecar 輸出 |
|
|
使用輸出閘道輸出 |
* |
* |
CRD 支援
Istio Ingress 閘道的負載平衡器
功能 |
代管 (TD) |
受管理 (istiod) |
第三方外部負載平衡器 |
|
|
Google Cloud 內部負載平衡器 |
* |
* |
服務網格雲端閘道
功能 |
代管 (TD) |
受管理 (istiod) |
服務網格雲端閘道 |
|
|
Kubernetes Gateway API
功能 |
代管 (TD) |
受管理 (istiod) |
Kubernetes Gateway API |
|
|
負載平衡政策
功能 |
代管 (TD) |
受管理 (istiod) |
循環制 |
|
|
連線數最少 |
|
|
隨機 |
|
|
透視 |
|
|
一致的雜湊 |
|
|
縣市 |
|
|
服務項目
功能 |
代管 (TD) |
受管理 (istiod) |
ServiceEntry v1beta1 |
† |
|
† TRAFFIC_DIRECTOR
控制平面實作不支援下列欄位和欄位中的值:
workloadSelector
欄位
endpoints[].network
欄位
endpoints[].locality
欄位
endpoints[].weight
欄位
endpoints[].serviceAccount
欄位
DNS_ROUND_ROBIN
欄位中的 resolution
值
MESH_INTERNAL
欄位中的 location
值
endpoints[].address
欄位中的 Unix 網域通訊端位址
subjectAltNames
欄位
目的地規則
功能 |
代管 (TD) |
受管理 (istiod) |
DestinationRule v1beta1 |
† |
|
† TRAFFIC_DIRECTOR
控制層實作不支援 trafficPolicy.loadBalancer.localityLbSetting
欄位和 trafficPolicy.tunnel
欄位。此外,TRAFFIC_DIRECTOR
控制層實作需要定義子集的目的地規則,與 Kubernetes 服務或 ServiceEntry 位於相同命名空間和叢集。
Sidecar
功能 |
代管 (TD) |
受管理 (istiod) |
Sidecar v1beta1 |
† |
|
† TRAFFIC_DIRECTOR
控制平面實作不支援下列欄位和欄位中的值:
ingress
欄位
egress.port
欄位
egress.bind
欄位
egress.captureMode
欄位
inboundConnectionPool
欄位
MeshConfig
功能 |
代管 (TD) |
受管理 (istiod) |
LocalityLB |
§ |
|
ExtensionProviders |
§ |
|
CACert |
|
|
ImageType - distroless |
§ |
|
OutboundTrafficPolicy |
§ |
|
defaultProviders.accessLogging |
|
|
defaultProviders.tracing |
|
|
defaultConfig.tracing.stackdriver |
§ |
|
accessLogFile |
§ |
|
ProxyConfig
功能 |
代管 (TD) |
受管理 (istiod) |
DNS Proxy (ISTIO_META_DNS_CAPTURE、ISTIO_META_DNS_AUTO_ALLOCATE) |
|
|
支援 HTTP/1.0 (ISTIO_META_NETWORK) |
|
|
選取映像檔 (distroless 或基本映像檔) |
† |
|
† 無發行版本映像檔用於注入。
區域
GKE 叢集必須位於下列任一區域,或下列區域內的任何可用區。
區域 |
位置 |
africa-south1 |
約翰尼斯堡 |
asia-east1 |
台灣 |
asia-east2 |
香港 |
asia-northeast1 |
日本東京 |
asia-northeast2 |
日本大阪 |
asia-northeast3 |
南韓 |
asia-south1 |
印度孟買 |
asia-south2 |
印度德里 |
asia-southeast1 |
新加坡 |
asia-southeast2 |
雅加達 |
australia-southeast1 |
澳洲雪梨 |
australia-southeast2 |
澳洲墨爾本 |
europe-central2 |
波蘭 |
europe-north1 |
芬蘭 |
europe-north2 |
斯德哥爾摩 |
europe-southwest1 |
西班牙 |
europe-west1 |
比利時 |
europe-west2 |
英國 |
europe-west3 |
德國法蘭克福 |
europe-west4 |
荷蘭 |
europe-west6 |
瑞士 |
europe-west8 |
義大利米蘭 |
europe-west9 |
法國 |
europe-west10 |
德國柏林 |
europe-west12 |
義大利杜林 |
me-central1 |
杜哈 |
me-central2 |
沙烏地阿拉伯達曼 |
me-west1 |
特拉維夫市 |
northamerica-northeast1 |
加拿大蒙特婁 |
northamerica-northeast2 |
加拿大多倫多 |
southamerica-east1 |
巴西 |
southamerica-west1 |
智利 |
us-central1 |
愛荷華州 |
us-east1 |
南卡羅來納州 |
us-east4 |
北維吉尼亞州 |
us-east5 |
俄亥俄州 |
us-south1 |
達拉斯 |
us-west1 |
奧勒岡州 |
us-west2 |
洛杉磯 |
us-west3 |
鹽湖城 |
us-west4 |
拉斯維加斯 |
使用者介面
功能 |
代管 (TD) |
受管理 (istiod) |
Google Cloud 控制台中的 Cloud Service Mesh 資訊主頁 |
|
|
Cloud Monitoring |
|
|
Cloud Logging |
|
|
功能 |
代管 (TD) |
受管理 (istiod) |
gcloud beta container fleet mesh debug 工具 |
|
|