Si aún no tienes un entorno de desarrollo para trabajar con Kubernetes, Java, Docker, etcétera. ¡Enhorabuena! Has llegado al lugar adecuado. En este tutorial te enseñamos como hacerlo en unos sencillos pasos. ¿Preparado?

¿Qué necesitarás?

Para preparar tu entorno de desarrollo necesitarás instalar:

Configurar Docker Desktop

Una vez realizada la instalación de Docker Desktop, debes configurarlo para permitir el uso de Kubernetes. Por defecto, está desactivado. Habilitarlo es tan sencillo como acceder a las opciones de configuración y marcar la casilla correspondiente en el apartado ‘Kubernetes’:

image

Una vez aplicados los cambios, la instalación de Kubernetes comenzará automáticamente. En la parte inferior izquierda se mostrará el estado de la misma. De esa forma, podrás ver cuándo ha concluido y ya está disponible para su uso.

Terminada la instalación de Kubernetes, tendrás a tu disposición el comando kubectl. Lo puedes utilizar desde el Símbolo del sistema o Windows PowerShell, en el caso de que estés utilizando Windows, o desde el terminal de Mac.

Kubernetes Ingress

Ingress expone enrutados HTTP y HTTPS fuera del clúster de kubernetes hacia servicios desplegados en el clúster, lo que te permitirá acceder cómodamente a ellos.

De forma muy resumida, estos son los pasos que tienes que seguir:

  1. Creación de artefactos iniciales de Ingress:

    kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/nginx-0.30.0/deploy/static/mandatory.yaml
  2. Despliegue de Ingress:

    kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/nginx-0.30.0/deploy/static/provider/cloud-generic.yaml
  3. Verificación de la instalación:

    kubectl get pods --all-namespaces -l app.kubernetes.io/name=ingress-nginx --watch

Si tienes algún problema, sigue los pasos de instalación de la documentación de despliegue de Ingress.

Kubernetes Dashboard

Para acceder al Dashboard de Kubernetes y tener una visión general de tus despliegues, primero tendrás que instalarlo en tu entorno. Sigue las instrucciones de su repositorio oficial en Github:

  1. Despliega el Dashboard utilizando el comando kubectl:

    kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-rc7/aio/deploy/recommended.yaml
  2. Una vez terminada la instalación, registra el Dashboard de Kubernetes en Ingress para acceder cómodamente a través del host virtual k8s.local. Para ello tendrás que crear el fichero kubernetes-dashboard-ingress.yaml con el siguiente contenido:

    apiVersion: networking.k8s.io/v1beta1
    kind: Ingress
    metadata:
     name: kubernetes-dashboard-ingress
     annotations:
         nginx.ingress.kubernetes.io/rewrite-target: /
         nginx.ingress.kubernetes.io/ssl-passthrough: "true"
         nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
         nginx.ingress.kubernetes.io/proxy-body-size: '0'
    spec:
     rules:
     - host: k8s.local
       http:
         paths:
         - path: /
           backend:
              serviceName: kubernetes-dashboard
              servicePort: 443

    Aplicar:

    kubectl apply -f kubernetes-dashboard-ingress.yaml -n kubernetes-dashboard
  3. Necesitarás editar el fichero hosts de tu máquina y añadir el alias k8s.local a la IP del host local:

     127.0.0.1 localhost k8s.local
    • /etc/hosts en linux/mac
    • c:\windows\system32\drivers\etc\hosts en windows
  1. Abre tu navegador e introduce http://k8s.local. Aparecerá el formulario de acceso:
    k8s-dashboard-login

  2. Para acceder necesitarás un token de acceso.
    Si lo prefieres puedes permitir el acceso sin token que es más cómodo para desarrollo local, y saltar los siguientes pasos de obtención del token:

    • (Windows PowerShell)
      kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | sls admin-user | ForEach-Object { $_ -Split '\s+' } | Select -First 1)
    • (Bash)
      kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep admin-user | awk '{print $1}')
  3. Si has permitido el acceso sin token, aparecerá el botón Skip en el formulario de login. Púlsalo para entrar al Dashboard. En caso contrario necesitarás el token de acceso obtenido en el paso 5.
    image

Consola de administración para Docker

Una vez hayas terminado la instalación y configuración de Docker Desktop, tendrás que instalar una consola de administración para Docker, que facilita la gestión de imágenes y contenedores de forma gráfica. Entre nuestras favoritas está portainer, ya que, aparte de todas las funcionalidades que incorpora, se instala como un contenedor en el propio Docker.

Sigue los pasos de instalación para tu sistema operativo.

portainer

Ayuda y resolución de problemas

Permitir acceso sin token

Para desarrollo local, lo más cómodo es activar el acceso sin token al Dashboard de Kubernetes. Para ello debes realizar los siguientes pasos:

  1. Editar la configuración de kubernetes-dashboard e introducir el parámetro --enable-skip-login en los argumentos de arranque:

    kubectl edit deployment/kubernetes-dashboard -n kubernetes-dashboard

    Baja hasta llegar a - args: e introduce --enable-skip-login:

    containers:
    - args:
     - --enable-skip-login

    Debería quedar algo como:
    image

  2. Una vez editada la configuración reinicia kubernetes-dashboard para aplicar los cambios:

    kubectl rollout restart deployment/kubernetes-dashboard -n kubernetes-dashboard