Docker: trabajar con Kubernetes

Docker es una herramienta diseñada para facilitar la creación, implementación y ejecución de aplicaciones mediante el uso de contenedores. Docker también puede ejecutar archivos de imagen. Docker le permite separar las aplicaciones de la infraestructura para que los contenedores de Docker puedan entregar proyectos de manera más rápida. Hace uso de la virtualización a nivel del sistema operativo para entregar la aplicación.

Ventajas del contenedor Docker:

  • El tamaño es pequeño, son muy rápidos.
  • Ligero y portátil.
  • Menos RAM y espacio.
  • Proceso aislado, si un contenedor se ve afectado, el otro no se ve afectado.

Kubernetes es un sistema de código abierto para la automatización, implementación y escalado de aplicaciones en contenedores. Se utiliza para construir aplicaciones modernas. Puede usar Kubernetes para implementaciones en la nube. Cuando se usa en combinación con AWS, utiliza Kubernetes para administrar clústeres de instancias de Amazon Elastic Compute Cloud (EC2) que alojan sus contenedores.

Ventajas de Kubernetes:

  • Escalabilidad
  • Flexibilidad
  • Portabilidad

Terminologías clave en Docker:

  1. Contenedor: el contenedor permite a un desarrollador empaquetar una aplicación con todas las partes que necesita, como bibliotecas, herramientas, código y otras dependencias que se utilizan para ejecutar un servicio e implementarlo como un solo paquete. Consiste en motores de contenedores que ayudan en la construcción de contenedores.
  2. Docker Engine: Docker Engine es una innovación de contenedorización de código abierto que se utiliza para crear y contener sus aplicaciones.
  3. Archivo Docker: la imagen Docker se crea utilizando el archivo Docker. Este archivo contiene datos en forma de comandos que, a su vez, ayudan en la creación de la imagen de Docker.
  4. Imagen de Docker: una imagen de Docker es un formato examinado que contiene un montón de instrucciones para crear un contenedor que pueda ejecutarse en el portal de Docker.

Requisitos previos :

  • Escritorio acoplable
  • CLI de Kubernetes
  • Minikube

Instalación: 

1. Instale Docker Desktop : Docker puede crear imágenes de forma natural leyendo las instrucciones de un Dockerfile. Un Dockerfile es un archivo de libros que contiene todos los pedidos que un cliente puede acercarse a la línea de pedidos para tomar una imagen. El uso de los clientes de ensamblaje de la ventana acoplable puede crear una fabricación robotizada que ejecuta algunas pautas de línea de pedido en progresión.

Para instalar Docker Desktop para Windows, puede consultar este enlace. 

Escritorio acoplable

2. Habilite Kubernetes: una vez que la ventana acoplable esté instalada, debe habilitar Kubernetes. Haga clic en Configuración, lo llevará al siguiente lugar:

Habilitar el clúster de Kubernetes

3. Instale la CLI de Kubernetes: para ejecutar el clúster de Kubernetes, se utiliza la interfaz de línea de comandos (CLI) de Kubernetes, kubectl. 

Para descargar la CLI de Kubernetes, consulte este enlace. 

4. Instale Minikube: Minikube se denomina «motor local de Kubernetes». Minikube es un dispositivo que le permite ejecutar Kubernetes localmente. Minikube ejecuta un grupo de Kubernetes de concentrador solitario en su PC. 

Para instalar consulte este enlace. 

5. Una vez que se haya realizado todo el proceso de instalación, crearemos una aplicación simple en cualquier editor. 

  • Cree una carpeta (aquí hello-minikube) en su escritorio.
  • Abra esa carpeta en su Código de Visual Studio (puede usar el editor de su elección). La estructura del proyecto se ve de la siguiente manera:

  •  En app.py, agregue el siguiente código de Python:

Python3

from flask import flask, jsonify
import time
 
app = flask(_name_)
 
app.router("/")
def hello_minikubegfg():
    return jsonify({"Time to Call":time.time()})
 
if _name_ == "_main_":
    app.run(host='0.0.0.0',debug=True)
  • En el archivo require.txt -> Simplemente agregue la dependencia requerida (aquí he agregado el matraz)
  • En el archivo Docker -> Extraiga la imagen de la ventana acoplable desde el centro de la ventana acoplable y también copie todos los archivos que están allí en el directorio como se menciona a continuación:
FROM python:3.7
RUN mkdir /app
WORKDIR /app/
ADD . /app/
RUN pip install -r requirements.txt
CMD ["python", "/app/app.py"]
  • En la terminal, agregue los comandos mencionados a continuación:
docker build -t hello-minikube . (Press Enter)
docker images (Press Enter)

Después de la ejecución de los comandos anteriores, podrá ver la identificación de la imagen de la siguiente manera: 

Imágenes acoplables

  • Ahora agregue un nuevo nombre de archivo ‘ deployment.yaml ‘ y agregue el código mencionado a continuación:
apiVersion: v1
kind: Service
metadata:
  name: test-service
spec:
  selector:
    app: test-app
  ports:
  - protocol: "TCP"
    port: 6000
    targetPort: 5000
  type: LoadBalancer

---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: hello-minikube-test-app
spec:
  selector:
    matchLabels:
      app: hello-minikube-test-app
  replicas: 5
  template:
    metadata:
      labels:
        app: hello-minikube-test-app
    spec:
      containers:
      - name: hello-minikube-test-app
        image: hello-minikube
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 5000

H. En la terminal, agregue los comandos de la siguiente manera para el propósito de implementación: 

minikube start (Press Enter)
kubectl apply -f deployment.yaml (Press Enter)
minikube dashboard (Press Enter)

i. Una vez que se ejecuten los comandos anteriores, verá que su aplicación docker se ha implementado en Kubernetes y el panel de minikube se abrirá en el navegador.

Salida: Por lo tanto, la aplicación Docker se implementó correctamente en Kubernetes.

Aplicación Docker implementada en Kubernetes

Publicación traducida automáticamente

Artículo escrito por sharmasakshi0811 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *