|
Este documento ha sido traducido utilizando tecnología de traducción automática. Si bien nos esforzamos por proporcionar traducciones precisas, no ofrecemos garantías sobre la integridad, precisión o confiabilidad del contenido traducido. En caso de discrepancia, la versión original en inglés prevalecerá y constituirá el texto autorizado. |
Proyectos y espacios de nombres de Kubernetes con SUSE Rancher Prime
Un espacio de nombres es un concepto de Kubernetes que permite un clúster virtual dentro de un clúster, lo cual es útil para dividir el clúster en "clústeres virtuales" separados que tienen su propio control de acceso y cuotas de recursos.
Un proyecto es un grupo de espacios de nombres, y es un concepto introducido por Rancher. Los proyectos te permiten gestionar múltiples espacios de nombres como un grupo y realizar operaciones de Kubernetes en ellos. Puedes usar proyectos para permitir la multi-tenencia, de modo que un equipo pueda acceder a un proyecto dentro de un clúster sin tener acceso a otros proyectos en el mismo clúster.
|
Los proyectos tienen menos énfasis en la interfaz de usuario porque no es necesario crear recursos de Kubernetes dentro del ámbito de un proyecto. Sin embargo, recursos como Secrets aún pueden ser creados en el ámbito de un proyecto. |
Esta sección describe cómo funcionan los proyectos y los espacios de nombres con Rancher.
Acerca de los Espacios de Nombres
Un espacio de nombres es un concepto introducido por Kubernetes. Según la documentación oficial de Kubernetes sobre espacios de nombres,
|
Kubernetes admite múltiples clústeres virtuales respaldados por el mismo clúster físico. Estos clústeres virtuales se llaman espacios de nombres. […] Los espacios de nombres están destinados a ser utilizados en entornos con muchos usuarios repartidos en múltiples equipos o proyectos. Para clústeres con unos pocos a decenas de usuarios, no deberías necesitar crear o pensar en espacios de nombres en absoluto. |
Los espacios de nombres proporcionan la siguiente funcionalidad:
-
Proporcionar un ámbito para los nombres: Los nombres de los recursos deben ser únicos dentro de un espacio de nombres, pero no entre espacios de nombres. Los espacios de nombres no pueden estar anidados unos dentro de otros y cada recurso de Kubernetes solo puede estar en un espacio de nombres.
-
Cuotas de recursos: Los espacios de nombres proporcionan una forma de dividir los recursos del clúster entre múltiples usuarios.
Puedes asignar recursos a nivel de proyecto para que cada espacio de nombres en el proyecto pueda utilizarlos. También puedes eludir esta herencia asignando recursos explícitamente a un espacio de nombres.
Puedes asignar los siguientes recursos directamente a los espacios de nombres:
Para gestionar permisos en un clúster de Kubernetes estándar, los administradores del clúster configuran políticas de control de acceso basado en funciones para cada espacio de nombres. Con Rancher, los permisos de usuario se asignan a nivel de proyecto, y los permisos se heredan automáticamente por cualquier espacio de nombres que pertenezca al proyecto en particular.
Para más información sobre cómo crear y mover espacios de nombres, consulta Namespaces.
Problemas de control de acceso basado en funciones con espacios de nombres y kubectl
Debido a que los proyectos son un concepto introducido por Rancher, kubectl no tiene la capacidad de restringir la creación de espacios de nombres a un proyecto al que el creador tenga acceso.
Esto significa que cuando los usuarios estándar con permisos a nivel de proyecto crean un espacio de nombres con kubectl, puede ser inutilizable porque kubectl no requiere que el nuevo espacio de nombres esté limitado dentro de un proyecto determinado.
Si tus permisos están restringidos a nivel de proyecto, es mejor crear un espacio de nombres a través de Rancher para asegurarte de que tendrás permiso para acceder al espacio de nombres.
Si un usuario estándar es propietario de un proyecto, podrá crear espacios de nombres dentro de ese proyecto. La interfaz de usuario de Rancher impedirá que ese usuario cree espacios de nombres fuera del alcance de los proyectos a los que tiene acceso.
Acerca de Proyectos
En términos de jerarquía:
-
Los clústeres contienen proyectos
-
Los proyectos contienen espacios de nombres
Puedes usar proyectos para soportar la multi-tenencia, de modo que un equipo pueda acceder a un proyecto dentro de un clúster sin tener acceso a otros proyectos en el mismo clúster.
En la versión base de Kubernetes, características como derechos de acceso o recursos del clúster se asignan a espacios de nombres individuales. Un proyecto te permite ahorrar tiempo al dar acceso a un individuo o a un equipo a múltiples espacios de nombres simultáneamente.
Puedes usar proyectos para realizar acciones como:
-
Asigna usuarios a un grupo de espacios de nombres (es decir, project membership).
-
Asigna a los usuarios roles específicos en un proyecto. Un rol puede ser propietario, miembro, de solo lectura o custom.
-
Asigna recursos al proyecto.
Cuando creas un clúster, se crean automáticamente dos proyectos dentro de él:
El Proyecto Predeterminado del Clúster
Cuando aprovisionas un clúster con Rancher, se crea automáticamente un proyecto default para el clúster. Este es un proyecto que puedes usar para comenzar con tu clúster, pero siempre puedes eliminarlo y reemplazarlo con proyectos que tengan nombres más descriptivos.
Si no necesitas más que el espacio de nombres predeterminado, tampoco necesitas más que el proyecto Default en Rancher.
Si requieres otro nivel de organización más allá del proyecto Default, puedes crear más proyectos en Rancher para aislar espacios de nombres, aplicaciones y recursos.
El Proyecto del Sistema
Al solucionar problemas, puedes ver el proyecto system para comprobar si los espacios de nombres importantes en el sistema Kubernetes están funcionando correctamente. Este proyecto de fácil acceso te evita tener que solucionar problemas de contenedores de espacios de nombres del sistema.
Para abrirlo, abre la vista del clúster y haz clic en . Esta vista muestra todos los espacios de nombres en el proyecto system.
El proyecto system:
-
Se crea automáticamente cuando aprovisionas un clúster.
-
Lista todos los espacios de nombres que existen en
v3/settings/system-namespaces, si existen. -
Te permite añadir más espacios de nombres o mover sus espacios de nombres a otros proyectos.
-
No se puede eliminar porque es necesario para las operaciones del clúster.
|
En clústeres RKE2/K3s donde la opción de aislamiento de red del proyecto está habilitada, el proyecto |
Autorización del Proyecto
Los usuarios estándar solo están autorizados para el acceso al proyecto en dos situaciones:
-
Un administrador, propietario del clúster o miembro del clúster añade explícitamente al usuario estándar a la pestaña Miembros del proyecto.
-
Los usuarios estándar pueden acceder a los proyectos que crean ellos mismos.
Creando Proyectos
Esta sección describe cómo crear un nuevo proyecto con un nombre y con una política de seguridad de pods opcional, miembros y cuotas de recursos.
Nombra un Nuevo Proyecto
-
En la esquina superior izquierda, haz clic en ☰ > Gestión de Clústeres.
-
En la página Clústeres, ve al clúster en el que deseas añadir un proyecto y haz clic en Explorar.
-
Haz clic en .
-
Haz clic en Crear Proyecto.
-
Introduce un Nombre del Proyecto.
Recomendación: Añadir Miembros al Proyecto
Utiliza la sección Miembros para proporcionar a otros usuarios acceso y roles en el proyecto.
Por defecto, tu usuario se añade como el proyecto Owner.
|
Notas sobre permisos:
|
Para añadir miembros:
-
En la pestaña Miembros, haz clic en Añadir.
-
En el campo Seleccionar Miembro, busca un usuario o grupo al que quieras asignar acceso al proyecto. Solo puedes buscar grupos si la autenticación externa está habilitada.
Notas-
Se deben escribir al menos 2 caracteres en el cuadro de búsqueda para que aparezcan resultados.
-
Los usuarios se pueden buscar según su nombre de usuario o nombre para mostrar.
-
La búsqueda se basa en prefijos (por ejemplo, un usuario llamado
Stan Dardaparecerá al buscarSta, pero no al buscarDar) y es sensible a mayúsculas y minúsculas.
-
-
En la sección Permisos del Proyecto, elige un rol. Para más información, consulta la documentación sobre roles de proyecto.
Opcional: Añadir Cuotas de Recursos
Las cuotas de recursos limitan los recursos que un proyecto (y sus espacios de nombres) pueden consumir. Para más información, consulta Cuotas de Recursos.
Para añadir una cuota de recurso,
-
En la pestaña Cuotas de Recursos, haz clic en Añadir Recurso.
-
Selecciona un Tipo de Recurso. Para más información, consulta Cuotas de Recursos..
-
Introduzca valores para el Límite del Proyecto y el Límite por defecto del espacio de nombres.
-
Opcional: Especifique Límite de Recursos por Defecto del Contenedor, que se aplicará a cada contenedor iniciado en el proyecto. Se recomienda el parámetro si tiene límites de CPU o Memoria establecidos por la Cuota de Recursos. Se puede anular a nivel de un espacio de nombres individual o de un contenedor. Para más información, consulte Límite de Recursos por Defecto del Contenedor
-
Haga clic en Crear.
Resultado: Su proyecto ha sido creado. Puede verlo desde la vista de Proyectos/Espacios de nombres del clúster.
| Campo | Descripción |
|---|---|
Límite del Proyecto |
El límite de recursos total para el proyecto. |
Límite por defecto del espacio de nombres |
El límite de recursos por defecto disponible para cada espacio de nombres. Este límite se propaga a cada espacio de nombres en el proyecto cuando se crea. El límite combinado de todos los espacios de nombres del proyecto no debe exceder el límite del proyecto. |
Eliminando Proyectos
-
En la esquina superior izquierda, haz clic en ☰ > Gestión de Clústeres.
-
En la página de Clústeres, vaya al clúster al que está adjunto el proyecto y haga clic en Explorar.
-
Haz clic en .
-
Encuentre el proyecto que desea eliminar y haga clic en ⋮.
-
Seleccione Eliminar.
Cuando elimine un proyecto, cualquier namespace que estuviera anteriormente asociado con el proyecto permanecerá en el clúster. Puede encontrar estos espacios de nombres en la interfaz de usuario de Rancher, en la pestaña No en un Proyecto de la página Proyectos/Espacios de nombres. Puede reasignar estos espacios de nombres a un proyecto moviéndolos.
Información adicional
Puedes crear proyectos y miembros del proyecto de forma programática a través de la API Pública. Consulta el documento del flujo de trabajo del proyecto para más información.