Introduction à Scaleway Elements Kubernetes Kapsule avec Gloo et Knative …

Image for post
Image for post

caleway a dévoilé de nouveau services (encore en beta pour certains) au sein de sa nouvelle gamme Scaleway Elements.

Image for post
Image for post

Scaleway Elements représentant l’ecosystème Cloud public est composé de cinq catégories de produits à savoir : Compute, Stockage, Réseaux, Internet des objets et Intelligence artificielle.

Image for post
Image for post

Je vais m’intéresser à ce service en beta nommé Scaleway Elements Kubernetes Kapsule qui permet d’exécuter des applications conteneurisées dans un environnement Kubernetes géré par Scaleway. Actuellement le service est disponible dans la zone de disponibilité de Paris en France et supporte à minima la dernière version mineure des 3 dernières versions majeures de Kubernetes.

Je lance donc depuis la console web de Scaleway Elements un cluster Kubernetes managé via ce service avec des noeuds de type DEV1-M (3vCPU, 4Go RAM et 40 Go de disque NVMe) :

Image for post
Image for post
Image for post
Image for post

avec plusieurs options qui définiront le prix à venir. En effet ce dernier dépendra des ressources qui sont allouées pour le cluster Kubernetes telles que le nombre et le type de nœuds, l’utilisation de loadbalancers et les volumes persistants. Les nœuds sont facturés au même prix que les instances compute utilisées. Le control plane de Kubernetes est fourni sans frais supplémentaires :

Image for post
Image for post

Je choisis ici de ne pas activer le dashboard Kubernetes et de ne pas installer d’Ingress Controller :

Image for post
Image for post

Lancement de la création du cluster :

Image for post
Image for post

qui une fois terminée me retourne un le point de terminaison ainsi qu’un domaine Wildcard :

Image for post
Image for post
Image for post
Image for post
Image for post
Image for post

Un Load Balancer m’est en effet attribué avec ce domaine Wildcard qui pointe en effet sur les adresses IP publiques de chacun des noeuds constituant le cluster :

Image for post
Image for post
Image for post
Image for post
Image for post
Image for post

Je peux charger le fichier Kubeconfig à utiliser en conjonction du client Kubectl pour gérer le cluster Kubernetes en ligne de commande :

Image for post
Image for post
Image for post
Image for post

Je connecte alors ce cluster au service Weave Cloud qui me fournira avec Weave Scope et Cortex le moyen de surveiller ce dernier. En effet, Weave Cloud est une plate-forme opérationnelle qui agit comme une extension à son infrastructure d’orchestration de conteneurs, fournissant Deploy: livraison continue, Explore: visualisation et dépannage et Monitor: surveillance Prometheus. Ces fonctionnalités fonctionnent ensemble pour aider à expédier les fonctionnalités plus rapidement et à résoudre les problèmes plus rapidement :

Image for post
Image for post
Image for post
Image for post

Je peux alors visualiser mes trois noeuds Worker :

Image for post
Image for post
Image for post
Image for post

Et m’y connecter. J’en profite donc pour y installer l’Agent ZeroTier pour les lier à un réseau VPN via la console Shell fournie avec Weave Scope :

curl -s https://install.zerotier.com | bash
zerotier-cli join <NETWORK-ID>
Image for post
Image for post

Mes trois noeuds sont connectés au service VPN de ZeroTier :

Image for post
Image for post

Je peux donc procéder à l’installation de MetalLB pour obtenir un service de Load Balancing intégré avec le plan d’adressage défini dans ZeroTier :

openssl rand -base64 128 | kubectl create secret generic -n metallb-system memberlist --from-literal=secretkey=-
Image for post
Image for post
Image for post
Image for post

MetalLB est actif dans le cluster :

Image for post
Image for post

Pour permettre l’installation de Knative, je procède à l’installation de Gloo par chargement au préalable du binaire Glooctl depuis son dépôt sur Github :

Image for post
Image for post

Installation de Knative Serving dans le cluster :

Image for post
Image for post
Image for post
Image for post
Image for post
Image for post
Image for post
Image for post

avec un proxy pour Knative Serving qui a pris une adresse IP via MetalLB :

Image for post
Image for post

Premier test de Knative Serving avec l’image Docker du célèbre Helloworld en Go :

Image for post
Image for post

qui répond via le Proxy :

Image for post
Image for post
Image for post
Image for post
Image for post
Image for post

Je modifie la partie Headers de mon navigateur Web pour accéder à cette fonction test :

Image for post
Image for post

et la fonction répond :

Image for post
Image for post

Visualisation de cette fonction dans Weave Cloud et des conteneurs associés :

Image for post
Image for post
Image for post
Image for post

Idem pour le sempiternel démonstrateur FC :

Image for post
Image for post
Image for post
Image for post
Image for post
Image for post

Modification encore une fois de la partie Headers du navigateur Web :

Image for post
Image for post

Le démonstrateur est accessible :

Image for post
Image for post
Image for post
Image for post
Image for post
Image for post

Je visualise dans Weave Cloud les conteneurs associés à ce démonstrateur et Knative Serving :

Image for post
Image for post
Image for post
Image for post
Image for post
Image for post

ainsi que les grandes métriques du cluster Kubernetes :

Image for post
Image for post
Image for post
Image for post

caleway Elements Kubernetes Kapsule est appelé à s’enrichir avec notamment même si ici les clusters de Kubernetes doivent être considérés comme stateless. Si on a besoin d’une application stateful, on peut utiliser des volumes persistants. La storageClass pour les volumes Scaleway Block Storage est définie par défaut, elle n’a donc pas besoin d’être spécifiée …

Image for post
Image for post

À suivre ! …

Above the clouds, the sky is always blue ...

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store