Istio

Wenn Sie das Istio-Cluster-Add-on aktivieren, können Sie die folgenden Schlüssel/Wert-Paare als Argumente übergeben.

Allgemeine Konfigurationsargumente für die meisten Cluster-Add-ons
Schlüssel (API und CLI) Anzeigename des Schlüssels (Konsole) Beschreibung Erforderlich/Optional Standardwert Beispielwert
affinity Affinität

Eine Gruppe von Affinitätsplanungsregeln.

JSON-Format im Klartext oder Base64-codiert.

Nicht verwendet von:
  • Nvidia-GPU-Operator
Mögliche Äquivalente:
  • Knotenfeature Discovery, verwenden Sie master.affinity
  • NVIDIA Network Operator, verwenden Sie operator.affinity
  • CSI-Treiber SMB, verwenden Sie contoller.affinity
  • AMD-GPU-Operator, controllerManager.affinity verwenden
Optional Null Null
nodeSelectors Knotenselektoren

Mit Knotenselektoren und Knotenlabels können Sie die Worker-Knoten steuern, auf denen Add-on-Pods ausgeführt werden.

Damit ein Pod auf einem Knoten ausgeführt werden kann, muss der Knotenselektor des Pods denselben Schlüssel/Wert wie das Label des Knotens aufweisen.

Setzen Sie nodeSelectors auf ein Schlüssel/Wert-Paar, das sowohl dem Knotenselektor des Pods als auch dem Label des Worker-Knotens entspricht.

JSON-Format im Klartext oder Base64-codiert.

Nicht verwendet von:
  • NVIDIA-GPU-Operator
  • CSI-Treiber SMB
Mögliche Äquivalente:
  • Knotenfeature Discovery, verwenden Sie worker.nodeSelector
  • NVIDIA Network Operator, verwenden Sie operator.nodeSelectors
  • AMD GPU-Operator, verwenden Sie selector oder controllerManager.nodeSelector
Optional Null {"foo":"bar", "foo2": "bar2"}

Der Pod wird nur auf Knoten ausgeführt, die das Label foo=bar oder foo2=bar2 aufweisen.

numOfReplicas numOfReplicas Die Anzahl der Replikate der Add-on-Bereitstellung.
Nicht verwendet von:
  • AMD-GPU-Plug-in
  • NVIDIA-GPU-Operator
  • NVIDIA-Netzwerkbetreiber
  • CSI-Treiber SMB
Mögliche Äquivalente:
  • CoreDNS, verwenden Sie nodesPerReplica
  • Knotenfeature Discovery, verwenden Sie master.replicaCount
  • AMD-GPU-Operator, controllerManager.replicas verwenden
Erforderlich 1

Erstellt ein Replikat des Add-on-Deployments pro Cluster.

2

Erstellt zwei Replikate des Add-on-Deployments pro Cluster.

rollingUpdate rollingUpdate

Steuert das gewünschte Verhalten der rollierenden Aktualisierung durch maxSurge und maxUnavailable.

JSON-Format im Klartext oder Base64-codiert.

Nicht verwendet von:
  • Knotenfeature-Discovery
  • NVIDIA-Netzwerkbetreiber
  • CSI-Treiber SMB
Mögliche Äquivalente:
  • NVIDIA-GPU-Operator, daemonsets.rollingUpdate.maxUnavailable verwenden
  • AMD-GPU-Operator, verwenden upgradePolicy in devicePlugin, metricsExporter, testRunner, configManager oder draDriver
Optional Null Null
tolerations Toleranzen

Mit Taints und Toleranzen können Sie die Worker-Knoten steuern, auf denen Add-on-Pods ausgeführt werden.

Damit ein Pod auf einem Knoten mit einem Taint ausgeführt werden kann, muss der Pod eine entsprechende Toleranz aufweisen.

Setzen Sie tolerations auf ein Schlüssel/Wert-Paar, das sowohl der Podtoleranz als auch dem Taint des Worker-Knotens entspricht.

JSON-Format im Klartext oder Base64-codiert.

Mögliche Äquivalente:
  • Knotenfeature Discovery, verwenden Sie master.tolerations und/oder worker.tolerations
  • NVIDIA-GPU-Operator, daemonsets.tolerations verwenden
  • NVIDIA Network Operator, verwenden Sie operator.tolerations
  • CSI-Treiber SMB, verwenden Sie controller.tolerations
  • AMD GPU-Operator, Toleranzen in devicePlugin, metricsExporter, testRunner, configManager, draDriver oder controllerManager verwenden
Optional Null [{"key":"tolerationKeyFoo", "value":"tolerationValBar", "effect":"noSchedule", "operator":"exists"}]

