OpenShift es una familia de productos de software de contenedorización desarrollados por Red Hat . Su producto estrella es OpenShift Container Platform , una plataforma de nube híbrida como servicio construida alrededor de contenedores Linux orquestados y administrados por Kubernetes sobre una base de Red Hat Enterprise Linux . Los otros productos de la familia proporcionan esta plataforma a través de diferentes entornos: OKD sirve como upstream impulsado por la comunidad (similar a la forma en que Fedora es upstream de Red Hat Enterprise Linux), hay varios métodos de implementación disponibles, incluidos autogestionados, nativos de la nube bajo ROSA ( Red Hat OpenShift Service en AWS ) , ARO ( Azure Red Hat OpenShift ) y RHOIC ( Red Hat OpenShift en IBM Cloud) en AWS, Azure e IBM Cloud respectivamente, OpenShift Online como software como servicio y OpenShift Dedicated como servicio administrado .
La consola OpenShift tiene vistas orientadas a desarrolladores y administradores. Las vistas de administrador permiten supervisar los recursos y el estado de los contenedores, administrar usuarios, trabajar con operadores, etc. Las vistas de desarrollador están orientadas a trabajar con recursos de aplicaciones dentro de un espacio de nombres. OpenShift también proporciona una CLI que admite un superconjunto de las acciones que proporciona la CLI de Kubernetes.
OpenShift surgió originalmente de la adquisición de Makara por parte de Red Hat, una empresa que comercializa una plataforma como servicio (PaaS) basada en contenedores Linux, en noviembre de 2010. [2] [3] [4] OpenShift se anunció en mayo de 2011 como tecnología propietaria y no se convirtió en código abierto hasta mayo de 2012. [5] Hasta la v3, lanzada en junio de 2015, la tecnología de contenedores y la tecnología de orquestación de contenedores usaban tecnologías desarrolladas a medida. Esto cambió en la v3 con la adopción de Docker como tecnología de contenedores y Kubernetes como tecnología de orquestación de contenedores. [6] El producto v4 tiene muchos otros cambios arquitectónicos: uno destacado es el cambio al uso de CRI-O, como el entorno de ejecución de contenedores (y Podman para interactuar con pods y contenedores), y Buildah como la herramienta de construcción de contenedores, rompiendo así la dependencia exclusiva de Docker . [7]
La principal diferencia entre OpenShift y el Kubernetes tradicional es el concepto de artefactos relacionados con la compilación. En OpenShift, estos artefactos se consideran recursos de primera clase de Kubernetes sobre los que se pueden aplicar las operaciones estándar de Kubernetes. El programa cliente de OpenShift, "oc", ofrece un superconjunto de las capacidades estándar incluidas en el programa cliente principal "kubectl" de Kubernetes. [8] Con este cliente, se puede interactuar directamente con los recursos relacionados con la compilación mediante subcomandos (como "new-build" o "start-build"). Además de esto, una tecnología de compilación de pods nativa de OpenShift llamada Source-to-Image (S2I) está disponible de fábrica, aunque se está eliminando gradualmente a favor de Tekton , que es una forma nativa de la nube de compilar e implementar en Kubernetes. Para la plataforma OpenShift, esto proporciona capacidades equivalentes a las que puede hacer Jenkins .
Algunas otras diferencias cuando se compara OpenShift con Kubernetes:
OpenShift v4 controla estrictamente los sistemas operativos utilizados. Los componentes del "plano de control" deben ejecutar Red Hat CoreOS. Este nivel de control permite que el clúster admita actualizaciones y parches de los nodos del plano de control con un mínimo esfuerzo. Los nodos de cómputo pueden ejecutar Red Hat CoreOS, RHEL o incluso Windows.
OpenShift introdujo el concepto de rutas, puntos de entrada de tráfico al clúster de Kubernetes. El concepto de entrada de Kubernetes se basó en esto. [11]
OpenShift incluye otro software, como entornos de ejecución de aplicaciones, así como componentes de infraestructura del ecosistema Kubernetes. Por ejemplo, para las necesidades de observabilidad, se incluyen Prometheus , Fluentd, Vector, Loki e Istio (y sus dependencias). La marca Red Hat de Istio se llama Red Hat Service Mesh y se basa en un proyecto de código abierto llamado Maistra, que alinea la base de Istio con las necesidades de código abierto de OpenShift.
OpenShift Container Platform (anteriormente conocida como OpenShift Enterprise [12] ) es una plataforma privada local de Red Hat como producto de servicio, construida alrededor de contenedores de aplicaciones impulsados por CRI-O, con orquestación y gestión proporcionadas por Kubernetes , en Red Hat Enterprise Linux y Red Hat Enterprise Linux CoreOS. [13]
OKD, conocido hasta agosto de 2018 como OpenShift Origin [14] (Origin Community Distribution), es el proyecto comunitario upstream utilizado en OpenShift Online, OpenShift Dedicated y OpenShift Container Platform. OKD, construido en torno a un núcleo de empaquetado de contenedores Docker y gestión de clústeres de contenedores Kubernetes, se complementa con la funcionalidad de gestión del ciclo de vida de las aplicaciones y las herramientas DevOps. OKD proporciona una plataforma de contenedores de aplicaciones de código abierto. Todo el código fuente del proyecto OKD está disponible bajo la licencia Apache (versión 2.0) en GitHub . [15] [16]
Red Hat OpenShift Online (RHOO) es el servicio de alojamiento y desarrollo de aplicaciones en la nube pública de Red Hat que se ejecuta en AWS e IBM Cloud. [17]
Versión 2 [ ¿cuándo? ] ofrecida en línea del código fuente del proyecto OKD, que también está disponible bajo la Licencia Apache Versión 2.0. [18] Esta versión admitía una variedad de lenguajes, marcos y bases de datos a través de "cartuchos" preconstruidos que se ejecutaban bajo "engranajes" de cuota de recursos. Los desarrolladores podían agregar otros lenguajes, bases de datos o componentes a través de la interfaz de programación de aplicaciones OpenShift Cartridge . [19] Esto quedó obsoleto a favor de OpenShift 3, [20] y se retiró el 30 de septiembre de 2017 para los clientes que no pagaban y el 31 de diciembre de 2017 para los clientes que pagaban. [21]
OpenShift 3 está construido sobre Kubernetes . Puede ejecutar cualquier contenedor basado en Docker , pero Openshift Online está limitado a ejecutar contenedores que no requieren root . [20]
Red Hat OpenShift 4 para IBM Z e IBM LinuxONE es compatible con entornos locales, en la nube e híbridos. [22] [23]
OpenShift Dedicated (OSD) es la oferta de clúster privado administrado de Red Hat, construida alrededor de un núcleo de contenedores de aplicaciones impulsados por Docker, con orquestación y gestión provistas por Kubernetes, sobre una base de Red Hat Enterprise Linux . Está disponible en los mercados de Amazon Web Services (AWS), IBM Cloud y Google Cloud Platform (GCP) desde diciembre de 2016. [24] [25] También se ofrece una oferta de clúster privado administrado en Microsoft Azure bajo el nombre de Azure Red Hat OpenShift (ARO). [26]
OpenShift Data Foundation (ODF) proporciona almacenamiento nativo en la nube, gestión de datos y protección de datos para aplicaciones que se ejecutan con la plataforma OpenShift Container en la nube, [27] localmente y en entornos híbridos/multicloud.
Red Hat OpenShift Database Access (RHODA) es una función de los entornos de Kubernetes OpenShift administrados que permite a los administradores configurar conexiones a ofertas de bases de datos como servicio de diferentes proveedores. RHODA es un servicio complementario de OSD y Red Hat OpenShift Service on AWS (ROSA). La versión alfa inicial de RHODA incluía compatibilidad con MongoDB Atlas para MongoDB y Crunchy Bridge para PostgreSQL. [28]