Cómo acceder a los pods de Kubernetes desde fuera del clúster

Una de las facetas más desafiantes de Kubernetes es desplegar a un clúster al mismo tiempo que se hace accesible desde LAN las aplicaciones y servicios desplegados. Esto es algo con lo que luché mucho hasta que descubrí la configuración hostNetwork. Esta opción en particular se aplica a los pods de Kubernetes y permite acceder a los pods desplegados desde fuera del clúster.

Al utilizar esta configuración, las aplicaciones dentro del pod pueden acceder a las interfaces de red del nodo que alberga el pod. Esto significa que, en teoría, puedes acceder a esos pods desde tu LAN.

Quiero mostrarte cómo hacer que esto funcione. Aunque no lo creas, es bastante fácil.

Índice de Contenido
  1. Lo que necesitarás
  2. Cómo crear tu archivo YAML
  3. Cómo desplegar el pod
  4. Cómo probar el acceso externo

Lo que necesitarás

Lo único que necesitarás para que esto funcione es un clúster de Kubernetes en funcionamiento. Este clúster podría estar alojado en AWS, Google Cloud, tu propio hardware local o cualquier otro host. Si aún no tienes un clúster, siempre puedes implementar uno en tu centro de datos. Para eso, consulta mi artículo Cómo implementar un clúster de Kubernetes en el servidor Ubuntu.

Una vez que tengas acceso a un clúster de Kubernetes, estarás listo para desplegar un pod que pueda ser accesible desde el mundo exterior, o al menos desde tu LAN.

Cómo crear tu archivo YAML

Lo primero que vamos a hacer es crear un archivo YAML muy básico para demostrar cómo se utiliza la configuración hostNetworking. Este YAML desplegará un pod de InfluxDB en un clúster de Kubernetes, que luego podremos alcanzar desde fuera del clúster.

En tu controlador de Kubernetes, crea el nuevo archivo YAML con el comando:

nano influxdb.yml

En ese nuevo archivo, pega el siguiente contenido:

apiVersion: v1
kind: Pod
metadata:
name: influxdb
spec:
hostNetwork: true
containers:
- name: influxdb
image: influxdb

Lo importante aquí es:

hostNetwork: true

La configuración anterior brinda al pod el acceso necesario a las interfaces de red del host. Sin esa configuración, el pod aún se desplegaría, pero solo sería accesible desde dentro del clúster. El archivo YAML crea un pod llamado "influxdb" con un solo contenedor, también llamado "influxdb", que utiliza la imagen de InfluxDB.

Guarda y cierra el archivo.

Cómo desplegar el pod

Ahora, desplegaremos nuestro nuevo pod. Esto se hace con el comando:

kubectl create -f influxdb.yml

El pod se desplegará en el clúster, pero tomará un poco de tiempo para que el despliegue se complete.

Cómo probar el acceso externo

A continuación, probaremos el acceso externo al pod recién desplegado. Para hacerlo, debemos averiguar en qué nodo se desplegó el pod, lo que también nos mostrará la dirección IP del nodo. Para eso, ejecuta el comando:

kubectl describe pods influxdb

El comando anterior imprimirá mucha información sobre tu pod recién desplegado. La parte importante que queremos se encuentra en la sección de IPs. Deberías ver una línea como:

IP: 192.168.1.112

La línea de IP mostrará la dirección IP del nodo donde se ha desplegado tu pod. Con esa información, puedes probar la conexión con un comando como:

curl -v http://IP:8086/ping

Donde "IP" es la dirección IP del nodo que aloja el pod de InfluxDB. La respuesta que recibas debería incluir HTTP/1.1 204 No Content (Figura A).

Figura A

Felicidades, acabas de desplegar un pod en un clúster de Kubernetes que es accesible desde tu LAN.

¿Ves? No fue tan difícil como pensabas.

Suscríbete al canal de YouTube How To Make Tech Work de Newsmatic para obtener los últimos consejos tecnológicos para profesionales empresariales, presentados por Jack Wallen.

En Newsmatic nos especializamos en tecnología de vanguardia, contamos con los artículos mas novedosos sobre Nube, allí encontraras muchos artículos similares a Cómo acceder a los pods de Kubernetes desde fuera del clúster , tenemos lo ultimo en tecnología 2023.

Artículos Relacionados

Subir

Utilizamos cookies para mejorar su experiencia de navegación, mostrarle anuncios o contenidos personalizados y analizar nuestro tráfico. Al hacer clic en “Aceptar todo” usted da su consentimiento a nuestro uso de las cookies.