Nur Pods mit dieser Toleranz können auf Worker-Knoten ausgeführt werden, die den Taint tolerationKeyFoo=tolerationValBar:noSchedule aufweisen.

topologySpreadConstraints topologySpreadConstraints

So verteilen Sie passende Pods auf die angegebene Topologie.

JSON-Format im Klartext oder Base64-codiert.

Nicht verwendet von:
  • Knotenfeature-Discovery
  • NVIDIA-GPU-Operator
  • NVIDIA-Netzwerkbetreiber
  • CSI-Treiber SMB
  • AMD-GPU-Operator
Optional Null Null
Für dieses Cluster-Add-on spezifische Konfigurationsargumente
Schlüssel (API und CLI) Anzeigename des Schlüssels (Konsole) Beschreibung Erforderlich/Optional Standardwert Beispielwert
customizeConfigMap customizeConfigMap

Wenn Oracle Istio automatisch für Sie verwalten soll, setzen Sie customizeConfigMap auf false (Standard).

Wenn Sie Istio mit istioctl (oder einem anderen von Istio unterstützten Tool) anpassen möchten und die Anpassungen beibehalten möchten, wenn Oracle das Add-on aktualisiert, setzen Sie customizeConfigMap auf true.

Erforderlich false true
discovery.ContainerResources discovery.ContainerResources

Sie können die Ressourcenmengen angeben, die von den Add-on-Containern angefordert werden, und Grenzwerte für die Ressourcennutzung festlegen, die von den Add-on-Containern nicht überschritten werden dürfen.

JSON-Format im Klartext oder Base64-codiert.

Optional Null {"limits": {"cpu": "500m", "memory": "200Mi" }, "requests": {"cpu": "100m", "memory": "100Mi"}}

Erstellen Sie Add-on-Container, die 100 Millicores CPU und 100 Mebibyte Speicher anfordern. Begrenzen Sie Add-on-Container auf 500 Millicores CPU und 200 Mebibyte Arbeitsspeicher.

discovery.EnvVariables discovery.EnvVariables

Liste der Containerumgebungsvariablen für Istio Control Plane Discovery im JSON-Format.

Optional Null [{"name":"ISTIO_GPRC_MAXRECVMSGSIZE","value":"8388608"},{"name":"ISTIO_GPRC_MAXSTREAMS","value":"150000"}]
enableIngressGateway enableIngressGateway Istio-Ingress-Gateway aktivieren Erforderlich false true
istio-ingressgateway.Annotations istio-ingressgateway.Annotations

Anmerkungen, die an das Istio-Deployment übergeben werden.

Beispiel: Sie geben die Load-Balancer-Ausprägung an oder legen fest, ob der Load Balancer als Network Load Balancer erstellt werden soll. Weitere Anmerkungen finden Sie unter Übersicht über Anmerkungen für Load Balancer und Network Load Balancer.

JSON-Format im Klartext oder Base64-codiert.

Optional ""

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

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

istio-ingressgateway.HorizontalPodAutoscalerMinReplicas istio-ingressgateway.HorizontalPodAutoscalerMinReplicas

Mindestanzahl von Replikaten des horizontalen Pod-Autoscalers des Istio-Ingress-Gateways.

Muss eine Ganzzahl mit einem Wert größer Null sein.

Optional Null 1
istio-ingressgateway.HorizontalPodAutoscalerMaxReplicas istio-ingressgateway.HorizontalPodAutoscalerMaxReplicas

Maximale Anzahl von Replikaten des horizontalen Pod-Autoscalers des Istio-Ingress-Gateways.

Muss eine Ganzzahl mit einem Wert größer Null sein.

Optional Null 3
istio-ingressgateway.PodDisruptionBudgetMinAvailable istio-ingressgateway.PodDisruptionBudgetMinAvailable

Mindestanzahl oder Prozentsatz der verfügbaren Istio-Ingress-Gatewaypods.

Optional Null

1

10%

istiod.HorizontalPodAutoscalerMinReplicas istiod.HorizontalPodAutoscalerMinReplicas

Mindestanzahl von Replikaten des Istio-Controllers.

Muss eine Ganzzahl mit einem Wert größer Null sein.

Optional Null 1
istiod.HorizontalPodAutoscalerMaxReplicas istiod.HorizontalPodAutoscalerMaxReplicas

Maximale Anzahl von Replikaten des Istio-Controllers.

Muss eine Ganzzahl mit einem Wert größer Null sein.

Optional Null 3
istiod.PodDisruptionBudgetMinAvailable istiod.PodDisruptionBudgetMinAvailable

Mindestanzahl oder Prozentsatz der verfügbaren Istio-Controller-Pods.

Optional Null

1

10%

profile Profil Istio-Installationsprofil Erforderlich "oke-default" "oke-default"
Große Cluster – Überlegungen

In der folgenden Tabelle werden die Aspekte beim Konfigurieren dieses Cluster-Add-ons in großen Clustern beschrieben.

Argumentname Rollen, Anzahl Knoten Beschreibung Bei zunehmender Clustergröße Risiken Empfehlung
affinity N

Steuert die Platzierung von Istio-Pods auf bestimmten Knoten.

Nicht anwendbar Nicht anwendbar Nicht anwendbar
nodeSelectors N

Steuert, ob Istio-Pods auf Knoten mit bestimmten Labels ausgeführt werden.

Nicht anwendbar Nicht anwendbar Nicht anwendbar
tolerations N

Steuert, ob Istio-Pods auf befleckten Knoten ausgeführt werden können.

Nicht anwendbar Nicht anwendbar Nicht anwendbar
topologySpreadConstraints J

Steuert, wie übereinstimmende Istio-Pods über die Clustertopologie verteilt sind.

Möglicherweise müssen Sie die Topologieverteilungs-Constraints anpassen, wenn die Anzahl der istiod -Replikate steigt.

Wenn Istiod- oder Gatewayreplikate nicht ordnungsgemäß konfiguriert sind, können sie sich auf demselben Knoten oder in derselben Zone befinden, sodass bei einem Knoten-/Zonenausfall mehrere Replikate gleichzeitig entfernt werden.

Konfigurieren Sie topologySpreadConstraints so, dass Istiod- und Ingress-Gatewayreplikate auf verschiedene Knoten und Verfügbarkeitszonen verteilt werden. So wird die Resilienz gegenüber Knoten- und Zonenfehlern verbessert.

numOfReplicas J

Steuert die Anzahl der Istio-Replikate.

Möglicherweise sind weitere Replikate erforderlich, wenn die Anzahl der Pods, die am Service-Mesh teilnehmen, steigt.

Wenn die Einstellung zu niedrig ist, hat Istiod eine höhere Chance, bei Knotenabläufen oder -upgrades ein Single Point of Failure zu werden.

Erhöhen Sie die Anzahl der Replikate, wenn die Anzahl der Meshed-Pods steigt.

rollingUpdate N

Steuert die Aktualisierungsstrategie für das Istio-Deployment.

Nicht anwendbar Nicht anwendbar Nicht anwendbar
customizeConfigMap N

Steuert die Istio-Konfiguration auf Operatorebene.

Nicht anwendbar Nicht anwendbar Nicht anwendbar
discovery.ContainerResources J

Definiert CPU- und Speicherressourcen für den Discovery-Container istiod .

Die CPU- und Speicheranforderungen können mit zunehmender Anzahl von Meshed-Proxys und der Größe der Istio-Konfiguration steigen.

Bei Untermaß kann die Istio-Steuerebene CPU- oder speicherhungrig sein, was zu einer langsameren Ausbreitung der Konfiguration, verzögerten Sidecar-Updates und einer Instabilität bei hoher Mesh-Abwanderung führt.

Weisen Sie ausreichend CPU und Speicher für Istiod basierend auf Mesh-Größe und -Traffic zu, und überwachen Sie die Ressourcenauslastung regelmäßig, um Engpässe auf Control-Plane zu vermeiden, wenn das Cluster wächst.
discovery.EnvVariables N

Definiert Umgebungsvariablen für den Discovery-Container der Istio-Kontrollebene.

Nicht anwendbar Nicht anwendbar Nicht anwendbar
enableIngressGateway N

Steuert, ob das klassische Istio-Ingress-Gateway aktiviert ist.

Nicht anwendbar Nicht anwendbar

Aktivieren Sie das Ingress-Gateway nur, wenn das Cluster das klassische Istio-Ingress-Gateway erfordert.

istio-ingressgateway.Annotations J

Definiert Annotationen für das Istio-Ingress-Gateway, einschließlich Annotationen, die den Load-Balancer-Typ und die Ausprägung steuern.

Die erforderliche Load-Balancer-Konfiguration hängt von der Trafficmenge ab, die das Ingress-Gateway empfängt oder empfangen wird, und nicht direkt von der Anzahl der Clusterknoten.

Wenn das Ingress-Gateway falsch konfiguriert ist, kann es mit der falschen Load-Balancer-Ausprägung oder dem falschen Load-Balancer-Typ bereitgestellt werden (z.B. falsche OCI-LB-Ausprägung oder NLB-Einstellung). Dies kann zu falschen Belichtungen, Durchsatzlimits oder Traffic-Routingproblemen führen.

