Nachdem Sie einen TKG-Cluster bereitgestellt haben, wird empfohlen, eine Testarbeitslast bereitzustellen und die Cluster-Funktionalität zu testen.
Stellen Sie eine Testanwendung bereit, um zu überprüfen, ob Ihr TKG-Cluster betriebsbereit ist und ausgeführt wird.
Voraussetzungen
- Stellen Sie einen TKG-Cluster bereit.
- Stellen Sie eine Verbindung mit dem TKG-Cluster her.
Prozedur
- Stellen Sie einen TKG-Cluster bereit.
Weitere Informationen hierzu finden Sie unter Workflow zum Bereitstellen von TKG-Clustern auf mithilfe von Kubectl.
- Melden Sie sich mithilfe von kubectl bei Supervisor an.
kubectl vsphere login --server=<IP or FQDN> --vsphere-username <USERNAME>
- Ändern Sie den Konfigurationskontext in den vSphere-Namespace, in dem der TKG-Cluster bereitgestellt wird.
kubectl config use-context VSPHERE-NAMESPACE
- Melden Sie sich beim TKG-Zielcluster an.
kubectl vsphere login --server=<IP or FQDN> --vsphere-username <USERNAME> \ --tanzu-kubernetes-cluster-name CLUSTER-NAME \ --tanzu-kubernetes-cluster-namespace NAMESPACE-NAME
- Erstellen Sie die Datei
ping-pod.yaml
mit folgendem Inhalt.apiVersion: v1 kind: Pod metadata: name: ping-pod namespace: default spec: containers: - image: busybox:1.34 name: busybox command: ["ping", "-c"] args: ["1", "8.8.8.8"] imagePullSecrets: - name: regcred restartPolicy: Never
- Erstellen Sie die Anmeldedaten für die
regcred
-Registrierung.Das für dieses Szenario verwendete Container-Image (busybox) wird aus der öffentlichen Docker Hub-Registrierung abgerufen, wodurch das Abrufen von Images eingeschränkt werden kann. Wenn dies der Fall ist, benötigen Sie ein Docker Hub-Konto und einen geheimen Schlüssel zum Abrufen von Images („regcred“), auf den in der Pod-Spezifikation verwiesen wird. Informationen zum Erstellen dieses geheimen Schlüssels finden Sie unter Erstellen eines geheimen Schlüssels für die private Registrierung. - Konfigurieren Sie gegebenenfalls Pod-Sicherheit.
Wenn Sie Tanzu Kubernetes Release v1.24 oder früher verwenden, fahren Sie mit dem nächsten Schritt fort und erstellen Sie den Pod.Wenn Sie Tanzu Kubernetes Release v1.25 verwenden, sind PSA-Warnungen aktiviert. Sie können mit dem nächsten Schritt fortfahren und den Pod erstellen. Beachten Sie jedoch, dass Sie eine Warnung bezüglich Pod-Sicherheitsverstößen erhalten, die Sie ignorieren können.
Warning: would violate PodSecurity "restricted:latest": allowPrivilegeEscalation != false (container "busybox" must set securityContext.allowPrivilegeEscalation=false), unrestricted capabilities (container "busybox" must set securityContext.capabilities.drop=["ALL"]), runAsNonRoot != true (pod or container "busybox" must set securityContext.runAsNonRoot=true), seccompProfile (pod or container "busybox" must set securityContext.seccompProfile.type to "RuntimeDefault" or "Localhost")
Wenn Sie Tanzu Kubernetes Release v1.26 oder höher verwenden, werden PSA-Einschränkungen erzwungen. Wenn Sie den Pod wie im nächsten Schritt gezeigt erstellen, tritt folgender Fehler auf.Error from server (Forbidden): error when creating "ping-pod.yaml": pods "ping-pod" is forbidden: violates PodSecurity "restricted:latest": allowPrivilegeEscalation != false (container "busybox" must set securityContext.allowPrivilegeEscalation=false), unrestricted capabilities (container "busybox" must set securityContext.capabilities.drop=["ALL"]), runAsNonRoot != true (pod or container "busybox" must set securityContext.runAsNonRoot=true), seccompProfile (pod or container "busybox" must set securityContext.seccompProfile.type to "RuntimeDefault" or "Localhost")
Zur Fehlerbehebung führen Sie folgenden Befehl in demdefault
-Namespace aus, in dem der Pod erstellt wird. Beachten Sie, dass Sie dadurch PSA-Einschränkungen im Namespace entfernen.kubectl label --overwrite ns default pod-security.kubernetes.io/enforce=privileged
Alternativ können Sie securityContext direkt auf den Pod anwenden, wie z. B.:... spec: containers: - image: busybox:1.34 name: busybox command: ["ping", "-c"] args: ["1", "8.8.8.8"] securityContext: allowPrivilegeEscalation: false capabilities: drop: ["ALL"] runAsNonRoot: true runAsUser: 1000 seccompProfile: type: "RuntimeDefault" ...
- Wenden Sie die YAML an.
kubectl apply -f ping-pod.yaml
Erwartetes Ergebnis:pod/ping-pod created
- Überprüfen Sie, ob der Pod erfolgreich abgeschlossen wurde.
kubectl get pods -n default
NAME READY STATUS RESTARTS AGE ping-pod 0/1 Completed 0 13s
- Stellen Sie sicher, dass der Pod den DNS-Server angepingt hat.
kubectl logs ping-pod -f
Erwartetes Ergebnis:PING 8.8.8.8 (8.8.8.8): 56 data bytes 64 bytes from 8.8.8.8: seq=0 ttl=106 time=33.352 ms --- 8.8.8.8 ping statistics --- 1 packets transmitted, 1 packets received, 0% packet loss round-trip min/avg/max = 33.352/33.352/33.352 ms
- Löschen Sie den Pod.
kubectl delete -f ping-pod.yaml
- Überprüfen Sie, ob der Pod gelöscht wurde.
kubectl get pods