Implemente la aplicación del libro de visitas en el clúster de Tanzu Kubernetes a fin de explorar la directiva de seguridad de pods para las cuentas de servicio, así como la implementación y la creación de servicios.
La implementación de la aplicación del libro de visitas es un método común para explorar Kubernetes. Si implementa todos los archivos YAML del libro de visitas en un clúster de Tanzu Kubernetes que servicio Tanzu Kubernetes Grid aprovisiona, el pod de la aplicación no se creará correctamente. Aparecerá el siguiente mensaje de error cuando ejecute el comando kubectl describe pod
:
“Error: container has runAsNonRoot and image will run as root”
La aplicación del libro de visitas utiliza los recursos deployment
y replicaset
para implementar contenedores con privilegios en el espacio de nombres predeterminado. Debido a que la controladora de PodSecurityPolicy está habilitada para los clústeres de Tanzu Kubernetes, cuando un usuario de clúster intenta crear el pod de la aplicación del libro de visitas, las cuentas de servicio de estas controladoras se comprueban con PodSecurityPolicy. Si una PSP adecuada no está enlazada a estas cuentas de servicio, la aplicación no se implementa.
De forma predeterminada, los administradores de Tanzu Kubernetes pueden crear pods con privilegios directamente en cualquier espacio de nombres mediante las cuentas de usuario. Sin embargo, la aplicación del libro de visitas implementa contenedores con privilegios mediante cuentas de servicio. Un administrador de clústeres puede crear los recursos Deployment, StatefulSet y DaemonSet en el espacio de nombres kube-system
. Sin embargo, la aplicación del libro de visitas implementa estos recursos en el espacio de nombres predeterminado. Asimismo, los usuarios no administrativos no pueden crear pods con o sin privilegios sin los enlaces ni las PSP adecuados.
Una solución consiste en crear enlaces a la PSP con privilegios predeterminada para permitir la implementación de la aplicación del libro de visitas. La instancia de PodSecurityPolicy con privilegios permite pods que se ejecutan como raíz y contenedores con privilegios para cuentas enlazadas. Puede crear un objeto ClusterRoleBinding que aplique vmware-system-privileged
en todo el clúster. No obstante, esto podría infringir el principio de privilegio mínimo, ya que otorga más permisos de los que se necesita. Un enfoque más apropiado consiste en crear un objeto RoleBinding que permita a las cuentas de servicio del sistema utilizar la instancia de PodSecurityPolicy con privilegios en el espacio de nombres predeterminado. Para obtener más información, consulte Ejemplo de enlaces de funciones para la directiva de seguridad de pods.