Résoudre les problèmes liés aux proxys side-car dans Cloud Service Mesh

Cette section explique les problèmes couramment rencontrés avec les proxys side-car Cloud Service Mesh, ainsi que la manière de les résoudre. Si vous avez besoin d'une aide supplémentaire, consultez la page Assistance.

Le conteneur istio-proxy est supprimé en raison d'un événement OOM

Dans cette section, nous partons du principe que le conteneur istio-proxy n'est pas supprimé par un événement SystemOOM et que le nœud Kubernetes n'est pas dans la condition MemoryPressure. Le conteneur side-car istio-proxy est soumis par défaut à des limites de ressources. Si le conteneur istio-proxy est supprimé à cause de Reason: OOMKilled, il est nécessaire de comprendre pourquoi Envoy utilise la mémoire.

En cas d'interruption de production, une solution rapide consiste à augmenter les limites de tous les conteneurs à l'aide de IstioOperator :

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

Si vous rencontrez ce problème avec des charges de travail spécifiques, vous pouvez modifier la limite uniquement sur ces charges de travail en ajoutant les annotations suivantes.

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

Veillez à ne pas définir de limites inférieures aux valeurs par défaut.

La solution à long terme consiste à réduire les exigences en mémoire de vos conteneurs side-car istio-proxy. Par défaut, tous les proxys side-car sont programmés avec la configuration nécessaire pour atteindre toute autre instance de charge de travail dans le maillage. Istio fournit la définition de ressource personnalisée Sidecar pour limiter le nombre de points de terminaison programmés sur les proxys side-car, et ainsi réduire la consommation de mémoire du conteneur istio-proxy.