Aller au contenu principal

Concepts

L'offre Kubernetes proposée par NumSpot fournit des clusters Kubernetes clés en main. L'installation, la configuration et la maintenance du service sont assurées par NumSpot. L'utilisateur interagit avec l'offre via le portail ou les APIs NumSpot pour :

  • Créer des clusters
  • Consulter les informations des clusters (liste / détail / état)
  • Supprimer des clusters
  • Ajouter et supprimer des nœuds de travail (avec ou sans GPU associé)
  • Mettre à jour la version de Kubernetes (plan de contrôle et nœuds de travail)
  • Mettre à jour le système hôte des machines des cluster
  • Obtenir les informations de connexion aux cluster (kubeconfig, clé d'accès SSH)

Le reste des opérations sur les éléments déployés dans les clusters (déploiement, configuration, sécurisation, maintenance, …) est à la charge de l'utilisateur.

Qu'est-ce-que Kubernetes ?

Kubernetes est une plate-forme open-source extensible pour la gestion de charges de travail et de services conteneurisés. Elle se base sur une approche entièrement déclarative favorisant l'automatisation. Un vaste écosystème, souvent soutenu par la communauté, s'est formé autour d'elle afin d'augmenter ses fonctionnalités dans de nombreux domaines : sécurité, observabilité, réseau, stockage, AI/ML et bien d'autres… Cet écosystème est en constante évolution et expansion.

Conteneurisation

Kubernetes orchestre les ressources machines, la mise en réseau et l’infrastructure de stockage sur les workloads des utilisateurs en se basant sur la technologie des conteneurs. Cette technologie, basée sur une virtualisation au niveau du système d'exploitation, consiste à déployer des conteneurs en isolation de l'hôte et des autres conteneurs : ils ont leurs propres systèmes de fichiers, ne peuvent voir que leurs propres processus et leur usage des ressources peut être contraint.

Étant donné que les conteneurs sont petits et rapides, une application peut être empaquetée dans chaque image de conteneur. Cette relation application-image tout-en-un permet de bénéficier de tous les bénéfices des conteneurs. Avec les conteneurs, des images immuables de conteneurs peuvent être créées au moment de la construction (build) des applications plutôt qu'au déploiement, vu que chaque application ne dépend pas du reste de la stack applicative et n'est pas liée à l'environnement de production. La génération d'images de conteneurs au moment du build permet d'obtenir un environnement constant qui peut être déployé tant en développement qu'en production. De la même manière, le monitoring et le management des conteneurs en est facilité. Cela est particulièrement vrai lorsque le cycle de vie des conteneurs est géré par l'infrastructure plutôt que caché par un gestionnaire de processus à l'intérieur du conteneur. Avec une application par conteneur, gérer ces conteneurs équivaut à gérer le déploiement des applications de manière unitaire.

L'utilisation des conteneurs au sein de Kubernetes offre de nombreux bénéfices :

  • Création et déploiement agile d'applications : augmente la simplicité et l'efficacité de la création d'images par rapport à l'utilisation d'images de VM
  • Développement, intégration et déploiement Continus : fournit un processus pour construire et déployer fréquemment et de façon fiable avec la capacité de faire des rollbacks rapides et simples (grâce à l'immuabilité de l'image)
  • Séparation des besoins entre Dev et Ops : création d'images applicatives au moment du build plutôt qu'au déploiement, tout en séparant l'application de l'infrastructure
  • Observabilité : informations venant non seulement du système d'exploitation sous-jacent mais aussi des signaux propres de l'application
  • Consistance entre les environnements de développement, tests et production : fonctionne de la même manière que ce soit sur un poste local que chez un fournisseur d'hébergement / dans le Cloud
  • Gestion centrée Application : bascule le niveau d'abstraction d'une virtualisation hardware liée à l'OS à une logique de ressources orientée application
  • Micro-services faiblement couplés, distribués, élastiques : les applications sont séparées en petits morceaux indépendants et peuvent être déployées et gérées dynamiquement -- pas une stack monolithique dans une seule machine à tout faire
  • Isolation des ressources : performances de l'application prédictibles
  • Utilisation des ressources : haute efficacité et densité

Architecture

Composants du plan de contrôle

Serveur API
Base de données
Ordonnanceur
Contrôleurs

Composants des nœuds de travail

Agent kubelet
Moteur de conteneur

Fonctionnalités supplémentaires

DNS
Métriques
Journaux

Intérêt de l'offre Kubernetes de NumSpot

Les services complémentaires fournis par l'offre Kubernetes de NumSpot

Authentification

Autorisation

Contrôle d'accès basé sur les rôles

Composés clés

Types de rôles

Sécurités réseaux

Haute disponibilité

Surveillance