Acceder a un clúster privado de AKS a través de VPN P2S

Gisela Torres
Computación en la nube
Necesitaba montarme un clúster de AKS privado y, como no soy una empresa y no quería instalarme una máquina de salto en la misma red que mi clúster, quería acceder a este a través de una conexión VPN P2S, ....

Acceder a un clúster privado de AKS a través de VPN P2S

Hoy he estado jugando con el siguiente escenario: Necesitaba montarme un clúster de AKS privado y, como no soy una empresa  y no quería instalarme una máquina de salto en la misma red que mi clúster, quería acceder a este a través de una conexión VPN P2S, conectada a la red donde está mi AKS. Te cuento cómo lo he hecho.

Crear la red virtual

Lo primero que voy a hacer es crear la red, y aprovecho para crear el grupo de recursos, donde estará mi AKS.

No he dejado que se genere durante la creación del clúster porque me va a ser más sencillo manipular esta misma después. También necesito crear un service principal que tenga permisos de Network contributor sobre este para que mi AKS pueda luego manipular la red.

Ahora que ya tengo la red,la subnet que va a usar mi AKS y el Service Principal el siguiente paso es crear el clúster.

Crear un clúster de AKS privado en una red propia

Para este paso puedo utilizar este comando, uniéndolo con todo lo anterior:

Ahora bien, una vez que el proceso termine, si recupero las credenciales:

#Get credentials
az aks get-credentials -n $AKS_NAME -g $RESOURCE_GROUP

e intento cualquier operación sobre el AKS, el resultado será que no es posible, ya que no estoy en la misma red que el clúster y este es privado.

No puedo acceder desde local al clúster de AKS porque no tiene IP pública

Es por ello que necesitamos un componente que nos permita conectarnos a dicha red desde mi local, un VPN Gateway.

Crear un VPN Gateway

En realidad, te mostré un caso parecido con un App Service usando private links hace unos meses. En este caso le toca el turno a AKS, por lo que me creo este componente dentro de mi grupo de recursos, asociado a la misma red, de la siguiente manera:

Estos comandos crearán una nueva subnet en la red donde está alojado mi clúster de AKS, generará una IP pública que asociaremos a un VPN gateway, que además ya he dejado configurado para que pueda autenticarme usando Azure Active Directory. El último comando nos proporciona un zip con la configuración para usarla con Azure VPN, como mostré en el articulo de App Service con Private Link en este mismo escenario.

Sin embargo, si vuelvo a ejecutar el comando anterior, kubectl get nodes, seguiré obteniendo el mismo error. ¿Por qué ocurre esto? Porque si bien tenemos acceso a los recursos de esa red no estamos siendo capaces de resolver el nombre del private link asociado la IP del API Server de nuestro Kubernetes.

Modificar /etc/hosts

Para este artículo voy a dejarlo en la opción más sencilla, que es añadir el nombre a resolver en el archivo /etc/hosts. Con estos comandos puedes recuperar el nombre a resolver, el del private link, y la IP que hay detrás de este:

En mi caso quedaría una entrada como la siguiente:

Si ahora vuelves a intentar hablar con tu clúster verás que ya es posible.

Para un entorno de pruebas/desarrollo esta sería una opción válida. Sin embargo en entornos productivos se recomienda el uso de un DNS Forwarder.

El código con el script lo tienes en mi GitHub.

¡Saludos!

El articulo original -https://www.returngis.net/2021/11/acceder-a-un-cluster-privado-de-aks-a-traves-de-vpn-p2s/

Gisela Torres

Gisela Torres trabaja en Microsoft como Cloud Solution Architect. Se trata de un puesto técnico cuya misión es apoyar y asesorar sobre soluciones y arquitecturas cloud utilizando Microsoft Azure como plataforma. Antes de eso trabajo como arquitecta de software y desarrolladora de aplicaciones en varias empresas. Durante esos años recibio varios premios por ejemplo Most Valuable Professional en Microsoft Azure. Le encanta programar y la tecnología en general.

Más artículos de Gisela en su blog - https://www.returngis.net/

Related Posts

Únete a nuestra Newsletter

Lidera la Conversación en la Nube