Iniciar sesión / Registrar Cuenta

Contenedores

Los conceptos básicos de Kubernetes

Gracias a la organización en contenedores, los desarrolladores pueden concentrarse en sus aplicaciones, mientras el departamento de operaciones se encarga de la infraestructura; es decir, es la forma en que usted gestiona sus implementaciones en toda la empresa.

Kubernetes es una plataforma open source con ese propósito, y automatiza muchos de los procesos manuales involucrados en la implementación, la gestión y la escalabilidad de las aplicaciones en contenedores.

Lo ayuda a distribuir y gestionar las aplicaciones heredadas, nativas de la nube y en contenedores a escala, así como aquellas que se rediseñan con una estructura de microservicios en todos los entornos, los cuales incluyen los proveedores principales de nube privada y pública, como Amazon Web Services (AWS), Google Cloud, IBM Cloud y Microsoft Azure.

 

Arquitectura de Kubernetes

Kubernetes le brinda la plataforma necesaria para programar y ejecutar los contenedores en clústeres de máquinas virtuales o físicas. Su arquitectura divide un clúster en elementos que trabajan en conjunto, para mantener su estado definido.

Un clúster de Kubernetes es un conjunto de máquinas de nodos que ejecutan aplicaciones en contenedores. Lo puede visualizar en dos partes: el plano de control y las máquinas informáticas o nodos. Cada nodo es su propio entorno Linux®, que puede ser una máquina virtual o física. Además, los nodos ejecutan los pods, los cuales están formados por contenedores.

La interfaz de programación de aplicaciones o API de Kubernetes es el frontend del plano de control de este sistema, y se encarga de la interacción de los usuarios con el clúster de Kubernetes. El servidor de la API determina si una solicitud es válida y se encarga de procesarla.

La API es la interfaz que se utiliza para gestionar, crear y configurar los clústeres de la plataforma. Es el medio de comunicación entre los usuarios, los elementos externos y las partes del clúster.

En este breve tutorial, aprenderá a crear un clúster y a implementar una aplicación. 

 

Otros elementos de los clústeres de Kubernetes

Nodos:
 máquinas que realizan las tareas solicitadas que asigna el plano de control.

Pod:
 conjunto de uno o más contenedores implementados en un solo nodo. Es el objeto más pequeño y simple de Kubernetes.

Servicio:
 forma de exponer una aplicación que se ejecuta en un conjunto de pods como un servicio de red. Esto separa las definiciones de las tareas de los pods.

Kubectl:
 interfaz de línea de comandos donde puede gestionar su clúster de Kubernetes. Conozca los comandos básicos de kubectl y Helm para principiantes.

Kubelet:
 aplicación muy pequeña ubicada dentro de cada nodo, que se comunica con el plano de control. El kubelet garantiza que sus contenedores se ejecuten en un pod.

Si está listo para utilizar Kubernetes, aproveche la herramienta open source Minikube, que le permite configurar un clúster local de la plataforma para que pueda probarla desde una computadora portátil.

 

Cómo funciona Kubernetes

Su funcionamiento depende del estado definido y del real. Los objetos de Kubernetes representan el estado de un clúster, y comunican a la plataforma cuál es la apariencia de la carga de trabajo que usted desea.

Una vez que se crean y se definen, Kubernetes se encarga de garantizar su permanencia. 

Los controladores gestionan de forma activa el estado de los objetos y realizan los cambios necesarios para que el clúster pase de su estado actual al deseado. 

Los desarrolladores o los administradores de sistemas indican el estado deseado a través de los archivos YAML o JSON, que envían a la API de Kubernetes. La plataforma utiliza un controlador para analizar la diferencia entre el nuevo estado definido y el real en el clúster.

El estado deseado define las aplicaciones o las cargas de trabajo que deben ejecutarse, las imágenes en contenedores que estas utilizan, los recursos que deben estar disponibles y demás detalles de configuración.

