Crear tu primer despliegue en un clúster Kubernetes
En este artículo, veremos cómo crear tu primer despliegue en un Clúster Kubernetes. Como ejemplo, crearemos un despliegue para Nginx.
Una vez que tengamos un clúster Kubernetes en funcionamiento, podremos desplegar nuestras aplicaciones en contenedores sobre él. Para ello, podemos crear una configuración de Despliegue de Kubernetes.
Un Despliegue proporciona actualizaciones declarativas para Pods y ReplicaSets. Describimos un estado deseado en el Despliegue y el Controlador del Despliegue cambia el estado real al estado deseado a un ritmo controlado.
Podemos crear y gestionar un Despliegue utilizando la interfaz de línea de comandos de Kubernetes «kubectl». Kubectl utiliza la API de Kubernetes para interactuar con el clúster.
Hay tres etapas en el ciclo de vida de un despliegue:
- Progresando: Kubernetes marca un Despliegue como progresando cuando el Despliegue crea un nuevo ReplicaSet, el Despliegue está escalando su ReplicaSet más reciente o escalando su ReplicaSet más antiguo o nuevos Pods están listos o disponibles.
- Completo: Kubernetes marca una Implantación como completa cuando todas las réplicas asociadas a la Implantación se han actualizado, están disponibles y no hay réplicas antiguas de la Implantación en ejecución.
- Fallida: Esto puede ocurrir debido a una cuota insuficiente, fallos en la sonda de preparación, errores en la extracción de imágenes o permisos insuficientes.
Requisitos previos
- Cuenta AWS (Crea una en una si no la tienes)
- Un Clúster Kubernetes
Nota: También puedes utilizar VMs para crear un cluster si no quieres probar en Instancias EC2 de AWS.
Qué haremos
- Crear un Despliegue de Kubernetes para Nginx.
Crear un despliegue Kubernetes para Nginx
Para crear nuestro primer despliegue vamos a crear un nuevo directorio para crear nuestro Archivo Objeto/Despliegue. Utiliza el siguiente comando para crear un nuevo directorio en tu sistema
mkdir mi-primer-despliegue
cd mi-primer-despliegue/
Antes de continuar, comprueba el estado del clúster.
Para comprobar los Nodos disponibles en el clúster y comprobar la versión del«kubectl» utiliza los siguientes comandos.
sudo kubectl version
sudo kubectl get nodes
Una vez que tengas Nodos disponibles en tu clúster estás listo para crear tu despliegue.
Crea un archivo»mi-primer-despliegue.yml» con el siguiente bloque de código
vim mi-primer-despliegue.yml
--- apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment labels: app: nginx spec: replicas: 2 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:1.7.9 ports: - containerPort: 80
Toma
- apiVersion: APIVersion define el esquema versionado de esta representación de un objeto.
- tipo: El tipo de objeto que quieres crear, como Despliegue, Servicio, Configmap, etc.
- nombre: El nombredebe ser único dentro de un espacio de nombres.
- etiquetas:Mapa de claves y valores de cadena que pueden utilizarse para organizar y categorizar los objetos.
- spec:Especificación del comportamiento deseado del Despliegue.
- réplicas:Número de pods deseados.
- selector:Etiqueta selectora para los pods. Los ReplicaSets existentes cuyos pods sean seleccionados por esto serán los afectados por este despliegue. Debe coincidir con las etiquetas de la plantilla de pods.
Ahora estás listo para crear tu despliegue utilizando los siguientes comandos.
sudo kubectl apply -f mi-primer-despliegue.yml
sudo kubectl get despliegues
En la captura de pantalla anterior, puedes ver que el despliegue se ha creado con dos pods que están disponibles para su uso.
Puedes obtener los detalles de los pods utilizando el siguiente comando.
sudo kubectl get pods
Si quieres saber más sobre el despliegue puedes utilizar este comando «kubectl describe» para obtener los detalles completos del despliegue.
sudo kubectl get deployments
sudo kubectl describe deployments nginx-deployment
Si ya no necesitas el despliegue, puedes eliminarlo utilizando el «comando kubectl delete».
sudokubectl get deployments
sudo kubectl delete deployments nginx-deployment
sudo kubectl get deployments
En la captura de pantalla anterior, puedes ver que el despliegue ya no está disponible después de eliminarlo.
Una vez que eliminas el despliegue, también se eliminan los pods.
Puedes comprobar la disponibilidad de los pods utilizando el siguiente comando.
sudo kubectl get pods
En la captura de pantalla anterior, puedes ver que los pods se han eliminado después de borrar el despliegue y no están disponibles.
Conclusión
En este artículo, hemos visto los pasos para crear tu primer Despliegue Nginx en Kubernetes. También hemos visto cómo se pueden extraer los detalles relativos al despliegue. Junto con esto, hemos explorado los comandos para eliminar el despliegue.