Blog

Installation von Istio auf Amazon EKS (Managed Kubernetes Service)

Bild von Boyan Kirov
Bojan Kirow
DevOps- und Cloud-Ingenieur
11.05.2022
Lesezeit: 4 Minuten.
Zuletzt aktualisiert: 16.01.2025

Inhaltsübersicht

Was ist Istio?

Istio ist ein Open-Source-Service-Mesh, eine modernisierte Service-Networking-Schicht, die eine transparente Möglichkeit zur einfachen und flexiblen Automatisierung von Anwendungsnetzwerkprozessen bietet. Es wird transparent auf bestehende verteilte Anwendungen aufgesetzt. Die Kernkonzepte von Istio sind Verkehrsmanagement, Beobachtbarkeit und Sicherheitsfunktionen.

Warum Istio verwenden? 

Istio hilft Unternehmen, verteilte, Microservices-basierte Anwendungen überall auszuführen. Die leistungsstarken Funktionen von Istio bieten eine einheitliche und effizientere Methode zur Sicherung, Verbindung und Überwachung von Kubernetes-Diensten.

  • Service Mesh ist das Cloud-native Gegenstück zu TCP/IP. Es erleichtert die Kommunikation, Transparenz und Sicherheit von Anwendungsnetzwerken.
  • Istio ist die derzeit beliebteste Service-Mesh-Implementierung, die auf Kubernetes basiert, aber auch für die Last virtueller Maschinen skalierbar ist.
  • Istio fungiert als Netzwerkschicht der Cloud-Infrastruktur und ist für Anwendungen transparent.

Wofür wird das Istio-Dienstnetz verwendet?

Istio verwaltet den Datenverkehr zwischen den Diensten, fasst Daten zusammen und stärkt die Zugriffsrichtlinien mit wenigen bis gar keinen Änderungen am Anwendungscode. Es verringert die Komplexität der Bereitstellung, da es transparent auf bestehende verteilte Anwendungen aufgesetzt wird.

Istio ermöglicht Lastausgleich, Service-to-Service-Authentifizierung und Überwachung. Die leistungsstarke Steuerungsebene von Istio bietet entscheidende Funktionen, wie z. B.:

  • Sichere Kommunikation von Dienst zu Dienst in einem Cluster mit TLS-Verschlüsselung, starker identitätsbasierter Autorisierung und Authentifizierung.
  • Automatischer Lastausgleich.
  • Fein abgestufte Steuerung des Verkehrsverhaltens mit umfangreichen Routing-Regeln, Fault Injection und Failover.
  • Eine Richtlinienschicht und eine Konfigurations-API, die Zugriffskontrolle, Ratenbegrenzungen und Kontingente unterstützen.
  • Automatische Logs, Metriken und Traces für den gesamten Datenverkehr innerhalb eines Clusters, einschließlich der Ein- und Ausgänge des Clusters.

Was ist der Nutzen von Istio in Kubernetes?

Bei Kubernetes geht es im Wesentlichen um die Verwaltung des Anwendungslebenszyklus durch deklarative Konfiguration, während ein Service-Mesh den Verkehr zwischen den Anwendungen ermöglicht und die Sicherheitsverwaltung und Beobachtbarkeit verbessert. Sobald Sie über eine Anwendungsplattform mit Kubernetes verfügen, erleichtert das Istio-Service-Mesh die Implementierung des Lastausgleichs und der Verkehrskontrolle für Aufrufe zwischen Diensten. 

Istio ergänzt Kubernetes, indem es das Verkehrsmanagement, die Sicherheit und die Beobachtbarkeit für verteilte Cloud-native Anwendungen verbessert.

Istio auf Kubernetes installieren


Bevor wir mit Istio beginnen, müssen wir unseren Kubernetes-Cluster einrichten.
Zu diesem Zweck werden wir den Amazon Managed Kubernetes Service namens Amazon EKS verwenden.

Zunächst werden wir AWS CLI verwenden.

1 . Wir müssen eine Virtual Private Cloud (VPC) erstellen.
aws cloudformation create-stack -region region-code -stack-name my-eks-vpc-NAME -template-url https://amazon-eks.s3.us-west-2.amazonaws.com/cloudformation/2020-10-29/amazon-eks-vpc-private-subnets.yaml

2. Erstellen Sie eine Cluster-IAM-Rolle und fügen Sie ihr die erforderliche von Amazon EKS verwaltete IAM-Richtlinie zu. Von Amazon EKS verwaltete Kubernetes-Cluster rufen in Ihrem Namen andere AWS-Services auf, um die Ressourcen zu verwalten, die Sie mit dem Service nutzen.

  1. Copy the following contents to a file named cluster-role-trust-policy.json.
    { “Version”: “2012-10-17”, “Statement”: [ { “Effect”: “Allow”, “Principal”: { “Service”: “eks.amazonaws.com” }, “Action”: “sts:AssumeRole” } ] }
    Create the role :
    aws iam create-role –role-name myAmazonEKSClusterRole –assume-role-policy-document file://”cluster-role-trust-policy.json

