Antes de definir las distintas aplicaciones que nos proporciona Red Hat para trabajar con contenedores OCI, vamos a definir una serie de conceptos:

Terminología sobre contenedores

  • Orquestador de contenedores: Programa que gestiona los contenedores que se ejecutan en un clúster de servidores. Nos ofrece muchas características: actualizaciones automáticas, balanceo de carga, tolerancia a fallos, escalabilidad,…

orquestadores

  • Motor de contenedores: Software que nos permite gestionar contenedores en un nodo local. Los contenedores puedes ser creados por orquestadores, en ese caso se usan motores como containerd o cri-o, o pueden ser gestionados por usuarios, en este caso se utilizan motores como Docker o Podman.

motores

  • Entorno de ejecución de contenedores (runtime container): Software encargado de configurar el sistema para ejecutar los contenedores. Lo más utilizados son runc y crun. Otros ejemplos de entornos de ejecución puedes ser Kata y gVisor.

entornos

Conceptos relacionados con el trabajo con contenedores

  • Contenedor OCI:
    • Cumplen la especificación desarrollada por la OCI.
    • Entorno aislado donde se ejecuta una aplicación.
    • Tiene su propio sistema de ficheros con todas las dependencias que necesita la aplicación para funcionar.
    • Puede estar conectado a una red virtual y utilizar almacenamiento adicional para no perder la información importante.
    • Utiliza los recursos del servidor donde se está ejecutando (núcleo del sistema operativo, CPU, RAM).
    • Los contenedores suelen ejecutar un sólo proceso.
    • Los contenedores son efímeros.
  • Imagen OCI:
    • El formato de las imágenes cumplen la especificación desarrollada por la OCI. Del mismo modo, la distribución de dichas imágenes cumplen con la especificación OCI.
    • Una imagen es una plantilla de sólo lectura con instrucciones para crear un contenedor OCI.
    • Contiene el sistema de fichero que tendrá el contenedor.
    • Además guardan un conjunto de metadatos, por ejemplo el comando que ejecutará el contenedor por defecto.
    • Podemos crear nuestras propias imágenes o utilizar las creadas por otros y publicadas en un registro.
    • Un contenedor es una instancia ejecutable de una imagen.
  • Registros de Imágenes:
    • Un registro almacena imágenes.
    • Los registros pueden ser públicos o privados.
    • Tenemos un registro local donde se descargan las imágenes desde la que vamos a crear los contenedores.
    • Tenemos registros remotos desde donde podemos bajar las imágenes, o subirlas para su distribución.
    • Podman puede configurar y trabajar con distintos registros:
      • docker.io: El es registro público de Docker, llamado Docker Hub.
      • quay.io: Es un registro público de imágenes proporcionado por Red Hat.
      • registry.access.redhat.com: Es otro registro ofrecido por Red Hat, que ofrece imágenes de contenedores certificadas y soportadas por Red Hat Enterprise Linux (RHEL), OpenShift y otras tecnologías relacionadas con Red Hat.
      • registry.fedoraproject.org: Es un registro de imágenes de contenedores OCI mantenido por el Proyecto Fedora. Contiene imágenes de contenedores basadas en Fedora y otras tecnologías relacionadas con Fedora.

Herramientas de Red Hat para trabajar con contenedores

Podman, Buildah y Skopeo son tres herramientas relacionadas que se utilizan en el mundo de los contenedores. Aunque tienen funcionalidades diferentes, trabajan en conjunto para facilitar la construcción, ejecución y administración de contenedores.

  • Podman: Es un motor de contenedores OCI, que permite a los usuarios crear, ejecutar y gestionar contenedores sin necesidad de un demonio (daemon) centralizado. Podman utiliza un enfoque basado en procesos, lo que lo hace más seguro y adecuado para entornos donde se requiere aislamiento y seguridad.
  • Buildah: Es una herramienta para la construcción de imágenes de contenedores sin necesidad de ejecutar un demonio. Permite distintas maneras a los usuarios de construir imágenes de contenedores OCI: desde cero, desde una imagen base, desde un fichero Containerfile.
  • Skopeo: Es una herramienta que facilita la gestión de imágenes de contenedores. Permite a los usuarios copiar imágenes de un registro a otro, inspeccionar imágenes, y realizar otras operaciones relacionadas con imágenes sin necesidad de descargarlas en el sistema local.

Actualizado: