Quiero configurar un clúster de Kubernetes local para realizar pruebas en macOS. Yo seleccionémicrok8sproporcionado por Canonical. Kubernetes no se ejecuta de forma nativa en macOS, pero utiliza una máquina virtual Linux proporcionada pormultipaso.
La instalación fue fluida y el despliegue delbootcamp de kubernetesparecía haber funcionado. Este es el resultado que obtuve hasta ahora:
microk8s kubectl get services
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.152.183.1 <none> 443/TCP 5h9m
kubernetes-bootcamp NodePort 10.152.183.226 <none> 8080:31004/TCP 4h10m
multipass list
Name State IPv4 Image
microk8s-vm Running 192.168.64.2 Ubuntu 18.04 LTS
Hacer ping a la instancia ping 192.168.64.2
funciona como se esperaba.
Actualizar: Probé más a fondo la conectividad instalando nginx dentro de la VM. El uso de curl http://192.168.64.2
la página de inicio de nginx dentro de la VM apareció en macOS.
Ahora, cuando conecto la máquina virtual usando multipass exec microk8s-vm -- bash
, puedo curl
ingresar a mi servicio implementado como se esperaba con ambos:
curl http://127.0.0.1:31004
curl http://10.152.183.226:8080
Obteniendo el resultado esperado de:
Hello Kubernetes bootcamp! | Running on: kubernetes-bootcamp-57978f5f5d-d977w | v=1
Sin embargo, me falta el paso para acceder a estas URL desde macOS (tanto curl como un navegador). Lo intenté sin éxito:
curl http://10.152.183.226:8080
curl http://10.152.183.226:31004
curl http://192.168.64.2:8080
curl http://192.168.64.2:31004
Obviamente me falta un paso para que los servicios en ejecución sean accesibles desde el host de macOS. ¿Qué me perdí? ¡Se aprecia mucho la ayuda!
Respuesta1
Esa 192.168.64.2 parece una red de solo host y puede ser una red de solo host interna. ¿Puedes hacer ping a 192.168.64.2 desde la terminal Mac? multipass tiene como valor predeterminado NAT para la red y no ofrece la opción de cambiarlo a puente hasta multipass 1.6. Que en este momento es sólo fuente. Veo 1.5 cuando escribo multipass --version
.
Puedes solucionar esto de todos modos usando ssh para reenviar el puerto multipaso al host de Mac. Desde el shell multipaso, también multipass shell
conocido como primario, ejecute . Agregue si desea que el comando ssh port forward se ejecute en segundo plano y agregue si desea permitir conexiones desde otros hosts en la misma red que su Mac. Si ssh no está disponible en su Mac, habilite el acceso remoto o simplemente los inicios de sesión ssh (servidor ssh) para su nombre de usuario en el panel de control compartido en la configuración de su Mac.ssh -R 8080 -R 31004 [email protected]
-f
-g