Ir al contenido principal
BlogContenedores (Kubernetes, Docker)Gestionar aplicaciones Kubernetes sin servidor con Knative

Gestionar aplicaciones Kubernetes sin servidor con Knative

Gestionar aplicaciones Kubernetes sin servidor con Knative blog image

La arquitectura sin servidor, en pocas palabras, elimina la necesidad de que los desarrolladores gestionen servidores. Los servidores siguen funcionando en segundo plano, pero la carga de mantener y escalar su infraestructura se traslada al proveedor de la nube. Los desarrolladores son capaces de racionalizar significativamente su código hasta las funciones específicas y suelen aprovechar un modelo de costes "a la carta" en el que solo pagan por los recursos cuando se ejecuta una función.

Una función se ejecuta cuando API lo que permite a las aplicaciones con estados impredecibles o que cambian rápidamente escalar horizontalmente con funciones abstraídas de la aplicación principal. En la práctica, una función podría activarse cuando un comprador selecciona un producto en un sitio de comercio electrónico, y estar diseñada para comprobar en una base de datos si el producto está en stock y obtener la información de precios más actualizada.

Knative es un potente conjunto de herramientas de funciones construido sobre Kubernetes para gestionar aplicaciones sin servidor. Knative permite que su clúster de Kubernetes escale los pods a cero y, al mismo tiempo, deja recursos disponibles para que los pods puedan escalar cuando sea necesario.

Knative admite eventos y disparadores que pueden personalizarse para controlar cómo responde su aplicación. Es una herramienta portátil e independiente del proveedor, por lo que puede utilizarla con su servicio Kubernetes gestionado preferido (como nuestro propio motor Kubernetes Linode ) o instalarla en un clúster local. Juntos, Kubernetes y esta plataforma de funciones instalables optimizan la gestión del estado y las ventajas de autorreparación de la ejecución de una aplicación en Kubernetes.

Knative proporciona:

  • Escalado automático: Knative proporciona escalado automático de pods en función del tráfico y la demanda, incluido el escalado a cero. Esto mejora la utilización de los recursos y reduce los costes.
  • Computación basada en eventos: Knative permite que las cargas de trabajo sin servidor respondan a eventos y activadores.
  • Portabilidad: Knative está diseñado para funcionar en diferentes proveedores de nube y entornos. Esto permite a los desarrolladores desplegar aplicaciones sin servidor en distintos entornos sin necesidad de modificar el código.
  • Extensibilidad: Knative proporciona un conjunto de bloques de construcción que se pueden personalizar para satisfacer los requisitos específicos de la aplicación.
  • Escalabilidad empresarial: Empresas como Puppet y Outfit7 confían en Knative.

Cómo funciona

La funcionalidad de Knative se divide en Knative Eventing y Knative Serving.

  • Eventos: Colección de APIs que habilitan sumideros, o enrutamiento de eventos desde productores de eventos a consumidores de eventos, a través de peticiones HTTP POST.
  • Servir: Definir un conjunto de objetos como definiciones de recursos personalizados de Kubernetes (CRD), o crear una extensión de Kubernetes API. Esto determina cómo una carga de trabajo sin servidor interactúa con su clúster de Kubernetes con los siguientes recursos.
    • Rutas: Asignación de puntos finales de red a puntos finales de revisiones y gestión del tráfico. 
    • Configuraciones: Mantiene el estado deseado como una capa separada de su código.
    • Revisiones: Una instantánea de tu código y configuración por cada cambio y modificación realizada.
    • Servicios: Gestión de la carga de trabajo que controla la creación de objetos y asegura que tu app tenga continuamente una ruta, configuración y revisión ya sea a la última revisión, o a una revisión específica. Knative utiliza el servicio de pasarela Istio por defecto.
Diagrama que muestra las capas de un clúster Kubernetes. Istio es la malla de servicios que gestiona el enrutamiento de consultas y el equilibrio de carga. Knative se sitúa en el medio con su funcionalidad Eventing y Serving, y el clúster Kubernetes está en la base.
Knative utiliza Kubernetes como orquestador e Istio gestiona el enrutamiento de consultas y el equilibrio de carga.

Puede instalar Knative en su clúster utilizando YAML, o el Operador Knative para Kubernetes. También hay gráficos de Knative Helm enviados por miembros de la comunidad Kubernetes. Knative tiene un entorno de inicio rápido, pero sólo se recomienda para fines de prueba.

Primeros pasos en Akamai Cloud

Knative es un excelente complemento para el autoescalador integrado de LKE, que le permite controlar fácilmente los nodos mínimos y máximos dentro del conjunto de nodos de un clúster. El uso conjunto de Knative y el autoescalador proporciona una gestión ajustada tanto a nivel de pod como de infraestructura.

Y para ayudarte a empezar, ¡tenemos un nuevo curso a la carta! Hemos colaborado con Justin Mitchel de Coding for Entrepreneurs en nuestro nuevo curso a la carta Try Knative, disponible el 28 de febrero de 2023. Esta serie de vídeos incluye la creación de un clúster Kubernetes utilizando Terraform, la configuración de un servicio Knative y el despliegue de una aplicación en contenedores.


Comentarios (1)

  1. Author Photo

    It was helpful

Dejar una respuesta

Su dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *.