Istio Istio

Istio mit Helm installieren und anpassen

Der offiziell empfohlene Weg, Istio in der Produktion zu betreiben, und was den inzwischen entfernten Istio Operator ersetzt hat.

12 min Fortgeschritten

istioctl install ist der schnellste Weg, ein Mesh zum Lernen oder für lokale Tests zum Laufen zu bringen, aber Helm ist Istios offiziell empfohlene Methode für eine produktive Installation, die du über längere Zeit verwalten, versionieren und anpassen willst. Diese Anleitung installiert Istio mit Helm und behandelt, was den Istio Operator für die Art von feingranularer Anpassung ersetzt hat, zu der ältere Materialien dich verweisen.

Ein Hinweis vorab: Der Istio Operator ist weg

Istio lieferte früher einen Istio Operator im Cluster mit: einen Controller, der eine IstioOperator-Custom-Resource beobachtete und den Cluster abglich, damit er passte. Wenn du Tutorials, Zertifizierungsmaterial oder ältere Dokumentation gesehen hast, die darum aufgebaut sind, ein Profil in eine IstioOperator-YAML-Datei zu dumpen und anzuwenden, ist es das, was sie beschreiben. Der Operator im Cluster wurde in Istio 1.23 als veraltet markiert und in 1.24 vollständig entfernt. Er existiert in aktuellen Istio-Releases nicht mehr.

Was ihn ersetzt hat, ist direkter: Helm-Values-Dateien. Dieselbe Anpassung, die früher über eine IstioOperator-Ressource lief, einen Gateway aktivieren, Ressourcen-Requests anpassen, die Einstellung einer Komponente ändern, wird jetzt als Helm-Values ausgedrückt und mit helm install oder helm upgrade angewendet, genau wie du jedes andere Helm-Chart anpassen würdest. Wenn du mit Material lernst, das den Operator als wesentlich darstellt, betrachte das zugrunde liegende Konzept (Einstellungen in einer Datei anpassen, anwenden, Istio gleicht ab) weiterhin als gültig, übersetze aber den Mechanismus auf Helm.

Die drei Kern-Charts installieren

Istios Helm-Installation ist in drei Charts aufgeteilt, die der Reihe nach installiert werden:

helm repo add istio https://istio-release.storage.googleapis.com/charts
helm repo update

# 1. CRDs und clusterweite Ressourcen
helm install istio-base istio/base -n istio-system --create-namespace

# 2. Die Control Plane (istiod)
helm install istiod istio/istiod -n istio-system --wait

# 3. Das Ingress-Gateway (optional, wenn du einen Eintrittspunkt für externen Traffic brauchst)
helm install istio-ingressgateway istio/gateway -n istio-system

istio-base installiert die CustomResourceDefinitions und clusterweiten RBAC-Ressourcen, von denen jedes andere Teil abhängt, und muss zuerst landen. istiod ist die Control Plane selbst. Das Gateway-Chart braucht man nur, wenn man einen verwalteten Ingress (oder Egress) Gateway will; ein Mesh mit reinem Sidecar-zu-Sidecar-Traffic kann es weglassen.

kubectl get pods -n istio-system
helm list -n istio-system

Du solltest istiod und, falls installiert, das Gateway Running sehen, und helm list sollte alle drei Releases zeigen.

Einstellungen mit Values anpassen

Jedes Chart akzeptiert seine eigenen Values, auffindbar auf dieselbe Weise wie bei jedem Helm-Chart:

helm show values istio/istiod > istiod-values.yaml

Bearbeite die Datei und installiere (oder upgrade) dann damit:

helm upgrade istiod istio/istiod -n istio-system -f istiod-values.yaml

Gängige Anpassungen: Ressourcen-Requests und -Limits für istiod oder die Gateways, einen Egress-Gateway aktivieren (bei den meisten Profilen standardmäßig deaktiviert) oder mesh-weite Einstellungen unter meshConfig anpassen. Alles, was der Istio Operator dich früher über spec.components oder spec.meshConfig konfigurieren ließ, hat ein Helm-Values-Äquivalent; Istios eigene Helm-Installationsdokumentation ist die maßgebliche Referenz dafür, welche Values welchem Verhalten für die von dir betriebene Version entsprechen.

Eine Änderung anwenden

helm upgrade istiod istio/istiod -n istio-system -f istiod-values.yaml

Dasselbe Muster wie bei jedem anderen Helm-Upgrade: Values bearbeiten, helm upgrade erneut ausführen, und Helm gleicht die Live-Ressourcen ab, damit sie passen. Es gibt keinen separaten Schritt „Operator-Konfiguration anwenden“, wie ältere Materialien ihn beschreiben; das helm upgrade ist der Anwenden-Schritt.

Deinstallieren

helm uninstall istio-ingressgateway -n istio-system
helm uninstall istiod -n istio-system
helm uninstall istio-base -n istio-system
kubectl delete namespace istio-system

Anders als istioctl uninstall --purge, das alles mit einem Befehl entfernt, deinstalliert Helms Ansatz jedes Release einzeln, in etwa umgekehrt zur Installationsreihenfolge, da spätere Charts von Ressourcen abhängen können, die das Base-Chart erstellt hat.

Beliebte Anleitungen