Kubeconfig. ¿Qué es el contexto? Otros conceptos, como namespaces. Bloque 1. Tema 1.2 del CKA.

¿Qué es el kubeconfig?

El kubeconfig no es más que un archivo de configuración de Kubernetes que almacena información esencial para que la herramienta  "kubectl" pueda interactuar con uno o varios clústeres de Kubernetes. Es lo que le indica a kubectl cómo conectarse al clúster o, según el caso, a diferentes clústeres y con qué permisos.

¿Qué información contiene un kubeconfig?

  • Contextos: Un conjunto de parámetros que especifican el clúster, el usuario y un namespace predeterminado.
  • Clústeres: Información sobre el clúster, como la dirección del API Server y el certificado de la CA.
  • Usuarios: Credenciales de autenticación para los usuarios que acceden al clúster

    Aclarando conceptos:

    ¿Qué son los contextos?.

        Contextos: Son como atajos para acceder a diferentes clústeres y namespaces. Al cambiar de contexto, estás cambiando el clúster y el namespace con el que estás trabajando.

    ¿Qué en un namespace?.

       Un namespace es como un compartimento dentro de un clúster donde se agrupan los recursos de Kubernetes. Puedes pensar en él como un proyecto que tiene sus propios recursos aislados.

    Ejemplo:

    Imagina que tienes un clúster de Kubernetes con dos namespaces: "development" y "production". Puedes crear un contexto para cada uno en tu archivo kubeconfig. Cuando quieras trabajar en el entorno de desarrollo, simplemente cambias al contexto "development" y todos tus comandos kubectl se ejecutarán ahí. 

    Otro ejemplo sería que tienes un clúster en la nube y otro en tu servidor local. Puedes crear un contexto llamado "cloud" para el clúster en la nube y otro llamado "local" para el clúster local. Cuando quieras trabajar en el clúster en la nube, simplemente cambias al contexto "cloud" y todos tus comandos se ejecutarán en ese clúster.


    ¿Cuándo usar cada uno?

        Namespaces:

        Aislar equipos o proyectos.

        Establecer cuotas de recursos.

        Aplicar políticas de acceso diferentes.

        Organizar recursos de manera lógica.

        Contextos:

        Trabajar con múltiples clústeres.

        Cambiar rápidamente entre diferentes entornos (desarrollo, producción, etc.).

    En resumen:

    • Los namespaces se utilizan para organizar los recursos dentro de un clúster.
    • Los contextos se utilizan para cambiar entre diferentes clústeres y namespaces.

    Utilidades del kubeconfig:

    • Organizar el acceso a múltiples clústeres: Puedes definir múltiples contextos en un solo archivo kubeconfig para administrar fácilmente el acceso a diferentes clústeres de Kubernetes.
    • Cambiar de contexto rápidamente: Puedes cambiar fácilmente entre diferentes contextos utilizando el comando kubectl config use-context.
    • Configurar credenciales de autenticación: El kubeconfig almacena las credenciales de autenticación, lo que evita tener que introducirlas cada vez que se ejecuta un comando kubectl.

    ¿Dónde se encuentra físicamente el fichero del kubeconfig?

    Por defecto, el archivo kubeconfig se encuentra en tu home (~/.kube/config). Sin embargo, puedes especificar una ubicación diferente, si es necesario, utilizando la bandera --kubeconfig al ejecutar comandos kubectl.

    Comentarios