Los datos de configuración y la información sobre el estado del clúster se alojan en la etcd, una base de datos de almacenamiento de valor clave. La etcd es distribuida, ofrece tolerancia a los errores y está diseñada para ser la principal fuente de información del clúster.

Entonces Kubernetes gestionará el clúster de forma automática para que coincida con él. Por lo general, los controladores se encargan de ello enviando mensajes al servidor de la API para generar los cambios necesarios, y algunos vienen integrados en ciertos recursos de Kubernetes.

Para darse una idea de cómo trabaja la plataforma, imagínese que implementa una aplicación con un estado deseado de "tres"; es decir, deberían ejecutarse tres réplicas de la aplicación.

Si uno de los contenedores falla, el conjunto de réplicas de Kubernetes notará que solo funcionan dos de ellas y agregará una más para lograr el estado deseado.

Los conjuntos de réplicas son un tipo de controlador que garantiza la ejecución de un número determinado de pods en todo momento.

Las implementaciones de Kubernetes son el método preferente para gestionarlos, y brindan actualizaciones declarativas a los pods, para que usted no tenga que gestionarlas de forma manual. 

También puede utilizar la escalabilidad automática en Kubernetes para ajustar sus servicios en función de las necesidades de los usuarios. Al especificar el estado deseado de una aplicación o un servicio, tiene la posibilidad de indicar al controlador que deje pods adicionales disponibles en caso de que aumente la demanda.

Por ejemplo, durante un período ajetreado, el estado deseado de la aplicación puede aumentar a diez réplicas, en lugar de las tres habituales.

 

Implementaciones de Kubernetes

Son objetos de recursos en Kubernetes que ofrecen actualizaciones declarativas de las aplicaciones.

Le permiten describir el ciclo de vida de una aplicación, como las imágenes que desea utilizar, el número de pods que debe haber y la forma en que deben actualizarse. 

La actualización manual de las aplicaciones en contenedores puede ser una tarea extensa y tediosa. Sin embargo, el procedimiento se vuelve automático y repetible con las implementaciones de Kubernetes. 

El backend de Kubernetes las gestiona en su totalidad, y el proceso completo se realiza del lado del servidor sin la interacción del cliente.

Estas son las actividades que podrá llevar a cabo con ellas:

  • Implementar un pod o un conjunto de réplicas
  • Actualizar los pods y los conjuntos de réplicas
  • Restaurar versiones anteriores de la implementación
  • Ajustar una implementación
  • Pausar o continuar una implementación

 

Patrones de Kubernetes

Los patrones de Kubernetes son patrones de diseño para las aplicaciones y los servicios basados en contenedores.  

Kubernetes ayuda a los desarrolladores a escribir aplicaciones nativas de la nube, y ofrece una biblioteca de interfaces de programación de aplicaciones (API) y herramientas para diseñarlas. 

Sin embargo, no proporciona a los desarrolladores ni a los arquitectos pautas sobre cómo usar estos elementos para crear un sistema íntegro que esté a la altura de las necesidades y los objetivos empresariales. 

Los patrones implican una forma de volver a utilizar las arquitecturas. En lugar de volver a crear la infraestructura por completo, puede usar los patrones actuales, lo cual además garantiza que todo funcione como es debido.

Los desarrolladores de Kubernetes necesitan los patrones, que son las herramientas que muestran cómo diseñar un sistema.

 

Operadores de Kubernetes

Un operador de Kubernetes es un método para empaquetar, implementar y gestionar una aplicación de Kubernetes, la cual se implementa ahí mismo, y se gestiona con su API y la herramienta kubectl.

Se trata de un controlador específico de aplicaciones que amplía las funciones de la API de Kubernetes para crear, configurar y gestionar las instancias de aplicaciones complejas en nombre de un usuario de la plataforma.

Descubra cómo diseñar un operador de Kubernetes en solo diez minutos con el SDK de operadores.

