Comment installer OpenFaaS CE sur OVHcloud Managed Kubernetes avec OpenFaaS
Découvrez comment installer OpenFaaS CE sur OVHcloud Managed Kubernetes avec OpenFaaS
Ce guide détaille l'installation d'OpenFaaS sur un cluster OVHcloud Managed Kubernetes Service (MKS). OpenFaaS est un framework permettant de créer des fonctions serverless au-dessus de Kubernetes. Avant d'installer OpenFaaS Community Edition (CE), veillez à lire le contrat de licence utilisateur final (EULA) afin de comprendre les limites de cette version d'OpenFaaS par rapport aux éditions Standard et Enterprise.
Avant de commencer
Ce tutoriel suppose que vous disposez déjà d'un cluster OVHcloud Managed Kubernetes fonctionnel, ainsi que de connaissances de base sur son fonctionnement. Pour en savoir plus sur ces sujets, consultez la documentation Déployer une application Hello World.
Vous devez également avoir Helm installé sur votre poste de travail et sur votre cluster ; reportez-vous au tutoriel Comment installer Helm sur OVHcloud Managed Kubernetes Service.
OpenFaaS, une plateforme FaaS native pour Kubernetes
OpenFaaS est un framework open source permettant de créer des fonctions serverless avec Docker et Kubernetes.
Vous trouverez plus de détails sur l'architecture d'OpenFaaS dans la documentation officielle.
Déployer OpenFaaS sur OVHcloud Managed Kubernetes
Le chart Helm officiel pour OpenFaas est publié sur le dépôt faas-netes. La section suivante décrit comment l'installer sur votre cluster OVHcloud Managed Kubernetes.
1. Charger le dépôt du chart Helm OpenFaaS
Le chart Helm OpenFaaS n'est pas disponible dans le dépôt standard stable de Helm. Vous devez ajouter leur dépôt à votre installation Helm :
2. Créer les namespaces requis
Les recommandations d'OpenFaaS conseillent de créer deux namespaces, l'un pour les services principaux d'OpenFaaS et l'autre pour les fonctions :
3. Générer les identifiants
Pour sécuriser l'accès au portail UI et à l'API REST d'OpenFaaS, vous pouvez générer un mot de passe avec les commandes suivantes :
Vous aurez besoin de ce mot de passe plus tard dans le tutoriel, par exemple pour accéder au portail UI. Vous pouvez le retrouver à tout moment dans la session du terminal avec echo $PASSWORD.
4. Déployer le chart Helm
Le chart Helm peut être déployé selon trois modes : LoadBalancer, NodePort et Ingress. Pour nous, la méthode la plus simple consiste à utiliser notre Load Balancer externe ; nous allons donc le déployer en mode LoadBalancer en définissant l'option --set serviceType=LoadBalancer.
Pour mieux comprendre la différence entre ces trois modes, vous pouvez consulter notre guide dédié.
Déployez le chart Helm :
Comme suggéré dans le message d'installation, vous pouvez vérifier qu'OpenFaaS a bien démarré en exécutant :
Si cela fonctionne, vous devriez voir la liste des objets deployment d'OpenFaaS, marqués comme disponibles :
5. Se connecter à la Gateway
Récupérez l'adresse IP publique de votre service gateway avec :
À ce stade, votre EXTERNAL-IP peut encore être PENDING.
Le provisionnement du load balancer peut prendre plusieurs minutes.
Vérifiez à nouveau jusqu'à ce que le champ EXTERNAL-IP soit renseigné avec une adresse IP publique.
Une fois l'adresse IP publique disponible, vous pouvez accéder à l'interface OpenFaaS à l'adresse http://PUBLIC_IP:8080.
6. Se connecter avec la CLI
Une autre façon d'interagir avec votre nouvelle plateforme OpenFaaS consiste à installer faas-cli, le client en ligne de commande d'OpenFaaS (sur Linux ou Mac, ou dans un terminal Linux WSL sous Windows). Téléchargez la dernière version du client CLI depuis la page officielle des versions.
Vous pouvez désormais utiliser la CLI pour vous connecter à la gateway. La CLI a besoin de l'adresse IP publique du LoadBalancer OpenFaaS, que vous pouvez récupérer avec les commandes de la section précédente :
Exemple de résultat :
Vous êtes maintenant connecté à la gateway et pouvez envoyer des commandes à la plateforme OpenFaaS.
Par défaut, aucune fonction n'est installée sur votre plateforme OpenFaaS, comme vous pouvez le vérifier avec la commande faas-cli list.
Cette section s'est concentrée sur l'installation d'OpenFaaS. La section suivante présente comment importer et invoquer des fonctions.
Déployer et invoquer des fonctions
Vous pouvez facilement déployer des fonctions sur votre plateforme OpenFaaS via l'interface web ou la CLI :
Des exemples de fonctions sont disponibles dans le projet officiel OpenFaaS. Par exemple, pour importer figlet, une fonction qui génère des bannières en ASCII art à partir de texte brut :
La commande faas-cli list affiche désormais les fonctions déployées :
Invoquez la fonction que vous venez d'importer :
Cette section a détaillé comment importer et utiliser des fonctions existantes. La section suivante présente comment créer des fonctions personnalisées.
Écrire votre première fonction
Prérequis
Pour publier et déployer une fonction sur votre cluster MKS, vous aurez besoin de :
- Un registre de conteneurs public accessible depuis votre cluster MKS et votre poste de travail, comme Docker Hub ou le registre GitHub.
Pour le moment, OpenFaaS Community Edition ne prend en charge que les images publiques. Consultez la documentation correspondante pour les registres privés avec OpenFaaS Pro.
Coder la fonction
Tous les modèles disponibles figurent dans le dépôt officiel de modèles, ou peuvent être listés avec :
Cet exemple utilisera NodeJS pour créer une fonction hello world. Commencez par créer et générer le squelette du dossier de la fonction :
La CLI télécharge un modèle de fonction JS depuis le dépôt OpenFaaS, génère un fichier de description de fonction (hello-js.yml dans notre cas) et un dossier pour le code source de la fonction (hello-js). Pour NodeJS, vous trouverez dans ce dossier un fichier package.json (par exemple pour déclarer les dépendances de votre fonction) et un fichier handler.js (le code principal de la fonction).
Dans hello-js.yml, définissez les paramètres suivants selon votre configuration :
provider.gateway: l'URL de votre gateway OpenFaaS.functions.image: l'URL de votre registre Docker. Dans cet exemple, un dépôt Docker Hub sera utilisé.
hello-js.yml :
La fonction décrite dans hello-js/handler.js est très simple. Elle exporte une fonction avec deux paramètres : un context, où vous recevrez les données de la requête, et un callback, que vous appellerez à la fin de votre fonction et auquel vous transmettrez les données de la réponse.
Vous pouvez maintenant construire l'image Docker et la pousser vers le registre Docker public :
Une fois l'image dans le registre, déployez et invoquez la fonction avec la CLI OpenFaaS :
Félicitations, vous avez écrit et déployé votre première fonction OpenFaaS avec Node. Consultez la documentation officielle pour aller plus loin.
Ressources complémentaires
Pour en savoir plus sur OpenFaaS, consultez la documentation officielle d'OpenFaaS. Vous pouvez également suivre les ateliers OpenFaaS pour apprendre de manière plus pratique.
Aller plus loin
-
Si vous avez besoin d'une formation ou d'une assistance technique pour la mise en oeuvre de nos solutions, contactez votre commercial ou cliquez sur ce lien pour obtenir un devis et demander une analyse personnalisée de votre projet à nos experts de l’équipe Professional Services.
-
Échangez avec notre communauté d'utilisateurs.