Istio

Lorsque vous activez l'extension de cluster Istio, vous pouvez transmettre les paires clé/valeur suivantes en tant qu'arguments.

Arguments de configuration communs à la plupart des modules complémentaires de cluster
Clé (API et CLI) Nom d'affichage de la clé (console) Description Obligatoire/Facultatif Valeur par défaut Exemple de valeur
affinity affinité

Groupe de règles de programmation d'affinité.

Format JSON en texte brut ou encodé Base64.

Non utilisé par:
  • Opérateur GPU Nvidia
Equivalents possibles :
  • Repérage des fonctionnalités de noeud, utilisez master.affinity
  • Opérateur réseau NVIDIA, utilisez operator.affinity
  • Pilote CSI SMB, utilisez contoller.affinity
  • Opérateur de GPU AMD, utilisez controllerManager.affinity
Facultatif NULL NULL
nodeSelectors Sélecteurs de noeud

Vous pouvez utiliser des sélecteurs de noeud et des libellés de noeud pour contrôler les noeuds de processus actif sur lesquels les pods d'extension sont exécutés.

Pour qu'un pod s'exécute sur un noeud, le sélecteur de noeud du pod doit avoir la même clé/valeur que l'étiquette du noeud.

Définissez nodeSelectors sur une paire clé/valeur correspondant à la fois au sélecteur de noeud du pod et au libellé du noeud de processus actif.

Format JSON en texte brut ou encodé Base64.

Non utilisé par:
  • Opérateur GPU NVIDIA
  • Pilote CSI SMB
Equivalents possibles :
  • Repérage des fonctionnalités de noeud, utilisez worker.nodeSelector
  • Opérateur réseau NVIDIA, utilisez operator.nodeSelectors
  • Opérateur de GPU AMD, utilisez selector ou controllerManager.nodeSelector
Facultatif NULL {"foo":"bar", "foo2": "bar2"}

Le pod s'exécutera uniquement sur les noeuds possédant le libellé foo=bar ou foo2=bar2.

numOfReplicas numOfReplicas Nombre de répliques du déploiement de l'extension.
Non utilisé par:
  • Module d'extension GPU AMD
  • Opérateur GPU NVIDIA
  • Opérateur réseau NVIDIA
  • Pilote CSI SMB
Equivalents possibles :
  • CoreDNS, utilisez nodesPerReplica
  • Repérage des fonctionnalités de noeud, utilisez master.replicaCount
  • Opérateur de GPU AMD, utilisez controllerManager.replicas
Requis 1

Crée une réplique du déploiement d'extension par cluster.

2

Crée deux répliques du déploiement d'extension par cluster.

rollingUpdate rollingUpdate

Contrôle le comportement souhaité de la mise à jour non simultanée par maxSurge et maxUnavailable.

Format JSON en texte brut ou encodé Base64.

Non utilisé par:
  • Repérage des fonctionnalités du noeud
  • Opérateur réseau NVIDIA
  • Pilote CSI SMB
Equivalents possibles :
  • Opérateur de GPU NVIDIA, utilisez daemonsets.rollingUpdate.maxUnavailable
  • Opérateur de GPU AMD, utilisez upgradePolicy dans devicePlugin, metricsExporter, testRunner, configManager ou draDriver
Facultatif NULL NULL
tolerations tolérances

Vous pouvez utiliser des tolérances et des taches pour contrôler les noeuds de processus actif sur lesquels les pods d'extension s'exécutent.

Pour qu'un pod s'exécute sur un noeud présentant une entorse, le pod doit avoir une tolérance correspondante.

Définissez tolerations sur une paire clé/valeur correspondant à la fois à la tolérance du pod et à la tache du noeud de processus actif.

Format JSON en texte brut ou encodé Base64.

Equivalents possibles :
  • Repérage des fonctionnalités de noeud, utilisez master.tolerations et/ou worker.tolerations
  • Opérateur de GPU NVIDIA, utilisez daemonsets.tolerations
  • Opérateur réseau NVIDIA, utilisez operator.tolerations
  • Pilote CSI SMB, utilisez controller.tolerations
  • Opérateur GPU AMD, utilisez les tolérances dans devicePlugin, metricsExporter, testRunner, configManager, draDriver ou controllerManager
