C'est un produit que beaucoup d'entre vous attendiez : la version finale de Kubernetes Kapsule en maintenant disponible. Vous pouvez désormais profiter de notre control plane managé et haute disponibilité pour créer vos clusters de conteneurs. Kubernetes Kapsule est un service gratuit, seules les ressources que vous allouez à votre cluster sont facturées, sans aucun surcoût !

Pour rappel, Kubernetes Kapsule est un service qui permet d'exécuter des applications conteneurisées dans un environnement Kubernetes géré par Scaleway. Si vous n'êtes pas encore familier avec Kubernetes, n'hésitez pas à jeter un oeil à notre article : an Introduction to Kubernetes (en Anglais).

Petite histoire de Kubernetes Kapsule

L'histoire de Kubernetes Kapsule remonte au début de l'année 2018 où une petite équipe commence à travailler sur un PoC (Proof of Concept). À ses débuts, l'ébauche de Kubernetes Kapsule n'était évidemment pas encore redondée et les clusters comportaient un master unique qui fonctionnait sur une seule instance. Les briques nécessaires pour faire fonctionner Kubernetes dans un écosystème cloud étaient elles aussi pour la plupart encore manquantes ou en cours de développement.

L'équipe a très rapidement fait évoluer la plateforme Kubernetes Kapsule afin d'apporter de la redondance pour assurer une meilleure disponibilité mais aussi pour apporter la vraie valeur d'un service managé dans le cloud. L'équipe a ensuite travaillé sur la suite logique du projet : le déploiement des Control Plane dans des clusters Kubernetes. Cette évolution du design marque alors une étape clé dans le développement du produit.

Au fur et à mesure des développements, les produits Scaleway Elements s'imbriquent avec Kubernetes Kapsule afin de raisonner en réel écosystème. L'intégration inclue progressivement les volumes Block Storage et les Load Balancers, qui sont aujourd'hui des briques essentielles au bon fonctionnement de Kubernetes Kapsule.

Après cette première phase de développement, la version "Public Beta" de Kubernetes Kapsule démarre en Octobre 2019. Initialement, nous avions privilégié l'utilisation de Kubernetes Kapsule sur nos General Purposes Instances pour vous offrir une gamme d'instances puissantes, destinées à la production.

Le produit adopte très vite une belle communauté de testeurs et les retours sont nombreux et très positifs ! Un retour récurrent concernait cependant la possibilité de déployer des nœuds sur les Development Instances. Nous avons donc pris le temps de vous écouter et avons ouvert l'utilisation du service sur nos instances de développement (disponibles à partir de la gamme DEV1-M à 7,99€/mois) pour démocratiser plus largement l'utilisation de Kubernetes Kapsule.

De la même manière, nous avons aussi implémenté des fonctionnalités qui simplifient votre gestion au quotidien et qui apportent énormément de valeur à votre infrastructure :

  • la mise à l'échelle automatique de votre cluster (auto-scaling)
  • la régénération automatique de vos noeuds (auto-healing)

Ces 2 fonctionnalités combinées permettent un pilotage simplifier de votre infrastructure et garantissent à vos applications une qualité de service optimale.

Design résilient et intégré en écosystème

K8S_V5_blog

Kubernetes Kapsule est un service qui permet de gérer plusieurs types de ressources. Commençons par regarder la partie gauche du schéma ci-dessus, le Control Plane.

Comme son nom l'indique, il s'agit du centre de contrôle de notre cluster, qui nécessite donc d'être redondée afin d'assurer la haute disponibilité du service. Le Control Plane regroupe les composants Kubernetes Master, le Cloud Controller Manager, l'Auto-Scaler et le driver Container Storage Interface.

Ensuite, pour que votre cluster fonctionne, il faut que les noeuds soient déployés sur des instances (partie centrale du schéma). Nos Development Instances (à partir de la gamme DEV1-M), General Purpose Instances et nos GPU Instances (NVIDIA Tesla) sont compatibles avec Kubernetes Kapsule pour recevoir les nœuds. Les nœuds possédant les mêmes configurations peuvent être regroupé en "pool". À la création d'un nœud, les composants essentiels au fonctionnement de Kubernetes sont installés (Kubelet, Core DNS, Kube Proxy et CNI). Quant au workflow de votre applicatif, vous avez la possibilité de le configurer afin de l'adapter à votre projet.

L'utilisation des volumes Block Storage permet la persistance des données de votre cluster, donc compatible avec les applications stateful.
Grâce à la persistance des données, les nœuds de vos clusters peuvent être supprimés, remplacés ou redémarrés si les applications qui les utilisent l’exigent. Cependant, il est déconseillé de faire de la persistance sur les nœuds Kubernetes car ils sont considérés stateless.

Le Load Balancer permet quant à lui de rediriger facilement votre trafic entre vos différents nœuds. Plusieurs références de Load Balancers sont disponibles en fonction du trafic à distribuer.

Enfin, pour déployer vos images sur vos conteneurs, vous pouvez utiliser notre Container Registry ou le Container Registry de votre choix.

Intégration optimisée pour provisionner facilement vos clusters

Pour démarrer avec Kubernetes Kapsule, il vous suffit de vous rendre sur la console Scaleway et de renseigner les champs demandés :

console-kapsule-1

Commencez par renseigner le nom et une description de votre cluster. Sélectionnez ensuite la version de Kubernetes.

console-kapsule-2
console-kapsule-3

Choisissez alors le nombre de noeuds et la configuration par défaut pour votre pool. Vous pouvez aussi choisir l'option "autoscale the number of nodes" pour une mise à l'échelle automatique. Dans ce cas l'augmentation et la diminution du nombre de nœuds de votre pool est gérée automatiquement et respecte les limites minimales et maximal définies pour votre pool. Selon l'évolution de vos projets et de votre activité, vous pouvez ensuite créer librement de nouveaux pools voire même de supprimer celui par défaut.

Ensuite, plusieurs options avancées sont disponibles comme par exemple le choix du driver CNI (Container Network Interface), et la possibilité de deployer un Ingress Controler à la création du cluster. Évidemment, vous êtes aussi libre de déployer votre propre Ingress Controller pour optimiser sa configuration en fonction de vos besoins.

Le dernier champ permet le déploiement en un clic du Kubernetes Dashboard. Ce tableau de bord permet de gérer votre infrastructure avec des vues adaptées et détaillées de vos pools.

Finalisez en cliquant sur "Create a cluster" pour que celui-ci soit disponible en quelques secondes !