Tema:
Proyectos y Namespaces en Rancher Manager y Kubernetes
Introducción
En esta sección se abordará la relación entre Proyectos y Namespaces en Rancher Manager y Kubernetes, destacando cómo estas entidades permiten organizar y gestionar recursos dentro de un clúster. Los Namespaces proporcionan aislamiento lógico entre aplicaciones, mientras que los Proyectos en Rancher agrupan múltiples namespaces para facilitar su administración y aplicación de políticas. Este enfoque optimiza la gestión de recursos, promueve la colaboración entre equipos y asegura una operación más ordenada en entornos contenerizados.
Objetivo
Objetivo General:
- Proveer a los participantes los conocimientos y habilidades necesarios para administrar, organizar y optimizar recursos en entornos Kubernetes mediante el uso de Rancher Manager, con un enfoque en la implementación de proyectos, namespaces y mejores prácticas que aseguren eficiencia, escalabilidad y seguridad en la gestión de clústeres contenerizados.
Namespace
Un namespace en Kubernetes es un mecanismo de aislamiento lógico dentro de un clúster que permite dividir y organizar los recursos en entornos separados. Es útil para gestionar múltiples equipos, proyectos o aplicaciones dentro del mismo clúster, proporcionando un espacio dedicado donde los recursos, como pods, servicios y configuraciones, pueden coexistir sin interferencias.
Características clave de los namespaces:
- Aislamiento lógico: Cada namespace actúa como un contenedor virtual que agrupa recursos relacionados.
- Gestión eficiente: Facilita la administración y el control de acceso para diferentes proyectos o equipos dentro de un mismo clúster.
- Escalabilidad: Ayuda a organizar y mantener un clúster limpio y escalable, evitando conflictos entre recursos.
- Uso compartido de recursos del clúster: Permite a múltiples aplicaciones o equipos utilizar los mismos nodos físicos o virtuales sin interferencia.
- Políticas de seguridad y cuotas: Los namespaces pueden tener configuraciones específicas, como restricciones de recursos y políticas de red, para limitar o asegurar su funcionamiento.
Por defecto, Kubernetes incluye algunos namespaces como default, kube-system y kube-public, pero los usuarios pueden crear otros personalizados para adaptarlos a las necesidades de sus proyectos.
Proyectos (Projects) en Rancher Manager
Un Proyecto en Rancher Manager es una capa de organización adicional dentro de un clúster Kubernetes, diseñada para simplificar la gestión de múltiples namespaces y recursos relacionados. Los proyectos agrupan varios namespaces bajo una entidad común, permitiendo aplicar políticas, configuraciones y roles de manera centralizada, lo que facilita la administración y la colaboración en equipos grandes o con múltiples aplicaciones.
Características clave de los Proyectos en Rancher:
- Agrupación de Namespaces: Un proyecto puede contener uno o más namespaces, permitiendo gestionar recursos similares o relacionados desde un único punto. Políticas centralizadas: Facilita la aplicación de cuotas de recursos, restricciones de red y configuraciones de seguridad a nivel de proyecto.
- Gestión simplificada de roles: Permite asignar permisos y roles a usuarios o grupos específicos en el contexto del proyecto, mejorando el control de acceso.
- Monitoreo y métricas: Rancher Manager ofrece vistas consolidadas de los recursos y métricas de todos los namespaces dentro de un proyecto.
- Escalabilidad y organización: Ideal para clústeres con múltiples aplicaciones, entornos de desarrollo o equipos que necesitan trabajar de manera aislada pero gestionados desde una misma plataforma.
Los proyectos en Rancher son una herramienta poderosa para estructurar clústeres Kubernetes complejos, proporcionando una gestión eficiente y alineada con las necesidades operativas y organizativas de las empresas.
La siguiente imagen muestra gráficamente la relación entre Proyectos (Projects) y Namespaces en un clúster de Kubernetes:

