kubeconfig con direnv, múltiples clusters de Kubernetes.

kubeconfig con direnv, múltiples clusters de Kubernetes.

Desde la documentación de Kubernetes:

Utilice los archivos kubeconfig para organizar la información acerca de los clústeres, los usuarios, los Namespaces y los mecanismos de autenticación. La herramienta de línea de comandos kubectl utiliza los archivos kubeconfig para hallar la información que necesita para escoger un clúster y comunicarse con el servidor API de un clúster.

Nota: Un archivo utilizado para configurar el acceso a los clústeres se denomina archivo kubeconfig. Esta es una forma genérica de referirse a los archivos de configuración. Esto no significa que exista un archivo llamado kubeconfig.

Por defecto, kubectl busca un archivo llamado config en el directorio $HOME/.kube. Puedes especificar otros archivos kubeconfig mediante la configuración de la variable de entorno KUBECONFIG o mediante la configuración del flag –kubeconfig.

Cuando contamos con un solo cluster de k8s, es bastante fácil conectarse a el usando kubectl con solo colocar el archivo config en .kube (como dice el texto anterior). ¿Pero que pasa cuando tenemos varios servidores de k8s con los cuales queremos interactuar para realizar ciertas tareas?

Debemos hacer uso de los contextos (context) y movernos de un cluster a otro, esto implica que en archivo config antes mencionado, tenemos la información de mas de un cluster. Para facilitar esta operación tenemos disponibles varios plugins, uno de estos es ctx que se puede instalar con Krew. Yo personalmente me encuentro tedioso mantener el archivo config (se que también existen plugins para esto.) y muchas veces termino con configuración de acceso a cluster que ya no existen y que en su momento fueron usados para alguna prueba de configuración. ¿A donde quiero llegar con esto? Creo que hay una forma mas fácil, por lo menos para mi.

Tenemos disponible una herramienta llamada direnv, esta herramienta permite cargar variables de entorno al momento de entrar a un directorio, inmediatamente hacemos cd dentro de un directorio que cuente con un archivo de direnv (.envrc), tendremos disponibles variables de entorno para usar y una de esas variables que podemos configurar es kubeconfig.

Desde hace unos días estoy estructurando el acceso a varios clusters que tengo de la siguiente manera.

  1. Un directorio con todos los cluster que deseo acceder o tengo acceso a ellos.
  2. En este directorio cada cluster es otro directorio, por ejemplo “ansible” es un cluster de k8s que tiene AWX instalado.
  3. Dentro de “ansible” esta el archivo config, .envrc y archivos de deploymento ha sean Helm o Kustomize.

Dejo una captura de pantalla con la estructura del directorio.

En lo adelante cuando siga provisionando cluster, solo tengo que crear un nuevo directorio, colocar el archivo config y crear un nuevo .envrc con la información necesaria.

El contenido de .envrc es:

export KUBECONFIG=/home/ariel/Documents/kubeclusters/ansible/config

importante saber que aquí podemos colocar todo tipo de acciones iguales a las que normalmente usamos en nuestro profile, por ejemplo, aliases e incluso un prompt diferente.

Al ejecutar kubectl get nodes, podemos ver que no tenemos respuesta ya que en ese momento kubeconfig esta configurado con un config no funcional, cuando entramos al directorio ansible, se ve que direnv habilita un nuevo valor que sobre-escribe a kubeconfig con el nuevo config del cluster de AWX.

direnv tiene mucho potencial para aquellos usuarios que amamos la terminal!

Kubernetes – Explorando un Cluster de Kubernetes con VMware Octant – Update.

Kubernetes – Explorando un Cluster de Kubernetes con VMware Octant – Update.

Ya hace un tiempo, tal vez demasiado, había hablado de este cliente desktop para conectarnos a un cluster de k8s. En ese momento lo miré y no me sentí muy convencido de cuáles eran las bondades de usar algo así, y la principal razón era que estaba muy emocionado con Rancher UI.

Continuar leyendo «Kubernetes – Explorando un Cluster de Kubernetes con VMware Octant – Update.»

RPKI con GoRTR de Cloudflare – en Kubernetes!

RPKI con GoRTR de Cloudflare – en Kubernetes !

Hace un tiempo probé con RPKI, en esos días estaba tomando unos entrenamientos de MANRS, con RPKI podemos asegurar que los prefijos que recibimos vía BGP con de quien realmente deberían ser, en otras palabras, si por alguna razón un tercero mal intencionado se hace con un bloque de direcciones IP que no le pertenece, pero esta tiene ROA habilitado, el trabajo de RPKI es no permitir que esos bloques de direcciones IP sean insertados en nuestra tabla de enrutamiento.

https://github.com/cloudflare/gortr

Continuar leyendo «RPKI con GoRTR de Cloudflare – en Kubernetes!»

Kubernetes – Respaldando un cluster de k8s con Kasten K10.

Kubernetes – Respaldando un cluster de k8s con Kasten K10.

Kasten K10 es una solución de respaldos para Kubernetes, ya he tocado el tema de los respaldos en dos ocasiones con dos herramientas diferentes, K10 tiene ventajas muy claras en frente a los respaldos de Longhorn o Velero.

El primer punto a favor que tiene la herramienta es la facilidad con la que se instala, sin embargo, K10 hace uso de funcionalidades que no vienen hábiles por defecto y tenemos que aplicar CRDs al cluster. K10 se apoya de VolumeSnapshot de Kubernetes que hasta hace varias versiones era Beta y que aun en versión 1.19 se deben agregar de manera manual algunos CRD.

Otro punto a tener en cuenta es que la solución de almacenamiento habilitada en k8s debe soportar el CSI de snapshots. En mi ambiente de “producción” estoy usando Longhorn 1.0.2 y esta opción solo está disponible para la versión 1.1.0, esto quiere decir que la instalación descrita en este artículo fue hecha en un cluster para estos fines ya que por circunstancias ajenas aun no puedo actualizar Longhorn a la última versión.

Continuar leyendo «Kubernetes – Respaldando un cluster de k8s con Kasten K10.»

Homelab – no es solo hardware.

Homelab – no es solo hardware.

Hace unos días decidí actualizar la pagina donde trato de llevar un listado del hardware que compone mi homelab. Desde hace un tiempo muchas personas han querido introducirse en esta practica, muchos lo logran, otros no, desde mi punto de vista el tema es mas que solo tener hardware, es tener una meta y cumplirla haciendo uso de un sofware en ese hardware.

https://arielantigua.com/weblog/home-lab/

Luego de la introducción un poco desconectada, aquí les presento el sofware que uso en casa para mantenerme actualizado.

Virtualización:

Siempre seré un fiel seguidor de las soluciones de visualización, aunque a simple viste se podría decir que solo uso la solución de VMware para esto, déjenme decirles (escribirles) que no es así, he usado varias soluciones y antes de conocer VMware, era fanático de Xen (hasta que lo adquirió Citrix…).

Continuar leyendo «Homelab – no es solo hardware.»