Risoluzione dei problemi dei proxy collaterali in Cloud Service Mesh

Questa sezione illustra i problemi comuni dei proxy collaterali di Cloud Service Mesh e spiega come risolverle. Se hai bisogno di ulteriore assistenza, consulta la sezione Ricevere assistenza.

Il contenitore istio-proxy viene interrotto a causa di un evento OOM

In questa sezione presupponiamo che il container istio-proxy non venga interrotto da un SystemOOM e il nodo Kubernetes non è in condizione MemoryPressure. Il container collaterale istio-proxy ha limiti delle risorse per impostazione predefinita. Se il contenitore istio-proxy viene interrotto con Reason: OOMKilled, è necessario capire perché Envoy sta consumando la memoria.

Se stai riscontrando un'interruzione della produzione, una soluzione rapida è aumentare i limiti per tutti i contenitori utilizzando IstioOperator:

---
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
  values:
    global:
      proxy:
        resources:
          requests:
               memory: 128Mi
          limits:
               memory: 1Gi

Se riscontri questo problema con carichi di lavoro specifici, puoi modificare il limite solo per questi carichi di lavoro aggiungendo le seguenti annotazioni.

  • sidecar.istio.io/proxyMemory
  • sidecar.istio.io/proxyMemoryLimit

Assicurati che non siano presenti limiti inferiori ai valori predefiniti.

La soluzione a lungo termine è ridurre l'utilizzo di memoria dei contenitori sidecar istio-proxy. Per impostazione predefinita, tutti i proxy collaterali sono programmati con configurazione necessaria per raggiungere qualsiasi altra istanza del carico di lavoro nel mesh. Istio fornisce la definizione della risorsa personalizzata Sidecar per limitare il numero di endpoint programmati per i proxy sidecar e quindi ridurre il consumo di memoria del contenitore istio-proxy.