Laboratorio: Gestión de Proyectos (Projects) y Namespaces en Rancher Manager
Antes de comenzar
- Contar con el acceso al ambiente de laboratorio
- Haber realizado la validación de conexión y funcionamiento
- Finalizar las prácticas de laboratorio de las instalaciones de RKE2.
Revisión y Creación de Namespaces en Kubernetes
- Asegurarse de estar en el servidor
bastioncon el usuariostudentstudent@lab-0-bastion:~> - Ingresar como usuario administrador al cluster de Kubernetes con el siguiente comando:
export KUBECONFIG=/home/student/rke2_conn/cluster1/cluster1_kubeconfig.yaml - Comprobar que se encuentra en el ambiente de
Cluster1:kubectl get nodes -L cluster1 - Listar todos los Namespaces creado en el ambiente:
kubectl get namespaces - Lista todos los recursos de un
Namespacecomo por ejemplo, del Namespacecattle-system:kubectl get all -n cattle-system - Verificar la configuración de un
Namespace:kubectl describe ns cattle-system - Exportar la configuración de un
Namespaceen formatoYAML:kubectl get ns cattle-system -o yaml - Ejecutar el siguiente comando para crear un manifiesto para creación de un
Namspacellamado my-namespace:kubectl create ns my-namespace --dry-run=client -o yaml > my-namespace.yaml - Verificar el archivo generado con el comando anterior:
cat my-namespace.yaml - Modificar el archivo
my-namespace.yamlincluyendo un label y un annotation, debe quedar como el siguiente ejemplo: (Los labels y annotations son útiles para agregar metadatos descriptivos y funcionales a los objetos de Kubernetes).apiVersion: v1 kind: Namespace metadata: creationTimestamp: null name: my-namespace labels: environment: development annotations: description: "Namespace utilizado para pruebas y desarrollo" spec: {} status: {} - Crear el
Namespacea partir del archivo de manifiesto modificado anteriormente con el siguiente comando:kubectl create -f my-namespace.yaml - Verificar el
Namespacecreado anteriormente:kubectl get nskubectl describe ns my-namespace - Crear otro
Namespacede forma imperativa conkubectlde Kubernetes:kubectl create ns other-namespace - Verificar el
Namespacecreado anteriormente:kubectl get ns
Rancher Projects y Kubernetes Namespaces
- Ingresar a la consola web de Rancher Manager Server con las credenciales que fueron colocadas en el primer ingreso:

- Dirigirse a la sección de Cluster Management

- En la siguiente pantalla, ubicar
cluster1y dar click en el botón Explore que corresponde acluster1
- Cuando se encuentre en la pantalla correspondiente a la exploración de
cluster, elegir la opciónProjects/Namespacesy verificar los Namespaces creados en la práctica anterior:
Puedes observar que se encuentran en la sección Not in a Project, es decir que no le pertenecen a ningún Proyecto de Rancher en este momento. - Craer un nuevo Proyecto, para lo cual debes dar click en el botón
Create Projecty colocarle el nombredemo-projecty dar click en el botónCreate:
- Seleccionar el menú de los
tres puntosen el Namespace llamadomy-namespacey elegir la opciónMove:

- A continuación, en
Target Projecteligedemo-projecty dar click en el botónMove - Verificar como el Namespace
my-namespaceahora forma parte del Proyecto creado anteriormentdemo-project:
- También es posible crear
Namespacesdesde la consola web de Rancher Manager, dando click en el botónCreate Namespace:
- Colocarle un nombre
training-ns y dar click en el botónCreate``:
- Verificar la creación dentro del Proyecto
demo-project:
- Eliminar los namespaces creados durante esta práctica y también el Proyecto (Investiga y/o revisa como hacerlo, desde el CLI
kubectlo desde Rancher Manager )
Conclusión
En esta práctica, exploramos cómo gestionar y organizar recursos dentro de un clúster de Kubernetes utilizando Proyectos y Namespaces a través de Rancher Manager. Comprendimos la importancia de estructurar correctamente el entorno para mantener la separación lógica de recursos, facilitar la administración de permisos, y mejorar la observabilidad y seguridad de las aplicaciones desplegadas.
La combinación de Proyectos y Namespaces proporciona un enfoque poderoso y flexible para gestionar clústeres multiusuario y multientorno. Al aplicar estas herramientas y buenas prácticas, se facilita el trabajo en equipo, se incrementa la eficiencia operativa, y se minimizan los riesgos de configuraciones erróneas o conflictos entre aplicaciones.
Este conocimiento es fundamental para administrar entornos productivos de manera efectiva, asegurando que los clústeres Kubernetes se mantengan escalables, seguros y bien organizados.