Skip to main content
BlogConteneurs (Kubernetes, Docker)Gérer des applications Kubernetes sans serveur avec Knative

Gérer les applications Kubernetes sans serveur avec Knative

Gérer des applications Kubernetes sans serveur avec Knative blog image

L'architecture sans serveur, en un mot, supprime la nécessité pour les développeurs de gérer les serveurs. Les serveurs fonctionnent toujours en arrière-plan, mais la charge de la maintenance et de l'évolution de leur infrastructure est transférée au fournisseur de services en nuage. Les développeurs sont en mesure de rationaliser leur code de manière significative jusqu'à des fonctions spécifiques et profitent généralement d'un modèle de coût "à la demande" où ils ne paient pour les ressources que lorsqu'une fonction est exécutée.

Une fonction s'exécute lorsque API Les points d'extrémité déclenchent des événements, ce qui permet aux applications dont les états sont imprévisibles ou changent rapidement d'évoluer horizontalement grâce à des fonctions abstraites de l'application principale. En pratique, une fonction peut être déclenchée lorsqu'un acheteur sélectionne un produit sur un site de commerce électronique, conçue pour vérifier dans une base de données si ce produit est en stock et pour obtenir les informations tarifaires les plus récentes.

Knative est un ensemble d'outils de fonctions puissantes construit au-dessus de Kubernetes pour gérer les applications sans serveur. Knative permet à votre cluster Kubernetes de mettre à l'échelle les pods jusqu'à zéro, tout en rendant les ressources disponibles pour que les pods puissent être mis à l'échelle en cas de besoin.

Knative prend en charge les événements et les déclencheurs qui peuvent être personnalisés pour contrôler la façon dont votre application réagit. Il s'agit d'un outil portable, indépendant des fournisseurs, que vous pouvez donc utiliser avec votre service Kubernetes géré préféré (comme notre propre Linode Kubernetes Engine) ou installer sur un cluster local. Ensemble, Kubernetes et cette plateforme de fonctions installables optimisent la gestion de l'état et les avantages d'autoréparation de l'exécution d'une application sur Kubernetes.

Knative fournit :

  • Mise à l'échelle automatique: Knative permet une mise à l'échelle automatique des pods en fonction du trafic et de la demande, y compris une mise à l'échelle à zéro. Cela permet d'améliorer l'utilisation des ressources et de réduire les coûts.
  • Calcul piloté par les événements : Knative permet aux charges de travail sans serveur de répondre aux événements et aux déclencheurs.
  • Portabilité: Knative est conçu pour fonctionner sur différents fournisseurs de cloud et environnements. Cela permet aux développeurs de déployer des applications sans serveur dans différents environnements sans modifier le code.
  • Extensibilité: Knative fournit un ensemble de blocs de construction qui peuvent être personnalisés pour répondre aux exigences d'une application spécifique.
  • Évolutivité de l'entreprise : Des entreprises comme Puppet et Outfit7 font confiance à Knative.

Comment cela fonctionne

La fonctionnalité de Knative est divisée en Knative Eventing et Knative Serving.

  • Evénements : Collection d'API permettant les puits, ou l'acheminement d'événements des producteurs d'événements vers les consommateurs d'événements, via des requêtes HTTP POST.
  • Servir : Définir un ensemble d'objets en tant que définitions de ressources personnalisées (CRD) de Kubernetes, ou créer une extension de l'interface Kubernetes API. Cela détermine comment une charge de travail sans serveur interagit avec votre cluster Kubernetes avec les ressources suivantes.
    • Routes : Mappage des points d'extrémité du réseau aux points d'extrémité des révisions et gestion du trafic. 
    • Configurations : Maintient l'état souhaité en tant que couche distincte de votre code.
    • Révisions : Un instantané de votre code et de votre configuration pour chaque changement et modification apportés.
    • Services : Gestion de la charge de travail qui contrôle la création d'objets et garantit que votre application dispose en permanence d'une route, d'une configuration et d'une révision, soit la dernière révision, soit une révision spécifique. Knative utilise le service de passerelle Istio par défaut.
Diagramme montrant les couches d'un cluster Kubernetes. Istio est le maillage de services qui gère l'acheminement des requêtes et l'équilibrage des charges. Knative se trouve au milieu avec sa fonctionnalité Eventing et Serving, et le cluster Kubernetes se trouve à la base.
Knative utilise Kubernetes comme orchestrateur et Istio gère le routage des requêtes et l'équilibrage des charges.

Vous pouvez installer Knative sur votre cluster en utilisant YAML, ou l'opérateur Knative pour Kubernetes. Il existe également des tableaux Knative Helm soumis par les membres de la communauté Kubernetes. Knative dispose d'un environnement de démarrage rapide, mais il n'est recommandé qu'à des fins de test.

Premiers pas dans le Cloud d'Akamai

Knative est un excellent complément à l'autoscaler intégré de LKE, qui vous permet de contrôler facilement le nombre minimum et maximum de nœuds dans le pool de nœuds d'un cluster. L'utilisation conjointe de Knative et de l'autoscaler permet une gestion finement ajustée au niveau du pod et de l'infrastructure.

Et pour vous aider à démarrer, nous avons un nouveau cours à la demande ! Nous avons fait équipe avec Justin Mitchel de Coding for Entrepreneurs pour notre nouveau cours à la demande Try Knative, disponible le 28 février 2023. Cette série de vidéos comprend la création d'un cluster Kubernetes à l'aide de Terraform, la configuration d'un service Knative et le déploiement d'une application conteneurisée.


Commentaires (1)

  1. Author Photo

    It was helpful

Laissez un commentaire

Votre adresse électronique ne sera pas publiée. Les champs obligatoires sont marqués d'un *.