Conceptos clave para Red Hat OpenShift Container Platform
Conozca los conceptos básicos de operadores, contenedores y Kubernetes para ayudarle a comprender las ventajas de migrar sus aplicaciones a la nube.
Para obtener más información sobre cómo trabajar con Red Hat® OpenShift® Container Platform, consulte los temas siguientes:
Operadores y dependencias
- ¿Qué es un operador?
- Un operador es un conjunto de recursos nativos de Kubernetesque empaqueta, despliega y gestiona una aplicación Kubernetes ampliando la API Kubernetes .
- ¿Qué es una aplicación Kubernetes ?
- Una aplicación Kubernetes es una aplicación que se despliega en Kubernetes y se gestiona utilizando las API y las herramientas kubectl de Kubernetes .
- ¿Cómo funciona un operador?
Un operador consta de varias partes de software que permiten una gestión eficiente de las aplicaciones en Kubernetes : un controlador y una o más definiciones de recursos personalizados (CRD).
El controlador es código personalizado que se despliega en un clúster de Kubernetes que observa los cambios en los recursos de Kubernetes personalizados y reacciona ante ellos. Un recurso personalizado es una extensión de la API de Kubernetes y se utiliza para proporcionar prestaciones adicionales que podrían no estar disponibles en la instalación predeterminada de Kubernetes . Permite la personalización y la modularización de Kubernetes.
- ¿Qué es una dependencia?
- Una dependencia es un requisito previo que debe satisfacerse antes de que pueda continuar el proceso. Es decir, cuando una entidad en un sistema no puede funcionar significativamente sin otra entidad, se dice que es dependiente. Por ejemplo, una aplicación puede tener dependencias en un servidor, base de datos u otros servicios a los que está conectada. En la migración a la nube, estas dependencias de aplicación son un posible riesgo. Las herramientas de descubrimiento pueden proporcionarle una imagen clara de la relación entre cada aplicación y sus dependencias para que pueda migrar correctamente todas las aplicaciones y servicios críticos a la nube.
Operator Lifecycle Manager (OLM)
- Qué es Operator Lifecycle Manager
- Operator Lifecycle Manager (OLM) amplía la capacidad de Kubernetes permitiendo a los usuarios instalar, gestionar y actualizar operadores y sus dependencias en un clúster.
- ¿Por qué utilizar Operator Lifecycle Manager?
- Puede gestionar aplicaciones más fácilmente definiendo una aplicación como un único recurso de Kubernetes , cada uno con sus requisitos y metadatos. OLM requiere estos metadatos para verificar que un operador se puede ejecutar de forma segura en un clúster y comprender cómo se van a aplicar las actualizaciones.
- Puede automatizar instalaciones de aplicaciones y resolver dependencias o instalar manualmente sin nada más que kubectl.
- Puede automatizar las actualizaciones de la aplicación y aplicar distintas políticas de aprobación para cada una.
Contenerización, Kubernetesy Red Hat OpenShift Container Platform
- ¿Qué es un contenedor?
- Un contenedor es una unidad ejecutable de software en la que el código de aplicación se empaqueta junto con bibliotecas y dependencias. Se puede ejecutar en cualquier lugar del escritorio, la TI tradicional o la nube. Los contenedores aprovechan una forma de virtualización del sistema operativo (SO), para que varias aplicaciones compartan el SO aislando los procesos y controlando la cantidad de CPU, memoria y disco a los que pueden acceder dichos procesos.
- ¿Qué es la contenerización?
- La contenerización es el proceso de empaquetar el código de software y todas sus dependencias para que pueda ejecutarse de forma coherente en cualquier infraestructura.
- Ventajas de la contenerización
La inclusión en contenedores ofrece las siguientes ventajas a los desarrolladores y equipos de desarrollo:
- Portabilidad: un contenedor crea un paquete ejecutable de software que se abstrae de (no vinculado a o dependiente de) el sistema operativo de host, y por lo tanto, es portátil y capaz de ejecutarse de manera uniforme y coherente a través de cualquier plataforma o nube.
- Agilidad: El Docker Engine de código abierto para ejecutar contenedores ha iniciado el estándar del sector para contenedores con herramientas de desarrollador simples y un enfoque de empaquetado universal que funciona en los sistemas operativos Linux® y Windows . Ahora, muchos usuarios prefieren motores gestionados por Open Container Initiative (OCI). Los desarrolladores de software pueden seguir utilizando herramientas y procesos ágiles o DevOps para acelerar el desarrollo y la mejora de aplicaciones.
- Velocidad: A menudo se hace referencia a los contenedores como "ligeros", lo que significa que comparten el kernel del sistema operativo (SO) de la computadora. Esta arquitectura mejora la eficiencia del servidor, reduce los costes de servidor y licencias y reduce los tiempos de inicialización.
- Aislamiento de errores: Cada aplicación contenerizada se aísla y opera independientemente de las demás. El fallo de un contenedor no afecta a la continuidad de las operaciones de otros contenedores. Los equipos de desarrollo pueden identificar y corregir cualquier problema técnico dentro de un contenedor sin ningún tiempo de inactividad en otros contenedores. Además, el motor de contenedor puede utilizar cualquier técnica de aislamiento de seguridad del sistema operativo, como el control de acceso de SELinux, para aislar los errores dentro de los contenedores.
- Eficiencia: El software que se ejecuta en entornos contenerizados comparte el kernel del sistema operativo de la máquina, y las capas de aplicación dentro de un contenedor se pueden compartir entre contenedores. De esta manera, los contenedores son inherentemente más pequeños en capacidad que una máquina virtual y requieren menos tiempo de inicio, lo que permite ejecutar muchos más contenedores en la misma capacidad de cálculo que una sola máquina virtual. Esta arquitectura mejora la eficiencia del servidor y reduce los costes de servidor y licencia.
- Facilidad de gestión: una plataforma de orquestación de contenedores automatiza la instalación, el escalado y la gestión de cargas de trabajo y servicios contenerizados. Las plataformas de orquestación de contenedores facilitan algunas tareas de gestión como escalar aplicaciones contenerizadas, desplegar nuevas versiones de aplicaciones y proporcionar supervisión, registro y depuración, entre otras funciones. Kubernetes, quizás el sistema de orquestación de contenedores más popular disponible, es una tecnología de código abierto (originalmente de código abierto de Google, basada en su proyecto interno denominado Borg) que automatiza originalmente las funciones de contenedor de Linux . Kubernetes funciona con muchos motores de contenedor, como Docker, pero también funciona con cualquier sistema de contenedores que se ajuste a los estándares de Open Container Initiative (OCI) para formatos de imagen de contenedor y tiempos de ejecución.
- Seguridad: El aislamiento de las aplicaciones como contenedores impide de forma inherente que la invasión de código malicioso afecte a otros contenedores o al sistema host. Además, se pueden definir permisos de seguridad para bloquear automáticamente que los componentes no deseados entren en contenedores o limiten las comunicaciones con recursos innecesarios.
Para obtener más información sobre la contenedorización, consulte Explicación de la contenedorización.
- ¿Qué es Kubernetes?
- Kubernetes -también conocido como "k8s" o "kube"-es una plataforma de orquestación de contenedores para planificar y automatizar el despliegue, la gestión y el escalado de aplicaciones contenerizadas.
- ¿Por qué utilizar Kubernetes?
Los equipos de operaciones deben planificar y automatizar el despliegue, la red, la escalabilidad y la disponibilidad de un número cada vez mayor de contenedores.
Los desarrolladores eligen Kubernetes por su amplia funcionalidad, su amplio y creciente ecosistema de herramientas de código abierto y su soporte y portabilidad en los principales proveedores de cloud (algunos de los cuales ahora ofrecen servicios Kubernetes completamente gestionados).
- ¿Qué hace Kubernetes?
Kubernetes planifica y automatiza las tareas siguientes:
- Despliegue: Despliegue un número especificado de contenedores en un host especificado y manténgalos en ejecución en el estado deseado.
- Despliegues: un despliegue es un cambio en un despliegue. Utilizando Kubernetes, puede iniciar, pausar, reanudar o retrotraer despliegues.
- Descubrimiento de servicios: Kubernetes puede exponer automáticamente un contenedor a Internet o a otros contenedores utilizando un nombre DNS o una dirección IP.
- Suministro de almacenamiento: establezca Kubernetes para montar el almacenamiento local o en la nube persistente para los contenedores según sea necesario.
- Equilibrio de carga y escalado: cuando el tráfico a un contenedor se dispara, Kubernetes puede emplear el equilibrio de carga y el escalado para distribuirlo a través de la red para mantener la estabilidad.
- Recuperación automática de alta disponibilidad: cuando un contenedor falla, Kubernetes puede reiniciarlo o sustituirlo automáticamente; también puede desconectar los contenedores que no cumplen los requisitos de comprobación de estado.
- ¿Qué es Red Hat Red Hat OpenShift Container Platform?
Red Hat OpenShift Container Platform es una plataforma para automatizar el despliegue y la gestión de aplicaciones contenerizadas. Aunque Red Hat OpenShift Container Platform utiliza Kubernetes para orquestar contenedores, Kubernetes no gestiona los requisitos a nivel de plataforma ni los procesos de despliegue. Por lo tanto, Red Hat OpenShift Container Platform mejora la capacidad de Kubernetes proporcionando herramientas y procesos de gestión de plataforma.
Para obtener más información, consulte Red Hat OpenShift Container Platform
.