Se basa en los conceptos básicos de los recursos y los controladores de Kubernetes, pero incluye el conocimiento específico sobre el dominio o la aplicación para automatizar todo el ciclo de vida del software que gestiona.

Si desea obtener más información sobre los operadores de Kubernetes y su importancia, consulte esta explicación sencilla.

Con ellos puede escribir el código para automatizar una tarea de manera más avanzada que con las funciones básicas que ofrece Kubernetes. Para los equipos con un enfoque de DevOps o de ingeniería de confiabilidad del sitio (SRE), se desarrollaron operadores que agregan las prácticas de SRE a Kubernetes. 

Obtenga más información sobre el funcionamiento de los operadores con ejemplos reales, y descubra cómo diseñarlos con el kit de desarrollo de software y el marco de operadores.

 

Enfoque de DevOps compatible con Kubernetes

El enfoque de DevOps se basa en la automatización de las tareas operativas de rutina y la estandarización de los entornos en todo el ciclo de vida de las aplicaciones.

Los contenedores admiten un entorno unificado para el desarrollo, la distribución y la automatización de las aplicaciones, y facilitan su traslado entre los entornos de desarrollo, de prueba y de producción.

Uno de los principales resultados de la adopción de DevOps es un canal de integración e implementación continuas (CI/CD). La CI/CD le permite distribuir frecuentemente las aplicaciones a los clientes y validar la calidad del software con una intervención humana mínima.

La gestión del ciclo de vida de los contenedores con Kubernetes utilizando sus implementaciones y operadores junto con un enfoque de DevOps permite que el desarrollo de software y las operaciones de TI se adapten para respaldar el canal de CI/CD.

 

Capacítese en Kubernetes

Deploying Containerized Applications Technical Overview

Esta serie de presentaciones breves y demostraciones detalladas, la cual está disponible según se solicite, ofrece una introducción a los contenedores de Linux y a la tecnología de organización en contenedores con Docker, Kubernetes y Red Hat® OpenShift® Container Platform.

 

Red Hat OpenShift Administration

En este curso aprenderá a instalar y administrar Red Hat OpenShift Container Platform. Encontrará actividades prácticas de laboratorio y descubrirá cómo instalar, configurar y gestionar los clústeres de OpenShift, y cómo implementar aplicaciones de muestra para comprender mejor de qué forma utilizarán la plataforma los desarrolladores.

 

Introduction to OpenShift Applications

En este curso se ofrece a los desarrolladores una introducción al diseño, la implementación, la expansión y la solución de problemas de las aplicaciones de Red Hat OpenShift. Dado que la adopción de OpenShift y Kubernetes sigue aumentando, los desarrolladores se ven cada vez más obligados a capacitarse en el desarrollo, el diseño y la implementación de las aplicaciones con una plataforma de aplicaciones en contenedores.

 

Kubernetes para empresas

Red Hat OpenShift es Kubernetes para las empresas. Incluye todos los elementos adicionales de tecnología que convierten a Kubernetes en una herramienta sólida y viable para la empresa; por ejemplo: registros, conexiones en red, telemetría, seguridad, automatización y servicios.

Gracias a Red Hat OpenShift, los desarrolladores pueden crear nuevas aplicaciones en contenedores, alojarlas e implementarlas en la nube con la escalabilidad, la organización y el control necesarios para convertir una idea brillante en un nuevo negocio, en poco tiempo y sin complicaciones.

Utilice Red Hat OpenShift y automatice las operaciones de los contenedores con una versión de prueba gratuita de 60 días.

Las herramientas que necesita para comenzar a trabajar con Kubernetes

Red Hat OpenShift product logo

Desarrolle, implemente y gestione sus contenedores con Kubernetes empresarial donde sea y a cualquier escala.

Controle las aplicaciones y los clústeres de Kubernetes desde una consola con políticas de seguridad integradas. 

Kubernetes tiene mucho más que ofrecer