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:
- JDK 8 o superior
- Maven 3.5.2 o superior
- Git
- Docker Desktop
- Opcionalmente, por comodidad:
- Una consola de administración para Docker.
- Un IDE de desarrollo, por ejemplo IntelliJ IDEA
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’:
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:
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
Despliegue de Ingress:
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/nginx-0.30.0/deploy/static/provider/cloud-generic.yaml
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:
Despliega el Dashboard utilizando el comando
kubectl
:kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-rc7/aio/deploy/recommended.yaml
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 ficherokubernetes-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
Necesitarás editar el fichero
hosts
de tu máquina y añadir el aliask8s.local
a la IP del host local:127.0.0.1 localhost k8s.local
/etc/hosts
en linux/macc:\windows\system32\drivers\etc\hosts
en windows
Abre tu navegador e introduce
http://k8s.local
. Aparecerá el formulario de acceso: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}')
- (Windows PowerShell)
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.
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.
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:
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:
Una vez editada la configuración reinicia kubernetes-dashboard para aplicar los cambios:
kubectl rollout restart deployment/kubernetes-dashboard -n kubernetes-dashboard