|
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,
-
Klicken Sie in der oberen linken Ecke auf ☰ > Clusterverwaltung.
-
Gehen Sie auf der Cluster-Seite zu dem Cluster, in dem Sie die Visualisierungen sehen möchten, und klicken Sie auf Erkunden.
-
Klicken Sie auf Arbeitslast.
-
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:
-
Klicken Sie auf ☰ > Clusterverwaltung.
-
Gehen Sie zu dem Cluster, das Sie erstellt haben, und klicken Sie auf Erforschen.
-
Klicken Sie auf Arbeitslast.
-
Klicken Sie auf Erstellen.
-
Klicken Sie auf Implementierung.
-
Füllen Sie das Formular aus oder Als YAML bearbeiten.
-
Klicken Sie auf Erstellen.
Um einen Dienst zu Ihrem Namespace hinzuzufügen:
-
Klicken Sie auf ☰ > Clusterverwaltung.
-
Gehen Sie zu dem Cluster, das Sie erstellt haben, und klicken Sie auf Erforschen.
-
Klicken Sie menu:Service Discovery[Services].
-
Klicken Sie auf Erstellen.
-
Wählen Sie den Typ des Dienstes aus, den Sie möchten.
-
Füllen Sie das Formular aus oder Als YAML bearbeiten.
-
Klicken Sie auf Erstellen
Sie können auch Bereitstellungen und Dienste mit dem kubectl Shell erstellen.
-
Führen Sie
kubectl create -f <name of service/deployment file>.yamlaus, wenn Ihre Datei lokal im Cluster gespeichert ist. -
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
EOFaus, 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:
-
Klicken Sie auf ☰ > Clusterverwaltung.
-
Gehen Sie zu dem Cluster, das Sie erstellt haben, und klicken Sie auf Erkunden.
-
Öffnen Sie in der oberen Navigationsleiste die kubectl-Shell.
-
Führen Sie
cat<< EOF | kubectl apply -f -aus. -
Kopieren Sie die folgenden Ressourcen in die Shell.
-
Führen Sie
EOFaus.
Dies wird die folgenden Beispielressourcen aus der Istio-Beispielanwendung BookInfo einrichten:
Details zu Dienst und Implementierung:
-
Ein
detailsDienst -
Ein ServiceAccount für
bookinfo-details -
Eine
details-v1Implementierung
Bewertungsdienst und -implementierung:
-
Ein
ratingsDienst -
Ein ServiceAccount für
bookinfo-ratings -
Eine
ratings-v1Implementierung
Reviews-Dienst und -Implementierungen (drei Versionen):
-
Ein
reviewsDienst -
Ein ServiceAccount für
bookinfo-reviews -
Eine
reviews-v1Implementierung -
Eine
reviews-v2Implementierung -
Eine
reviews-v3Implementierung
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
productpageDienst -
Ein ServiceAccount für
bookinfo-productpage -
Eine
productpage-v1Implementierung
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
---