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.
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
-
Istio-Architektur: Sidecars, Data Plane und Control Plane Was istiod tatsächlich tut, wie Envoy-Sidecars hineinpassen und warum weder deine App noch ihre Manifeste wissen müssen, dass Istio existiert. -
Istio mit istioctl installieren und Sidecar-Injection aktivieren Bring ein Mesh auf einem lokalen Cluster zum Laufen, bestätige, dass es gesund ist, und lass den Sidecar deines ersten Workloads einschleusen. -
Eine Istio-Installation mit istioctl prüfen und debuggen Fange eine Fehlkonfiguration ab, bevor sie zuschlägt: analyze, validate, proxy-status und das eine Label, von dem das Mesh stillschweigend abhängt. -
Dein Mesh beobachten: Prometheus, Grafana, Tracing und Kiali Jeder Sidecar gibt bereits Metriken und Traces aus – installiere die Add-ons, die daraus etwas machen, das du tatsächlich ansehen kannst.