Dieses Dokument wurde mithilfe automatisierter maschineller Übersetzungstechnologie übersetzt. Wir bemühen uns um korrekte Übersetzungen, übernehmen jedoch keine Gewähr für die Vollständigkeit, Richtigkeit oder Zuverlässigkeit der übersetzten Inhalte. Im Falle von Abweichungen ist die englische Originalversion maßgebend und stellt den verbindlichen Text dar.

Fügen Sie Implementierungen und Dienste mit dem Istio-Sidecar hinzu

Rancher-Istio ist seit Rancher v2.12.0 ausgelaufen; verwenden Sie stattdessen die SUSE Application Collection Version von Istio für verbesserte Sicherheit (in SUSE Rancher Prime Abonnements enthalten). Detaillierte Informationen finden Sie in dieser Ankündigung.

Voraussetzung:

Um Istio für eine Arbeitslast zu aktivieren, müssen Cluster und Namespace die Istio App installiert haben.

Die Aktivierung von Istio in einem Namespace ermöglicht nur die automatische Sidecar-Injektion für neue Arbeitslasten. Um das Envoy-Sidecar für bestehende Arbeitslasten zu aktivieren, müssen Sie es manuell für jede Arbeitslast aktivieren.

Um das Istio-Sidecar in einer bestehenden Arbeitslast im Namespace zu injizieren,

  1. Klicken Sie in der oberen linken Ecke auf ☰ > Clusterverwaltung.

  2. Gehen Sie auf der Cluster-Seite zu dem Cluster, in dem Sie die Visualisierungen sehen möchten, und klicken Sie auf Erkunden.

  3. Klicken Sie auf Arbeitslast.

  4. Gehen Sie zu der Arbeitslast, in die Sie das Istio-Sidecar injizieren möchten, und klicken Sie auf ⋮ > Neu bereitstellen. Wenn die Arbeitslast neu bereitgestellt wird, wird das Envoy-Sidecar automatisch injiziert.

Warten Sie ein paar Minuten, bis die Arbeitslast aktualisiert wurde und das Istio-Sidecar erhält. Klicken Sie darauf und gehen Sie zum Abschnitt Container. Sie sollten istio-proxy neben Ihrer ursprünglichen Arbeitslast sehen können. Das bedeutet, dass das Istio-Sidecar für die Arbeitslast aktiviert ist. Istio erledigt die gesamte Verkabelung für das Sidecar Envoy. Jetzt kann Istio alle Funktionen automatisch ausführen, wenn Sie sie in der YAML aktivieren.

Fügen Sie Implementierungen und Dienste hinzu

Es gibt einige Möglichkeiten, neue Implementierungen in Ihrem Namespace hinzuzufügen:

  1. Klicken Sie auf ☰ > Clusterverwaltung.

  2. Gehen Sie zu dem Cluster, das Sie erstellt haben, und klicken Sie auf Erforschen.

  3. Klicken Sie auf Arbeitslast.

  4. Klicken Sie auf Erstellen.

  5. Klicken Sie auf Implementierung.

  6. Füllen Sie das Formular aus oder Als YAML bearbeiten.

  7. Klicken Sie auf Erstellen.

Um einen Dienst zu Ihrem Namespace hinzuzufügen:

  1. Klicken Sie auf ☰ > Clusterverwaltung.

  2. Gehen Sie zu dem Cluster, das Sie erstellt haben, und klicken Sie auf Erforschen.

  3. Klicken Sie menu:Service Discovery[Services].

  4. Klicken Sie auf Erstellen.

  5. Wählen Sie den Typ des Dienstes aus, den Sie möchten.

  6. Füllen Sie das Formular aus oder Als YAML bearbeiten.

  7. Klicken Sie auf Erstellen

Sie können auch Bereitstellungen und Dienste mit dem kubectl Shell erstellen.

  1. Führen Sie kubectl create -f <name of service/deployment file>.yaml aus, wenn Ihre Datei lokal im Cluster gespeichert ist.

  2. Oder führen Sie `cat<< EOF | kubectl apply -f -` aus, fügen Sie den Inhalt der Datei in das Terminal ein und führen Sie dann EOF aus, um den Befehl abzuschließen.

Beispiel-Implementierungen und -Dienste

Als nächstes fügen wir die Kubernetes-Ressourcen für die Beispielimplementierungen und -dienste der BookInfo-App in der Istio-Dokumentation hinzu:

  1. Klicken Sie auf ☰ > Clusterverwaltung.

  2. Gehen Sie zu dem Cluster, das Sie erstellt haben, und klicken Sie auf Erkunden.

  3. Öffnen Sie in der oberen Navigationsleiste die kubectl-Shell.

  4. Führen Sie cat<< EOF | kubectl apply -f - aus.

  5. Kopieren Sie die folgenden Ressourcen in die Shell.

  6. Führen Sie EOF aus.

Dies wird die folgenden Beispielressourcen aus der Istio-Beispielanwendung BookInfo einrichten:

