Creación de su primera implementación en un clúster de Kubernetes
En este artículo, veremos cómo crear su primera implementación en un clúster de Kubernetes. Como ejemplo, crearemos una implementación para NginX.
Una vez que tenemos un clúster de Kubernetes en ejecución, podemos implementar nuestras aplicaciones en contenedores encima de él. Podemos crear una configuración de implementación de Kubernetes para lograr esto.
Una implementación proporciona actualizaciones declarativas para Pods y ReplicaSets. Describimos un estado deseado en la implementación y el controlador de implementación cambia el estado real al estado deseado a una velocidad controlada.
Podemos crear y administrar una implementación mediante la interfaz de línea de comandos «kubectl» de Kubernetes. Kubectl usa la API de Kubernetes para interactuar con el clúster.
Hay tres etapas en un ciclo de vida de implementación:
- progresando: Kubernetes marca una implementación como en progreso cuando la implementación crea un nuevo conjunto de réplicas, la implementación está ampliando su conjunto de réplicas más nuevo o reduciendo su conjunto de réplicas más antiguo o los nuevos pods están listos o disponibles
- Completo: Kubernetes marca una implementación como completa cuando todas las réplicas asociadas con la implementación se han actualizado, están disponibles y no se están ejecutando réplicas antiguas para la implementación.
- Ha fallado: Esto puede ocurrir debido a una cuota insuficiente, fallas en la sonda de preparación, errores de obtención de imágenes, permisos insuficientes.
requisitos previos
- Cuenta AWS (Crear si no tienes uno)
- Un clúster de Kubernetes
Nota: También puede usar máquinas virtuales para crear un clúster si no desea probar instancias de AWS EC2.
Lo que haremos
- Crear una implementación de Kubenetes para NginX
Crear una implementación de Kubenetes para NginX
Para crear nuestra primera implementación, simplemente creemos un nuevo directorio para crear nuestro objeto/archivo de implementación. Use el siguiente comando para crear un nuevo directorio en su sistema
mkdir mi primera implementación
cd mi-primera-implementación/
Antes de continuar, verifique el estado del clúster.
Para verificar los Nodos disponibles en el clúster y verificar la versión del «kubectl» utilice los siguientes comandos.
versión sudo kubectl
sudo kubectl obtener nodos
Una vez que tenga Nodos disponibles en su clúster, estará listo para crear su implementación.
Cree un archivo «my-first-deployment.yml» con el siguiente bloque de código
vim mi-primera-implementación.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
Aquí,
- apiVersion: APIVersion define el esquema versionado de esta representación de un objeto.
- tipo: tipo de objeto que desea crear, como implementación, servicio, mapa de configuración y más.
- nombre: el nombre debe ser único dentro de un espacio de nombres.
- etiquetas: Mapa de claves de cadena y valores que se pueden usar para organizar y categorizar objetos
- Especificaciones: Especificación del comportamiento deseado del Deployment.
- réplicas: Número de pods deseados.
- selector: Selector de etiquetas para pods. Los ReplicaSets existentes cuyos pods sean seleccionados por esto serán los afectados por esta implementación. Debe coincidir con las etiquetas de la plantilla del pod.
Ahora está listo para crear su implementación usando los siguientes comandos.
sudo kubectl apply -f mi-primera-implementación.yml
sudo kubectl obtener implementaciones
En la captura de pantalla anterior, puede ver que la implementación se creó con dos pods que están disponibles para usar.
Puede obtener los detalles de los pods usando el siguiente comando.
sudo kubectl obtener vainas
Si desea obtener más información sobre la implementación, puede usar este comando «kubectl describe» para obtener los detalles completos de la implementación.
sudo kubectl obtener implementaciones
sudo kubectl describe implementaciones nginx-deployment
Si ya no necesita la implementación, puede eliminarla usando el «comando de eliminación de kubectl».
sudo kubectl obtener implementaciones
sudo kubectl eliminar implementaciones nginx-deployment
sudo kubectl obtener implementaciones
En la captura de pantalla anterior, puede ver que la implementación ya no está disponible después de eliminarla.
Una vez que elimine la implementación, los pods también se eliminarán.
Puede verificar la disponibilidad de los pods usando el siguiente comando.
sudo kubectl obtener vainas
En la captura de pantalla anterior, puede ver que los pods se eliminaron después de eliminar la implementación y no están disponibles.
Conclusión
En este artículo, vimos los pasos para crear su primera implementación de NginX en Kubernetes. También vimos cómo se pueden extraer los detalles sobre el despliegue. Junto con esto, exploramos los comandos para eliminar la implementación.