Fügen Sie die Rolle hinzu:
aws iam attach-role-policy -policy-arn arn:aws:iam::aws:policy/AmazonEKSClusterPolicy -role-name myAmazonEKSClusterRole

Wir müssen unseren Cluster erstellen und ihn in der AWS-Verwaltungskonsole benennen>

Dies gilt für den Knoten der Steuerebene, dann müssen wir Arbeiterknoten hinzufügen.

Amazon EKS

Hinzufügen von Knoten zum Cluster -
Erstellen Sie eine verwaltete Knotengruppe und geben Sie die Teilnetze und die IAM-Knotenrolle an, die Sie in den vorherigen Schritten erstellt haben.

So erstellen Sie Ihre von Amazon EC2 Linux verwaltete Knotengruppe

  1. Erstellen Sie eine Knoten-IAM-Rolle und fügen Sie ihr die erforderliche Amazon EKS IAM Managed Policy zu. Der Amazon EKS Node Kubelet Daemon ruft in Ihrem Namen AWS APIs auf. Knoten erhalten Berechtigungen für diese API-Aufrufe über ein IAM-Instanzprofil und zugehörige Richtlinien.

Kopieren Sie den folgenden Inhalt in eine Datei namens node-role-trust-policy.json.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "ec2.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

Erstellen Sie die IAM-Rolle für den Knoten.

aws iam create-role 
  --role-name myAmazonEKSNodeRole 
  --assume-role-policy-document file://"node-role-trust-policy.json"

Fügen Sie der Rolle die erforderlichen verwalteten IAM-Richtlinien hinzu.

aws iam attach-role-policy 
  --policy-arn arn:aws:iam::aws:policy/AmazonEKSWorkerNodePolicy 
  --role-name myAmazonEKSNodeRole
aws iam attach-role-policy 
  --policy-arn arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryReadOnly 
  --role-name myAmazonEKSNodeRole
aws iam attach-role-policy 
  --policy-arn arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy 
  --role-name myAmazonEKSNodeRole

Wir können in unserem Cluster-Konfigurationsmenü im Abschnitt Compute, Node Groups so viele Knoten hinzufügen, wie wir möchten. Für den Zweck von Istio haben wir 2 Knoten hinzugefügt.

Cluster-Konfiguration Kubernetes

Nach diesem Schritt sind wir mit der Cluster-Konfiguration fertig.

konfigurierung aws istio
Amazon EKS

3. Jetzt sind wir bereit für die Installation von Istio

Wir können die Installationsdatei wie folgt verwenden:
curl -L https://istio.io/downloadIstio | sh -

Dann müssen wir sie in den Ordner

cd istio-1.13.1

und fügen Sie dann den Pfad zur PATH-Variable hinzu:
export PATH=$PWD/bin:$PATH


Wir können mit der Installation beginnen. Führen Sie den folgenden Befehl aus:

$ istioctl install

Befehl istio

Jetzt sind wir mit der Installation fertig.
Dann können wir den Befehl
$ kubectl label namespace default istio-injection=enabled ausführen.

Namensraum/Standard beschriftet

Dadurch wird Istio angewiesen, den Sidecar-Envoy-Proxy in jeden Pod aus dem Standard-Namensraum zu injizieren.

Wir können Kiali Dashboard zur Visualisierung des Istio Service Mesh installieren.
kubectl apply -f samples/addons $ kubectl rollout status deployment/kiali -n istio-system

Warten auf den Abschluss des Rollouts von "kiali": 0 von 1 aktualisierten Replikaten sind verfügbar... Rollout von "kiali" erfolgreich abgeschlossen

und dann
$istio dashboard kiali

Istio Dashboard Kiali

Möchten Sie mehr über Istio erfahren? Hier finden Sie unseren Expertenleitfaden und ein praktisches Beispiel für Istio Traffic Management!

Möchten Sie mehr über Istio erfahren?

Sehen Sie sich unser praktisches Beispiel für Istio Traffic Management an!

Eine Antwort hinterlassen

Mehr Beiträge

Kontakt aufnehmen
ITGix bietet Ihnen fachkundige Beratung und maßgeschneiderte DevOps-Services, um Ihr Unternehmenswachstum zu beschleunigen.
Newsletter für
Technik-Experten
Schließen Sie sich 12.000+ Geschäftsführern und Ingenieuren an, die Blogs, e-Books und Fallstudien Fallstudien über neue Technologie erhalten.