Après avoir provisionné un cluster TKG, il est recommandé de déployer une charge de travail de test et de vérifier le fonctionnement du cluster.
Déployez une application de test pour vérifier que votre cluster TKG est en cours d'exécution.
Conditions préalables
- Provisionnez un cluster TKG.
- Connectez-vous au cluster TKG.
Procédure
- Provisionnez un cluster TKG.
Reportez-vous à la section Workflow de provisionnement de clusters TKG à l'aide de Kubectl.
- Connectez-vous à Superviseur à l'aide de kubectl.
kubectl vsphere login --server=<IP or FQDN> --vsphere-username <USERNAME>
- Faites basculer le contexte de configuration vers l'Espace de noms vSphere où le cluster TKGS est provisionné.
kubectl config use-context VSPHERE-NAMESPACE
- Connectez-vous au cluster TKG cible.
kubectl vsphere login --server=<IP or FQDN> --vsphere-username <USERNAME> \ --tanzu-kubernetes-cluster-name CLUSTER-NAME \ --tanzu-kubernetes-cluster-namespace NAMESPACE-NAME
- Créez le fichier
ping-pod.yaml
avec le contenu suivant.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
- Créez les informations d'identification du registre
regcred
.L'image de conteneur utilisée pour ce scénario (busybox) est extraite du registre Docker Hub public, ce qui peut limiter les extractions d'images. Vous aurez alors besoin d'un compte Docker Hub et d'un secret d'extraction d'image (« regcred ») référencé dans la spécification d'espace. Pour créer ce secret, reportez-vous à la section Créer un secret d'identification de registre privé. - Configurez la sécurité de l'espace, selon les besoins.
Si vous utilisez Tanzu Kubernetes version v1.24 ou antérieure, passez à l'étape suivante et créez l'espace.Si vous utilisez Tanzu Kubernetes version v1.25, les avertissements PSA sont activés. Vous pouvez passer à l'étape suivante et créer l'espace. Cependant, notez que vous recevrez un avertissement sur les violations de sécurité de l'espace, que vous pouvez ignorer.
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")
Si vous utilisez Tanzu Kubernetes version v1.26 ou ultérieure, les restrictions PSA sont appliquées. Si vous tentez de créer l'espace comme indiqué à l'étape suivante, l'opération échoue avec l'erreur suivante.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")
Pour résoudre ce problème, exécutez la commande suivante sur l'espace de nomsdefault
dans lequel l'espace est créé. Sachez qu'en procédant ainsi, vous supprimez les restrictions PSA sur l'espace de noms.kubectl label --overwrite ns default pod-security.kubernetes.io/enforce=privileged
Vous pouvez également appliquer securityContext directement à l'espace, par exemple :... 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" ...
- Appliquez le fichier YAML.
kubectl apply -f ping-pod.yaml
Résultat attendu :pod/ping-pod created
- Vérifiez que l'espace est terminé.
kubectl get pods -n default
NAME READY STATUS RESTARTS AGE ping-pod 0/1 Completed 0 13s
- Vérifiez que l'espace a envoyé une commande ping au serveur DNS.
kubectl logs ping-pod -f
Résultat attendu :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
- Supprimez l'espace.
kubectl delete -f ping-pod.yaml
- Vérifiez que l'espace est supprimé.
kubectl get pods