In diesem Lernprogramm erfahren Sie, wie Sie eine einfache hello-world
-Anwendung in einem TKG-Arbeitslastcluster (Tanzu Kubernetes Grid) bereitstellen, sie über eine externe IP-Adresse verfügbar machen und dann über einen Browser online darauf zugreifen.
Zum Bereitstellen einer Beispielanwendung benötigen Sie Folgendes:
kubectl
und die Carvel-Tools ausgeführt werden. Anweisungen finden Sie unter Installieren der Tanzu CLI und anderer Tools zur Verwendung mit einem vSphere with Tanzu Supervisor oder Installieren der Tanzu CLI und anderer Tools für die Verwendung mit eigenständigen Verwaltungsclustern.Stellen Sie die hello-world
-Anwendung bereit, indem Sie die YAML-Beispieldatei für die Konfiguration kopieren und auf einen Arbeitslastcluster anwenden.
HinweisVMware empfiehlt, keine Arbeitslasten in einem eigenständigen Verwaltungscluster bereitzustellen. Das hat folgende Gründe:
- Eigenständige Verwaltungs- und Arbeitslastcluster verfolgen unterschiedliche Interessen.
- Eigenständige Verwaltungscluster werden nicht wie Arbeitslastcluster gesichert. Um Stabilität zu gewährleisten, wird die Konfiguration des eigenständigen Verwaltungsclusters am besten als Code verwaltet.
Erstellen Sie eine YAML-Datei für die hello-world
-Anwendung mit folgender Konfiguration:
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app.kubernetes.io/name: load-balancer-example
name: hello-world
spec:
replicas: 5
selector:
matchLabels:
app.kubernetes.io/name: load-balancer-example
template:
metadata:
labels:
app.kubernetes.io/name: load-balancer-example
spec:
containers:
- image: gcr.io/google-samples/node-hello:1.0
name: hello-world
ports:
- containerPort: 8080
Wenn im Arbeitslastcluster ein Windows-Image verwendet wird (eine detaillierte Beschreibung finden Sie unter Benutzerdefinierte Windows-Maschinen-Images), fügen Sie die folgenden spec.template.spec.tolerations
hinzu und rücken Sie sie in die Zeile mit obigen containers
ein:
tolerations:
- value: "windows"
key: os
operator: Equal
effect: "NoSchedule"
nodeSelector:
kubernetes.io/os: windows
Speichern Sie die YAML-Datei unter dem Namen load-balancer-example.yaml
.
Legen Sie kubectl
auf den Kontext des Arbeitslastclusters fest, indem Sie folgenden Befehl ausführen:
kubectl config use-context CLUSTER-admin@CLUSTER
Dabei gilt: CLUSTER
ist der Name des Arbeitslastclusters.
Stellen Sie die Anwendung auf dem Arbeitslastcluster bereit:
kubectl apply -f load-balancer-example.yaml
Die Ausgabe entspricht:
deployment.apps/hello-world created
Erstellen Sie ein Dienstobjekt, um die externe IP-Adresse der Anwendung verfügbar zu machen, damit Sie über einen Browser auf die Anwendung zugreifen können.
Erstellen Sie ein Dienstobjekt mit dem Namen my-service
:
kubectl expose deployment hello-world --type=LoadBalancer --name=my-service
Die Ausgabe entspricht:
service/my-service exposed
Greifen Sie mithilfe der entsprechenden externen IP-Adresse über einen Browser auf die hello-world
-Anwendung zu.
Notieren Sie sich die Werte für LoadBalancer Ingress
und TargetPort
aus der Ausgabe des folgenden Befehls, um sie im nächsten Schritt zu verwenden:
kubectl describe services my-service
Die Ausgabe entspricht:
Name: my-service
Namespace: default
Labels: app.kubernetes.io/name=load-balancer-example
Annotations: <none>
Selector: app.kubernetes.io/name=load-balancer-example
Type: LoadBalancer
IP Families: <none>
IP: 100.67.254.91
IPs: 100.67.254.91
LoadBalancer Ingress: 10.186.21.200
Port: <unset> 8080/TCP
TargetPort: 8080/TCP
NodePort: <unset> 32202/TCP
Endpoints: 100.96.1.15:8080,100.96.1.16:8080,100.96.1.17:8080 + 2 more...
Session Affinity: None
External Traffic Policy: Cluster
HinweisWenn
LoadBalancer Ingress
nicht angezeigt wird, stellen Sie sicher, dass für diesen Arbeitslastcluster ein Lastausgleichsdienst konfiguriert wurde.
Navigieren Sie in einem Browser zu https://IP:PORT
, wobei IP
der Wert von LoadBalancer Ingress
und PORT
der Portnummernwert von TargetPort
ist, den Sie im vorherigen Schritt aufgezeichnet haben. Beispiel: https://10.186.21.200:8080
.
In der hello-world
-Anwendung wird Folgendes angezeigt:
Hello Kubernetes!
Nach der Bereitstellung der Anwendung können Sie nun den Datenverkehr verwalten, Protokolle anzeigen und zugehörige Vorgänge mit Paketen wie Contour, Fluent Bit, Prometheus und Grafana überwachen. Informationen zum Installieren dieser Pakete finden Sie unter Installieren und Verwalten von Paketen mit der Tanzu CLI.
Informationen zum Sichern und Wiederherstellen oder Migrieren Ihrer Arbeitslasten mit Velero finden Sie unter Sichern und Wiederherstellen von Clusterarbeitslasten.