Después de aprovisionar un clúster de TKG, se recomienda implementar una carga de trabajo de prueba y validar la funcionalidad del clúster.
Implemente una aplicación de prueba para verificar que el clúster de TKG esté activo y en ejecución.
Requisitos previos
- Aprovisione un clúster de TKG.
- Conéctese al clúster de TKG.
Procedimiento
- Aprovisione un clúster de TKG.
- Inicie sesión en Supervisor mediante kubectl.
kubectl vsphere login --server=<IP or FQDN> --vsphere-username <USERNAME>
- Cambie el contexto de configuración a la instancia de espacio de nombres de vSphere en la que se aprovisiona el clúster de TKGS.
kubectl config use-context VSPHERE-NAMESPACE
- Inicie sesión en el clúster de TKG de destino.
kubectl vsphere login --server=<IP or FQDN> --vsphere-username <USERNAME> \ --tanzu-kubernetes-cluster-name CLUSTER-NAME \ --tanzu-kubernetes-cluster-namespace NAMESPACE-NAME
- Cree el archivo
ping-pod.yaml
con el siguiente contenido.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
- Cree la credencial del registro de
regcred
.La imagen de contenedor utilizada para este escenario (BusyBox) se extrae del registro público de Docker Hub, lo que puede restringir las extracciones de imágenes. Si eso sucede, necesitará una cuenta de Docker Hub y un secreto de extracción de imágenes ("regcred") a los que se haga referencia en la especificación del pod. Para crear este secreto, consulte Crear secreto de credencial de registro privado. - Configure la seguridad del pod según sea necesario.
Si utiliza Tanzu Kubernetes 1.24 o una versión anterior, continúe con el siguiente paso y cree el pod.Si utiliza la versión Tanzu Kubernetes 1.25, las advertencias de PSA estarán habilitadas. Puede continuar con el siguiente paso y crear el pod. Sin embargo, tenga en cuenta que recibirá una advertencia sobre infracciones de seguridad del pod, que puede ignorar.
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 utiliza Tanzu Kubernetes 1.26 o una versión posterior, se aplicarán las restricciones de PSA. Si intenta crear el pod como se muestra en el próximo paso, se producirá el siguiente error.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")
Para solucionar este problema, ejecute el siguiente comando en el espacio de nombresdefault
donde se crea el pod. Tenga en cuenta que, al realizar esta acción, se eliminan las restricciones de PSA en el espacio de nombres.kubectl label --overwrite ns default pod-security.kubernetes.io/enforce=privileged
Si lo prefiere, puede aplicar securityContext directamente al pod, por ejemplo:... 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" ...
- Aplique el archivo YAML.
kubectl apply -f ping-pod.yaml
Resultado esperado:pod/ping-pod created
- Compruebe que el pod se haya completado correctamente.
kubectl get pods -n default
NAME READY STATUS RESTARTS AGE ping-pod 0/1 Completed 0 13s
- Verifique que el pod haya hecho ping al servidor DNS.
kubectl logs ping-pod -f
Resultado esperado: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
- Elimine el pod.
kubectl delete -f ping-pod.yaml
- Compruebe que el pod se haya eliminado.
kubectl get pods