In diesem Thema erfahren Sie, wie Sie Anthos Service Mesh installieren, das in einem Ingress-Gateway vorinstalliert ist. Mit Anthos Service Mesh können Sie eine Kubernetes-Ingress-Ressource für Ihre Deployments konfigurieren, wenn Sie einen Ingress-Controller benötigen. Dieses Thema enthält ein Beispiel, das zeigt, wie Sie eine Beispiel-Deployment-Ressource und eine Beispiel-Ingress-Ressource konfigurieren.
Die Installation von Anthos Service Mesh besteht aus zwei Hauptteilen:
- Bestimmte Version der vom Kunden verwalteten Steuerungsebene von Anthos Service Mesh und Ingress-Gateway installieren.
- Labels mit Namespaces mit einem Überarbeitungslabel versehen und Ihre Arbeitslasten noch einmal bereitstellen, um einen Sidecar-Proxy einzufügen.
Wenn Sie nur ein Ingress-Objekt mit einem Ingress-Controller verwenden müssen, müssen Sie keinen Sidecar-Proxy in Ihre Arbeitslast-Pods einfügen. Wenn Sie jedoch die Sicherheitsvorteile von Anthos Service Mesh und die Möglichkeiten des Traffic-Routings nutzen wollen, müssen Sie die Sidecar-Proxys einbinden.
Hinweis
Bevor Sie Anthos-Cluster auf AWS verwenden, führen Sie die folgenden Aufgaben aus:
- Sie haben dafür gesorgt, dass die Voraussetzungen erfüllt sind.
- Der Verwaltungsdienst muss installiert sein.
- Nutzercluster erstellen
- Registrieren Sie Ihren Cluster bei Connect. Folgen Sie dazu den Schritten unter Verbindung mit dem Cluster über die Cloud Console herstellen.
- Konfigurieren Sie Ihren Cluster für die Verwendung von Workload Identity mit Google Cloud.
Wenn Ihre Nutzercluster den ausgehenden Zugriff auf das Internet beschränkt haben, lassen Sie den Zugriff auf die folgenden Container-Repository-Domains zu:
docker.io
quay.io
Verwenden Sie im Verzeichnis
anthos-aws
anthos-gke
, um den Kontext zu Ihrem Nutzercluster zu wechseln.cd anthos-aws env HTTPS_PROXY=http://localhost:8118 \ anthos-gke aws clusters get-credentials CLUSTER_NAME
Ersetzen Sie CLUSTER_NAME durch den Nutzerclusternamen.
Anthos Service Mesh installieren
Folgen Sie der Anleitung unter Anthos Service Mesh installieren.
Beispiel-Deployment erstellen
In diesem Abschnitt installieren Sie eine Beispielanwendung und erstellen einen Ingress-Endpunkt dafür.
Erstellen Sie ein Deployment von
hello-app
und eine ClusterIP für das Deployment. Kopieren Sie das folgende YAML-Manifest in eine Datei mit dem Namenhello-app.yaml
:apiVersion: apps/v1 kind: Deployment metadata: labels: app: hello-app name: hello-app spec: selector: matchLabels: app: hello-app replicas: 3 template: metadata: labels: app: hello-app spec: containers: - name: hello image: "gcr.io/google-samples/hello-app:2.0" --- apiVersion: v1 kind: Service metadata: labels: app: hello-app name: hello-app spec: type: ClusterIP selector: app: hello-app ports: - protocol: TCP port: 8080 targetPort: 8080
Wenden Sie die YAML mit
kubectl apply
auf Ihren Cluster an.env HTTPS_PROXY=http://localhost:8118 \ kubectl apply -f hello-app.yaml
Erstellen Sie ein Kubernetes Ingress für die Beispielanwendung. Kopieren Sie das folgende YAML-Manifest in eine Datei mit dem Namen
hello-app-ingress.yaml
:apiVersion: networking.k8s.io/v1beta1 kind: Ingress metadata: annotations: kubernetes.io/ingress.class: istio labels: app: hello-app name: hello-app spec: rules: - host: http: paths: - backend: serviceName: hello-app servicePort: 8080
Erstellen Sie das Ingress, indem Sie die Konfiguration mit
kubectl apply
anwenden.env HTTPS_PROXY=http://localhost:8118 \ kubectl apply -f hello-app-ingress.yaml
Prüfen Sie den Status Ihres Gateways mit
kubectl get svc
.env HTTPS_PROXY=http://localhost:8118 \ kubectl get ingress hello-app
Das Feld
ADDRESS
sollte einen ELB-Domainnamen haben. WennADDRESS
weiterhinpending
ist, prüfen Sie das VPC- und Subnetz-Labeling.Sie können die Ingress-Gateway-URL prüfen, indem Sie den Host und den Port zusammenstellen. Führen Sie die folgenden Befehle aus, um Ihre Gateway-URL abzurufen:
export INGRESS_URL=$(env HTTPS_PROXY=http://localhost:8118 \ kubectl get ingress hello-app -o jsonpath='{.status.loadBalancer.ingress[0].hostname}') echo "Your hello-app Ingress URL is: http://"$INGRESS_URL
Mit dem letzten Endpunkt wird der Endpunkt des Ingress ausgegeben.
Wenn Sie einen öffentlichen Ingress erstellt haben, können Sie die
hello-app
Standardwebseite incurl
unterhttp://$INGRESS_URL/
aufrufen.curl $INGRESS_URL/
Bereinigen
Sie entfernen die hello-app
-Komponenten mit kubectl delete
.
env HTTPS_PROXY=http://localhost:8118 \
kubectl delete -f hello-app.yaml &&\
kubectl delete -f hello-app-ingress.yaml
Informationen zum Entfernen von Anthos Service Mesh finden Sie unter Anthos Service Mesh deinstallieren.
Weitere Informationen
Mehr zu folgenden Themen: