Cómo usar kubectl proxy para acceder a tus aplicaciones

En el artículo anterior te mostré una forma de acceder a Kubernetes Dashboard, pero no te expliqué cómo funciona. Hoy te quiero contar cómo usar kubectl proxy con el resto de tus aplicaciones en Kubernetes.

Como su propio nombre indica, kubectl proxy nos permite iniciar un proxy entre el host y nuestro clúster. Este está pensado para la depuración de aplicaciones y el acceso interno, como por ejemplo a dashboards como el del artículo anterior. Tomándolo como ejemplo, en él se ve que accedemos a una URL, la cual se corresponde con el esquema que debes seguir para acceder a tus aplicaciones a través del proxy:

http://localhost:8001/api/v1/proxy/namespaces/<NAMESPACE>/services/<SERVICE-NAME>/proxy/

En el caso de Kubernetes Dashboard quedaba de la siguiente manera:

http://192.168.1.48:8001/api/v1/namespaces/kube-system/services/kubernetes-dashboard/proxy/

Esto es así porque el servicio kubernetes-dashboard pertenece al namespace kube-system. Además, para que esto sea posible, necesitas que tu despliegue sea expuesto a través de un servicio. Para comprobar todo esto que te digo, puedes revisar cuáles son los servicios que tienes creados en tu clúster, y verás que los valores que hemos reemplazado en la URL corresponden con el namespace y el nombre del servicio de Kubernetes Dashboard.

kubectl get services --all-namespaces
kubectl get services all namespaces kubernetes-dashboard

Ahora vamos a verlo con otro ejemplo: vamos a comprobar que también es posible acceder a nuestro nginx-deployment a través del proxy.

En el artículo cómo ejecutar contenedores en Kubernetes te expliqué que existe un concepto llamado servicio, que trabaja como balanceador entre las réplicas de nuestros pods. Para nuestro deployment llamado nginx-deployment ejecutábamos la siguiente línea:

kubectl expose deployment nginx-deployment --port=8000 --target-port=80

Con ello ya podemos acceder a él de la misma forma que en el ejemplo anterior. En este caso la URL sería: http://192.168.1.48:8001/api/v1/namespaces/default/services/nginx-deployment/proxy/

Accediendo a nginx desde kubectl proxy

¡Saludos!

Si quieres seguir aprendiendo sobre contenedores, tienes una lista de vídeos en mi canal de YouTube 👇🏻

2 Comments

  1. Fernando # agosto 16, 2020 at 8:26 pm

    Buen dia, excelentes post, me sirvió de mucho, muchas gracias, pero tengo una duda, por que el puerto 8001 de donde sale ese puerto?

    Reply

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.