Después de crear un cluster de un solo nodo, en esta entrada explico los pasos para publicar una aplicación en el clúster.
Mi primera aplicación en Kubernetes
- post
- Xavi Aznar
Photo by Mabel Amber
Después de crear un cluster de un solo nodo, en esta entrada explico los pasos para publicar una aplicación en el clúster.
Para tener un clúster de desarrollo con la versatilidad de poder hacer y deshacer cambios (usando los snapshots de una máquina virtual), lo más sencillo es disponer de un clúster de Kubernetes de un solo nodo.
En la pantalla de login en modo consola de los sistemas Linux se muestra un mensaje de bienvenida.
En este artículo se muestra cómo hacer que se muestre la IP del equipo.
Alpine Linux se ha convertido en la distribución por defecto con la que construir contenedores.
Alpine tiene sus propias particularidades, ya que no deriva de otra distribución, de manera que he pensado que sería una buena idea tener una máquina virtual con la que entrenarme.
En este artículo explico qué diferencias he encontrado en Alpine.
En el artículo Habilita el API remoto de Docker explicaba cómo configurar el acceso remoto al API de Docker. El problema es que de esta forma no hay manera de restringir el acceso.
En este artículo protegemos el acceso usando TLS de manera que sólo se permitan conexiones que presenten un certificado firmado por una CA de confianza.
En el artículo Portainer para gestionar tus contenedores en Docker usamos Portainer para gestionar el Docker Engine local.
En el artículo Habilita el API remoto de Docker habilitamos el acceso remoto al API de Docker Engine.
En este artículo configuramos Portainer para conectar con un endpoint remoto (el API expuesta de un Docker Engine).
Portainer permite gestionar endpoints remotos para Docker (y Docker Swarm) mediante el API REST de Docker Engine. El problema es que el API está desactivado por defecto.
A continuación indico cómo activar y verificar el acceso remoto al API de Docker Engine.
Una de las cosas que más me sorprenden de Kubernetes es que es necesario instalar una capa de red sobre el clúster.
En el caso concreto del que he obtenido las capturas de pantalla, el clúster corre sobre máquinas virtuales con Debian Jessie.
Al lanzar la inicialización del clúster con kubeadm init
en Debian Jessie, las comprobaciones inciales indican que no se encuentran los cgroups para la memoria (échale un vistazo al artículo La instalación de Kubernetes falla en Debian Jessie (missing cgroups: memory)). Los cgroups son una de las piezas fundamentales en las que se basa Docker para aislar los procesos de los contenedores, por lo que la inicialización del clúster de Kubernetes se detiene.
La solución es tan sencilla como habilitar los cgroups durante el arranque.
La instalación de Kubernetes se realiza de forma casi automática gracias al script kubeadm
. Sólo hay que seguir las instrucciones de Installing Kubernetes on Linux with kubeadm y la salida por pantalla del propio script.