Facultatif NULL [{"key":"tolerationKeyFoo", "value":"tolerationValBar", "effect":"noSchedule", "operator":"exists"}]

Seuls les pods présentant cette tolérance peuvent être exécutés sur des noeuds de processus actif présentant la tache tolerationKeyFoo=tolerationValBar:noSchedule.

topologySpreadConstraints topologySpreadConstraints

Comment répartir les pods correspondants entre la topologie donnée.

Format JSON en texte brut ou encodé Base64.

Non utilisé par:
  • Repérage des fonctionnalités du noeud
  • Opérateur GPU NVIDIA
  • Opérateur réseau NVIDIA
  • Pilote CSI SMB
  • Opérateur de GPU AMD
Facultatif NULL NULL
Arguments de configuration propres à ce module complémentaire de cluster
Clé (API et CLI) Nom d'affichage de la clé (console) Description Obligatoire/Facultatif Valeur par défaut Exemple de valeur
customizeConfigMap customizeConfigMap

Si vous voulez qu'Oracle gère Istio automatiquement pour vous, définissez customizeConfigMap sur false (valeur par défaut).

Si vous souhaitez personnaliser Istio à l'aide d'istioctl (ou d'un autre outil pris en charge par Istio) et que vous souhaitez conserver les personnalisations lorsqu'Oracle met à jour le module, définissez customizeConfigMap sur true.

Requis false true
discovery.ContainerResources discovery.ContainerResources

Vous pouvez spécifier les quantités de ressources demandées par les conteneurs d'extension et définir les limites d'utilisation des ressources que les conteneurs d'extension ne peuvent pas dépasser.

Format JSON en texte brut ou encodé Base64.

Facultatif NULL {"limits": {"cpu": "500m", "memory": "200Mi" }, "requests": {"cpu": "100m", "memory": "100Mi"}}

Créez des conteneurs d'extension qui demandent 100 milllicores de CPU et 100 mégaoctets de mémoire. Limitez les conteneurs d'extension à 500 milllicores de CPU et 200 mégaoctets de mémoire.

discovery.EnvVariables discovery.EnvVariables

Liste des variables d'environnement de conteneur de découverte de plan de contrôle Istio, au format JSON.

Facultatif NULL [{"name":"ISTIO_GPRC_MAXRECVMSGSIZE","value":"8388608"},{"name":"ISTIO_GPRC_MAXSTREAMS","value":"150000"}]
enableIngressGateway enableIngressGateway Activer la passerelle entrante Istio Requis false true
istio-ingressgateway.Annotations istio-ingressgateway.Annotations

Annotations à transmettre au déploiement Istio.

Par exemple, pour indiquer la forme de l'équilibreur de charge ou pour créer l'équilibreur de charge en tant qu'équilibreur de charge réseau. Pour plus d'annotations, reportez-vous à Récapitulatif des annotations pour les équilibreurs de charge et les équilibreurs de charge réseau.

Format JSON en texte brut ou encodé Base64.

Facultatif ""

{"service.beta.kubernetes.io/oci-load-balancer-shape":"400Mbps"}

{"oci.oraclecloud.com/load-balancer-type": "nlb"}

istio-ingressgateway.HorizontalPodAutoscalerMinReplicas istio-ingressgateway.HorizontalPodAutoscalerMinReplicas

Nombre minimal de répliques de l'outil de redimensionnement automatique de pod horizontal de passerelle d'entrée Istio.

Doit être un entier, avec une valeur supérieure à zéro.

Facultatif NULL 1
istio-ingressgateway.HorizontalPodAutoscalerMaxReplicas istio-ingressgateway.HorizontalPodAutoscalerMaxReplicas

Nombre maximal de répliques de l'outil de redimensionnement automatique de pod horizontal de passerelle entrante Istio.

Doit être un entier, avec une valeur supérieure à zéro.

Facultatif NULL 3
istio-ingressgateway.PodDisruptionBudgetMinAvailable istio-ingressgateway.PodDisruptionBudgetMinAvailable

Nombre minimal ou pourcentage de pods de passerelle entrante Istio disponibles.

Facultatif NULL

1

10%

istiod.HorizontalPodAutoscalerMinReplicas istiod.HorizontalPodAutoscalerMinReplicas

Nombre minimal de répliques du contrôleur Istio.

Doit être un entier, avec une valeur supérieure à zéro.

Facultatif NULL 1
istiod.HorizontalPodAutoscalerMaxReplicas istiod.HorizontalPodAutoscalerMaxReplicas

Nombre maximal de répliques du contrôleur Istio.

Doit être un entier, avec une valeur supérieure à zéro.

Facultatif NULL 3
istiod.PodDisruptionBudgetMinAvailable istiod.PodDisruptionBudgetMinAvailable

Nombre minimal ou pourcentage de pods de contrôleur Istio disponibles.

Facultatif NULL

1

10%

profile profil Profil d'installation Istio Requis "oke-default" "oke-default"
Considérations relatives aux clusters volumineux

Le tableau suivant décrit les considérations relatives à la configuration de ce module complémentaire de cluster dans les clusters volumineux.

Nom d'argument Nombre de noeuds de processus métier de rôles Description à mesure que la taille du cluster augmente Risques Recommandation
affinity N

Contrôle le placement des pods Istio sur des noeuds particuliers.

Non applicable Non applicable Non applicable
nodeSelectors N

Contrôle si les pods Istio s'exécutent sur des noeuds avec des étiquettes particulières.

Non applicable Non applicable Non applicable
tolerations N

Contrôle si les pods Istio peuvent s'exécuter sur des noeuds endommagés.

Non applicable Non applicable Non applicable
topologySpreadConstraints Y (Oui)

Contrôle la façon dont les pods Istio correspondants sont distribués dans la topologie du cluster.

Vous devrez peut-être ajuster les contraintes de répartition de la topologie lorsque le nombre de répliques istiod augmente.

Si elles ne sont pas correctement configurées, les répliques istiod ou de passerelle peuvent se retrouver co-localisées sur le même noeud ou dans la même zone, de sorte qu'une panne de noeud/zone entraîne la suppression simultanée de plusieurs répliques.

Configurez topologySpreadConstraints pour distribuer des répliques de passerelle entrante et istiod entre différents noeuds et zones de disponibilité, ce qui améliore la résilience face aux pannes de noeud et de zone.

numOfReplicas Y (Oui)

Contrôle le nombre de répliques de plan de contrôle Istio.

D'autres répliques peuvent être nécessaires à mesure que le nombre de pods participant au maillage de services augmente.

Si elle est trop basse, l'istiod a plus de chances de devenir un point de défaillance unique lors des vidages ou des mises à niveau de nœuds.

Augmentez le nombre de répliques à mesure que le nombre de pods maillés augmente.

rollingUpdate N

Contrôle la stratégie de mise à jour du déploiement Istio.

Non applicable Non applicable Non applicable
customizeConfigMap N

Contrôle la configuration Istio au niveau de l'opérateur.

Non applicable Non applicable Non applicable
discovery.ContainerResources Y (Oui)

Définit les ressources de CPU et de mémoire du conteneur de repérage istiod .

Les besoins en CPU et en mémoire peuvent augmenter à mesure que le nombre de proxies maillés et la quantité de configuration Istio augmentent.

S'il est sous-dimensionné, le plan de contrôle Istio peut être affamé de CPU ou de mémoire, ce qui risque de ralentir la propagation de la configuration, de retarder les mises à jour sidecar et d'être instable en cas d'attrition élevée du maillage.

Allouez suffisamment de CPU et de mémoire pour les istiod en fonction de la taille du maillage et du trafic, et surveillez régulièrement l'utilisation des ressources pour éviter les goulets d'étranglement du plan de contrôle au fur et à mesure que le cluster se développe.
discovery.EnvVariables N

Définit les variables d'environnement pour le conteneur de repérage de plan de contrôle Istio.

Non applicable Non applicable Non applicable
enableIngressGateway N

Contrôle si la passerelle entrante Istio classique est activée.

Non applicable Non applicable

Activez la passerelle entrante uniquement lorsque le cluster requiert la passerelle entrante Istio classique.

istio-ingressgateway.Annotations Y (Oui)

Définit les annotations de la passerelle entrante Istio, y compris les annotations qui contrôlent le type et la forme de l'équilibreur de charge.

La configuration d'équilibreur de charge requise dépend de la quantité de trafic que la passerelle entrante reçoit ou est censée recevoir, plutôt que directement du nombre de noeuds de cluster.

Si la configuration est incorrecte, la passerelle entrante peut être provisionnée avec un type ou une forme d'équilibreur de charge incorrect (par exemple, une forme d'équilibreur de charge OCI ou un paramètre d'équilibreur de charge réseau incorrect). Cela peut entraîner une exposition incorrecte, des limites de débit ou des problèmes de routage du trafic.

Configurez les annotations de l'équilibreur de charge OCI pour qu'elles correspondent à vos exigences de trafic de production et à votre architecture réseau, ce qui garantit un équilibrage de charge, une évolutivité et une haute disponibilité optimaux.
istio-ingressgateway.HorizontalPodAutoscalerMinReplicas Y (Oui)

Définit le nombre minimal de répliques de passerelle entrante Istio gérées par l'outil de redimensionnement automatique de pod horizontal.

Davantage de répliques de passerelle entrante peuvent être nécessaires à mesure que le trafic augmente.

Si elle est trop basse, la passerelle entrante a moins de capacité de référence et risque de devenir un goulet d'étranglement de trafic lors des pics. S'il est 1, il y a aussi moins de résilience pendant les perturbations.

Augmentez le nombre minimal de répliques à mesure que le trafic augmente pour maintenir la disponibilité et la tolérance aux pannes.

istio-ingressgateway.HorizontalPodAutoscalerMaxReplicas Y (Oui)

Définit le nombre maximal de répliques de passerelle entrante Istio que l'outil de redimensionnement automatique de pod horizontal peut créer.

La passerelle entrante peut être amenée à évoluer vers davantage de répliques à mesure que le trafic augmente.

Si elle est trop faible, la passerelle entrante ne peut pas évoluer suffisamment pendant les pics de trafic, ce qui peut créer une latence ou des connexions supprimées.

Augmentez le nombre maximal de répliques à mesure que le trafic augmente pour maintenir la disponibilité et la tolérance aux pannes.

istio-ingressgateway.PodDisruptionBudgetMinAvailable Y (Oui)

Définit le nombre minimum ou le pourcentage de pods de passerelle d'entrée Istio qui doivent rester disponibles lors d'une interruption volontaire.

Une valeur de disponibilité minimale plus élevée peut être requise à mesure que le trafic entrant augmente.

Si elles sont trop faibles, les mises à niveau ou les drains de nœuds peuvent supprimer trop de passerelles à la fois et créer une coupure entrante.

Augmentez la valeur de disponibilité minimale à mesure que le trafic augmente pour maintenir la haute disponibilité.

istiod.HorizontalPodAutoscalerMinReplicas Y (Oui)

Définit le nombre minimal de répliques istiod gérées par l'outil de redimensionnement automatique de pod horizontal.

D'autres répliques istiod peuvent être requises à mesure que la taille du maillage de service augmente.

S'il est trop bas, le plan de contrôle commence par une capacité trop faible et est plus susceptible de prendre du retard lors des rafales de configuration.

Augmentez le nombre minimal de répliques à mesure que le maillage augmente. Utilisez au moins trois répliques pour maintenir la disponibilité.

istiod.HorizontalPodAutoscalerMaxReplicas Y (Oui)

Définit le nombre maximal de répliques istiod que l'outil de redimensionnement automatique de pod horizontal peut créer.

D'autres répliques istiod peuvent être requises lorsque les répliques existantes atteignent ou dépassent leurs limites de ressources.

S'il est trop bas, l'istiode ne peut pas évoluer suffisamment pour gérer la croissance du maillage, l'attrition de configuration ou un grand nombre de side-car.

Augmentez le nombre maximal de répliques lorsque les pods istiod s'approchent systématiquement ou dépassent leurs limites de ressources.

istiod.PodDisruptionBudgetMinAvailable Y (Oui)

Définit le nombre minimum ou le pourcentage de pods istiod qui doivent rester disponibles pendant une interruption volontaire.

La maintenance des répliques istiod disponibles devient de plus en plus importante lorsque le plan de contrôle gère un grand maillage de services.

Si elle est trop faible, une purge ou une mise à niveau peut laisser le plan de contrôle indisponible et l'injection sidecar peut échouer à l'échelle du cluster.

Configurez la valeur de sorte que certains pods istiod restent disponibles lors des redémarrages et des mises à jour de configuration.

profile N

Spécifie le profil d'installation Istio.

Non applicable Non applicable Non applicable