Primeros pasos con Kubernetes (IV): Gestión de DNS

Todos los Pods se configuran para tener acceso al servidor de DNS de Kubernetes, llamado SkyDNS. Cualquier entrada registrada en SkyDNS es accesible desde los Pods. Es decir, si creamos una entrada en SkyDNS llamada “xxxx” y que esta apunte a 33.22.11.44, desde una aplicación de un Pod podría invocar una llamada usando el nombre xxxx y automáticamente se conectaría a SkyDNS para resolver ese nombre.

Cuando un Service es creado en Kubernetes, automáticamente se registra en el servidor de DNS de Kubernetes (SkyDNS) una entrada con el nombre igual al del Service y la IP de este. Esta funcionalidad nos permite que desde cualquier aplicación que despleguemos, podamos acceder a otras aplicaciones usando el nombre del Service.

Para verificar esto, desplegaremos nuestra aplicación y su Service asociado y a continuación nos conectaremos dentro del Container para lanzar un comando que permite resolver el nombre del Service creado (hello).


$ kubectl get pods

NAME                     READY     STATUS    RESTARTS   AGE
hello-3980049456-32xyw   1/1       Running   0          54m
hello-3980049456-mfrr8   1/1       Running   0          54m
hello-3980049456-p67l7   1/1       Running   0          54m

$ kubectl exec hello-3980049456-32xyw curl http://hello

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100    12    0    12    0     0    627      0 --:--:-- --:--:-- --:--:--   631
Hello World!


Como podemos ver, desde dentro del Container donde corre nuestra aplicación hemos invocado al Service usando el nombre de este sin necesidad de informar la IP.

Si se quiere información extra sobre el sistema de registro de nombres en Kubernetes, se puede consultar el siguiente enlace.

http://kubernetes.io/docs/admin/dns/


Como hemos podido ver, Kubernetes permite una forma fácil de conectarnos a un Container y lanzar comandos dentro de este. Esta funcionalidad ayuda mucho cuando se diagnostican errores o para tareas de monitorización.

Si se quiere información extra se puede consultar los siguientes enlaces.

http://kubernetes.io/docs/user-guide/getting-into-containers/


No hay comentarios