Jump to section

Los conceptos básicos de Kubernetes

Copiar URL

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.

Permite distribuir y gestionar las aplicaciones heredadas, creadas en la nube y en contenedores según sea necesario, 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.

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. Puede visualizarlo en dos partes: el plano de control y las máquinas informáticas o nodos. Cada nodo es su propio entorno Linux®, y puede ser una máquina física o virtual. Además, ejecutan los pods, que 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 la forma que utilizan los usuarios, los elementos externos y las partes del clúster para comunicarse entre sí.

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

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. Garantiza que los 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.

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 definido a través de 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 se utilizan, los recursos que deben estar disponibles y demás ajustes.

Los datos de configuración y del estado del clúster se alojan en la etcd, una base de datos distribuida de almacenamiento de clave-valor que posee tolerancia a los fallos 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 preferido para gestionarlos y brindan actualizaciones declarativas a los pods, para que usted no tenga que administrarlos 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 los períodos ajetreados, el estado deseado de la aplicación puede aumentar a diez réplicas, en lugar de las tres habituales.

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

Permiten describir el ciclo de vida de una aplicación, como las imágenes que desea utilizar en ella, la cantidad 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 gracias a 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

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

Kubernetes permite que los desarrolladores escriban aplicaciones desarrolladas en la nube y ofrece una biblioteca de interfaces de programación de aplicaciones (API) y herramientas para diseñarlas.

Sin embargo, no brinda pautas a los desarrolladores ni a los arquitectos sobre cómo usar estos elementos para crear un sistema integral que satisfaga 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.

Un operador de Kubernetes es un método para empaquetar, implementar y gestionar una aplicación de esta plataforma, la cual se implementa en ella y se gestiona utilizando su interfaz de programación de aplicaciones (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 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 incorporan 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.

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 aprenderá a instalar, configurar y gestionar los clústeres de OpenShift, así como a implementar aplicaciones de muestra para comprender mejor de qué forma utilizarán la plataforma los desarrolladores.

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.

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.

Artículos relacionados

ARTÍCULO

Diferencias entre los contenedores y las máquinas virtuales

Las máquinas virtuales (VM) y los contenedores de Linux son entornos informáticos empaquetados que combinan varios elementos de TI y los aíslan del resto del sistema.

ARTÍCULO

¿Qué es la organización de los contenedores?

La organización en contenedores automatiza la implementación, la gestión, la escalabilidad y la conexión en red de los contenedores.

ARTÍCULO

¿Qué es un contenedor de Linux?

Un contenedor de Linux es un conjunto de procesos separados del resto del sistema, los cuales pueden ejecutarse desde una imagen diferente que proporciona todos los archivos necesarios para que funcionen.

Más información sobre los contenedores

Productos

Plataforma de aplicaciones empresariales que ofrece servicios probados para lanzar aplicaciones al mercado en la infraestructura que usted escoja.

Contenido adicional

Ebook

Los seis aspectos más importantes a tener en cuenta a la hora de seleccionar una plataforma de Kubernetes

PODCAST

Command Line Heroes Temporada 1, Episodio 5:

El Derby de los Containers

Capacitación

Curso de capacitación gratuito

Running Containers with Red Hat Technical Overview

Curso de capacitación gratuito

Containers, Kubernetes and Red Hat OpenShift Technical Overview

Curso de capacitación gratuito

Developing Cloud-Native Applications with Microservices Architectures