Details zu Dienst und Implementierung:

  • Ein details Dienst

  • Ein ServiceAccount für bookinfo-details

  • Eine details-v1 Implementierung

Bewertungsdienst und -implementierung:

  • Ein ratings Dienst

  • Ein ServiceAccount für bookinfo-ratings

  • Eine ratings-v1 Implementierung

Reviews-Dienst und -Implementierungen (drei Versionen):

  • Ein reviews Dienst

  • Ein ServiceAccount für bookinfo-reviews

  • Eine reviews-v1 Implementierung

  • Eine reviews-v2 Implementierung

  • Eine reviews-v3 Implementierung

Productpage-Dienst und -Implementierung:

Dies ist die Hauptseite der App, die von einem Webbrowser aus sichtbar ist. Die anderen Dienste werden von dieser Seite aufgerufen.

  • Ein productpage Dienst

  • Ein ServiceAccount für bookinfo-productpage

  • Eine productpage-v1 Implementierung

Ressourcen-YAML

# Copyright 2017 Istio Authors
#
#   Licensed under the Apache License, Version 2.0 (the "License");
#   you may not use this file except in compliance with the License.
#   You may obtain a copy of the License at
#
#       http://www.apache.org/licenses/LICENSE-2.0
#
#   Unless required by applicable law or agreed to in writing, software
#   distributed under the License is distributed on an "AS IS" BASIS,
#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#   See the License for the specific language governing permissions and
#   limitations under the License.

##################################################################################################
# Details service
##################################################################################################
apiVersion: v1
kind: Service
metadata:
  name: details
  labels:
    app: details
    service: details
spec:
  ports:
  - port: 9080
    name: http
  selector:
    app: details
---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: bookinfo-details
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: details-v1
  labels:
    app: details
    version: v1
spec:
  replicas: 1
  selector:
    matchLabels:
      app: details
      version: v1
  template:
    metadata:
      labels:
        app: details
        version: v1
    spec:
      serviceAccountName: bookinfo-details
      containers:
      - name: details
        image: docker.io/istio/examples-bookinfo-details-v1:1.15.0
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 9080
---
##################################################################################################
# Ratings service
##################################################################################################
apiVersion: v1
kind: Service
metadata:
  name: ratings
  labels:
    app: ratings
    service: ratings
spec:
  ports:
  - port: 9080
    name: http
  selector:
    app: ratings
---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: bookinfo-ratings
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: ratings-v1
  labels:
    app: ratings
    version: v1
spec:
  replicas: 1
  selector:
    matchLabels:
      app: ratings
      version: v1
  template:
    metadata:
      labels:
        app: ratings
        version: v1
    spec:
      serviceAccountName: bookinfo-ratings
      containers:
      - name: ratings
        image: docker.io/istio/examples-bookinfo-ratings-v1:1.15.0
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 9080
---
##################################################################################################
# Reviews service
##################################################################################################
apiVersion: v1
kind: Service
metadata:
  name: reviews
  labels:
    app: reviews
    service: reviews
spec:
  ports:
  - port: 9080
    name: http
  selector:
    app: reviews
---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: bookinfo-reviews
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: reviews-v1
  labels:
    app: reviews
    version: v1
spec:
  replicas: 1
  selector:
    matchLabels:
      app: reviews
      version: v1
  template:
    metadata:
      labels:
        app: reviews
        version: v1
    spec:
      serviceAccountName: bookinfo-reviews
      containers:
      - name: reviews
        image: docker.io/istio/examples-bookinfo-reviews-v1:1.15.0
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 9080
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: reviews-v2
  labels:
    app: reviews
    version: v2
spec:
  replicas: 1
  selector:
    matchLabels:
      app: reviews
      version: v2
  template:
    metadata:
      labels:
        app: reviews
        version: v2
    spec:
      serviceAccountName: bookinfo-reviews
      containers:
      - name: reviews
        image: docker.io/istio/examples-bookinfo-reviews-v2:1.15.0
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 9080
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: reviews-v3
  labels:
    app: reviews
    version: v3
spec:
  replicas: 1
  selector:
    matchLabels:
      app: reviews
      version: v3
  template:
    metadata:
      labels:
        app: reviews
        version: v3
    spec:
      serviceAccountName: bookinfo-reviews
      containers:
      - name: reviews
        image: docker.io/istio/examples-bookinfo-reviews-v3:1.15.0
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 9080
---
##################################################################################################
# Productpage services
##################################################################################################
apiVersion: v1
kind: Service
metadata:
  name: productpage
  labels:
    app: productpage
    service: productpage
spec:
  ports:
  - port: 9080
    name: http
  selector:
    app: productpage
---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: bookinfo-productpage
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: productpage-v1
  labels:
    app: productpage
    version: v1
spec:
  replicas: 1
  selector:
    matchLabels:
      app: productpage
      version: v1
  template:
    metadata:
      labels:
        app: productpage
        version: v1
    spec:
      serviceAccountName: bookinfo-productpage
      containers:
      - name: productpage
        image: docker.io/istio/examples-bookinfo-productpage-v1:1.15.0
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 9080
---