Skip to content

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:

Rancher and RKE


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

  1. Asegurarse de estar en el servidor bastion con el usuario student
    student@lab-0-bastion:~>
    
  2. Ingresar como usuario administrador al cluster de Kubernetes con el siguiente comando:
    export KUBECONFIG=/home/student/rke2_conn/cluster1/cluster1_kubeconfig.yaml
    
  3. Comprobar que se encuentra en el ambiente de Cluster1:
    kubectl get nodes -L cluster1
    
  4. Listar todos los Namespaces creado en el ambiente:
    kubectl get namespaces
    
  5. Lista todos los recursos de un Namespace como por ejemplo, del Namespace cattle-system:
    kubectl get all -n cattle-system
    
  6. Verificar la configuración de un Namespace:
    kubectl describe ns cattle-system
    
  7. Exportar la configuración de un Namespace en formato YAML:
    kubectl get ns cattle-system -o yaml
    
  8. Ejecutar el siguiente comando para crear un manifiesto para creación de un Namspace llamado my-namespace:
    kubectl create ns my-namespace --dry-run=client -o yaml > my-namespace.yaml
    
  9. Verificar el archivo generado con el comando anterior:
    cat my-namespace.yaml
    
  10. Modificar el archivo my-namespace.yaml incluyendo 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: {}
    
  11. Crear el Namespace a partir del archivo de manifiesto modificado anteriormente con el siguiente comando:
    kubectl create -f my-namespace.yaml
    
  12. Verificar el Namespace creado anteriormente:
    kubectl get ns
    
    kubectl describe ns my-namespace
    
  13. Crear otro Namespace de forma imperativa con kubectl de Kubernetes:
    kubectl create ns other-namespace
    
  14. Verificar el Namespace creado anteriormente:
    kubectl get ns
    

Rancher Projects y Kubernetes Namespaces

  1. Ingresar a la consola web de Rancher Manager Server con las credenciales que fueron colocadas en el primer ingreso: Rancher and RKE
  2. Dirigirse a la sección de Cluster Management Rancher and RKE
  3. En la siguiente pantalla, ubicar cluster1 y dar click en el botón Explore que corresponde a cluster1 Rancher and RKE
  4. Cuando se encuentre en la pantalla correspondiente a la exploración de cluster, elegir la opción Projects/Namespaces y verificar los Namespaces creados en la práctica anterior: Rancher and RKE 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.
  5. Craer un nuevo Proyecto, para lo cual debes dar click en el botón Create Project y colocarle el nombre demo-project y dar click en el botón Create: Rancher and RKE
  6. Seleccionar el menú de los tres puntos en el Namespace llamado my-namespace y elegir la opción Move: Rancher and RKE Rancher and RKE
  7. A continuación, en Target Project elige demo-project y dar click en el botón Move
  8. Verificar como el Namespace my-namespace ahora forma parte del Proyecto creado anteriorment demo-project: Rancher and RKE
  9. También es posible crear Namespaces desde la consola web de Rancher Manager, dando click en el botón Create Namespace: Rancher and RKE
  10. Colocarle un nombre training-ns y dar click en el botónCreate``: Rancher and RKE
  11. Verificar la creación dentro del Proyecto demo-project: Rancher and RKE
  12. Eliminar los namespaces creados durante esta práctica y también el Proyecto (Investiga y/o revisa como hacerlo, desde el CLI kubectl o 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.