解決 Cloud Service Mesh 中的補充 Proxy 問題
本節說明 Cloud Service Mesh 附屬 Proxy 常見問題,以及如何解決這些問題。如需其他協助,請參閱取得支援。
istio-proxy
容器因 OOM 事件而終止
在本節中,我們假設 istio-proxy
容器並未遭 SystemOOM
事件終止,且 Kubernetes 節點並未處於 MemoryPressure
狀態。istio-proxy
附屬容器預設有資源限制。如果 istio-proxy 容器因 Reason: OOMKilled
而遭到終止,就必須瞭解 Envoy 耗用記憶體的原因。
如果您遇到正式版服務中斷的情況,可以使用 IstioOperator
提高所有容器的限制值,這也是快速解決方法:
---
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
values:
global:
proxy:
resources:
requests:
memory: 128Mi
limits:
memory: 1Gi
如果您在特定工作負載中遇到這個問題,可以新增下列註解,只針對這些工作負載變更限制。
sidecar.istio.io/proxyMemory
sidecar.istio.io/proxyMemoryLimit
請確認限制值不會低於預設值。
長期解決方案是減少 istio-proxy
附屬容器的記憶體用量。根據預設,所有 Sidecar 代理程式都會設定必要的設定,以便存取網格中的任何其他工作負載執行個體。Istio 提供自訂資源定義 Sidecar
,可限制將端點編程至側邊代理的數量,進而減少 istio-proxy
容器的記憶體用量。