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

  1. Stellen Sie einen TKG-Cluster bereit.
    Weitere Informationen hierzu finden Sie unter Workflow zum Bereitstellen von TKG-Clustern auf mithilfe von Kubectl.
  2. Melden Sie sich mithilfe von kubectl bei Supervisor an.
    kubectl vsphere login --server=<IP or FQDN> --vsphere-username <USERNAME>
  3. Ändern Sie den Konfigurationskontext in den vSphere-Namespace, in dem der TKG-Cluster bereitgestellt wird.
    kubectl config use-context VSPHERE-NAMESPACE
  4. 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
  5. 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
    
  6. 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.
  7. 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 dem default-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"
    ...
  8. Wenden Sie die YAML an.
    kubectl apply -f ping-pod.yaml
    Erwartetes Ergebnis:
    pod/ping-pod created
  9. Ü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
    
  10. 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
    
  11. Löschen Sie den Pod.
    kubectl delete -f ping-pod.yaml
  12. Überprüfen Sie, ob der Pod gelöscht wurde.
    kubectl get pods