Konfigurieren Sie OCI-Load-Balancer-Annotationen entsprechend Ihren Anforderungen an den Produktionstraffic und Ihrer Netzwerkarchitektur, um ein optimales Load Balancing, Skalierbarkeit und High Availability sicherzustellen.
istio-ingressgateway.HorizontalPodAutoscalerMinReplicas J

Definiert die Mindestanzahl von Istio-Ingress-Gatewayreplikaten, die von Horizontal Pod Autoscaler verwaltet werden.

Möglicherweise sind weitere Ingress-Gatewayreplikate erforderlich, wenn der Traffic steigt.

Wenn sie zu niedrig ist, hat das Ingress-Gateway weniger Baseline-Kapazität und wird bei Spitzen eher zu einem Trafficengpass. Wenn es 1 ist, gibt es auch weniger Resilienz bei Störungen.

Erhöhen Sie die Mindestanzahl an Replikaten, wenn der Datenverkehr zunimmt, um die Verfügbarkeit und Fehlertoleranz aufrechtzuerhalten.

istio-ingressgateway.HorizontalPodAutoscalerMaxReplicas J

Definiert die maximale Anzahl von Istio-Ingress-Gatewayreplikaten, die Horizontal Pod Autoscaler erstellen kann.

Das Ingress-Gateway muss möglicherweise auf mehr Replikate skaliert werden, wenn der Traffic steigt.

Wenn dieser Wert zu niedrig ist, kann das Ingress-Gateway bei Trafficübergängen nicht ausreichend skalieren, was zu Latenzzeiten oder gelöschten Verbindungen führen kann.

Erhöhen Sie die maximale Anzahl von Replikaten, wenn der Datenverkehr zunimmt, um Verfügbarkeit und Fehlertoleranz aufrechtzuerhalten.

istio-ingressgateway.PodDisruptionBudgetMinAvailable J

Definiert die Mindestanzahl oder den Prozentsatz der Istio-Ingress-Gatewaypods, die während einer freiwilligen Unterbrechung verfügbar bleiben müssen.

Möglicherweise ist ein höherer Mindestverfügbarkeitswert erforderlich, da der Ingress-Traffic zunimmt.

Wenn sie zu niedrig sind, können Upgrades oder Knotenabläufe zu viele Gateways gleichzeitig entfernen und einen Ingress-Ausfall verursachen.

Erhöhen Sie den Mindestverfügbarkeitswert, wenn der Traffic steigt, um High Availability aufrechtzuerhalten.

istiod.HorizontalPodAutoscalerMinReplicas J

Definiert die Mindestanzahl von istiod -Replikaten, die von Horizontal Pod Autoscaler verwaltet werden.

Möglicherweise sind weitere istiod -Replikate erforderlich, wenn die Größe des Service-Mesh zunimmt.

Wenn sie zu niedrig ist, beginnt die Kontrollebene mit zu wenig Kapazität und fällt eher bei Konfigurations-Bursts zurück.

Erhöhen Sie die Mindestanzahl an Replikaten, wenn die Netzgröße zunimmt. Verwenden Sie mindestens drei Replikate, um die Verfügbarkeit aufrecht zu erhalten.

istiod.HorizontalPodAutoscalerMaxReplicas J

Definiert die maximale Anzahl von istiod -Replikaten, die Horizontal Pod Autoscaler erstellen kann.

Möglicherweise sind weitere istiod -Replikate erforderlich, wenn vorhandene Replikate ihre Ressourcenlimits erreichen oder überschreiten.

Wenn es zu niedrig ist, kann Istiod nicht genug skalieren, um Netzwachstum, Konfigurationsabwanderung oder eine große Anzahl von Seitenwagen zu bewältigen.

Erhöhen Sie die maximale Anzahl von Replikaten, wenn istiod -Pods ihre Ressourcenlimits konsistent erreichen oder überschreiten.

istiod.PodDisruptionBudgetMinAvailable J

Definiert die Mindestanzahl oder den Prozentsatz der istiod -Pods, die während einer freiwilligen Unterbrechung verfügbar bleiben müssen.

Die Verwaltung der verfügbaren istiod -Replikate wird immer wichtiger, wenn die Control Plane ein großes Service-Mesh verwaltet.

Wenn sie zu niedrig ist, kann eine Drainage oder ein Upgrade die Kontrollebene nicht verfügbar machen, und die Seitenwageneinspritzung kann clusterweit ausfallen.

Konfigurieren Sie den Wert so, dass einige istiod -Pods während Neustarts und Konfigurationsupdates verfügbar bleiben.

profile N

Gibt das Istio-Installationsprofil an.

Nicht anwendbar Nicht anwendbar Nicht anwendbar