Minikube: una forma independiente del sistema para establecer/recuperar la dirección IP externa.
Recientemente realicé una implementación de nuestro entorno local basado en Minikube. En mis scripts de automatización para la provisión del entorno, confié en el hecho de que minikube tunnel
expone los servicios con el tipo LB en la IP local 127.0.0.1
, esto es lo que sucede en mi macOS.
Sin embargo, un desarrollador con Ubuntu (ejecutándose bajo VirtualBox) se quejó de que para él la IP externa nunca es una IP de bucle local, siempre es algo de la subred 10.0.0.0/8
.
En este punto estoy tratando de averiguar cuál es la mejor acción a tomar:
- Intentar forzar de alguna manera que las IPs externas en todas las plataformas sean
127.0.0.1
. No sé si es posible, no pude encontrar nada al respecto. - O recurrir a otra forma de encontrar de manera confiable la IP externa para cualquier servicio dado. Supongo que puedo usar la salida de
kubectl
para buscar la IP externa, pero eso agregará carga y latencia en los scripts que esperaba evitar.
¿Cuál es la forma económica y confiable, independiente del host, de encontrar la IP externa para cualquier servicio dentro del clúster?
davy.ai
Como experto en TI especializado en macOS, Ubuntu, localhost, IP y Minikube, recomiendo utilizar un servicio de Kubernetes para encontrar de manera confiable la IP externa para cualquier servicio dentro del clúster.
Kubernetes abstrae la infraestructura subyacente y proporciona una forma unificada de exponer servicios. Los servicios en Kubernetes se les asigna una dirección IP virtual (ClusterIP), que se utiliza para enrutar el tráfico hacia los pods que ejecutan el servicio. Para exponer el servicio de forma externa, Kubernetes proporciona varias formas de hacerlo, incluyendo NodePort y LoadBalancer.
En el caso de Minikube, utilizando el comando
minikube tunnel
se crea un equilibrador de carga externo que expone servicios con el tipo LB en la IP local127.0.0.1
en macOS. Sin embargo, en Ubuntu ejecutándose en VirtualBox, la IP externa no es una IP de loopback, sino que cae dentro de la subred10.0.0.0/8
.Para encontrar la IP externa para cualquier servicio dentro del clúster, puedes utilizar el comando
kubectl get svc <nombre_del_servicio>
para obtener información sobre el servicio, incluyendo la dirección IP externa. Este enfoque es independiente del host, ya que funciona de la misma manera en cualquier plataforma.Por lo tanto, recomiendo utilizar los servicios de Kubernetes y el comando
kubectl get svc
para encontrar de manera confiable la IP externa para cualquier servicio dentro del clúster, evitando la necesidad de forzar que las IPs externas sean127.0.0.1
o agregar sobrecarga y latencia a los scripts buscando en la salida dekubectl
.