Déployer des applications Quarkus sur Kubernetes à l'aide d'une charte Helm
Un guide du développeur pour le déploiement de fonctions sans serveur avec la charte Quarkus Helm.
Les fonctions sans serveur favorisent aujourd’hui l’adoption rapide des pratiques de développement et de déploiement DevOps. Knative sur Kubernetes est l'une des plates-formes sans serveur les plus populaires pour adopter avec succès des architectures de fonctions sans serveur. Mais les développeurs doivent comprendre comment les fonctionnalités sans serveur sont spécifiées à l’aide d’une combinaison d’API Kubernetes, de ressources Knative et de programmation orientée fonctions. Les équipes DevOps doivent également standardiser les piles d'exécution (c'est-à-dire le temps d'exécution de l'application, l'image du générateur, la configuration du déploiement et la vérification de l'état) pour exécuter les fonctions sur Kubernetes. Et si vous, développeur, pouviez mettre en place cela avec une technologie et des pratiques familières ?
Cet article vous explique comment les développeurs peuvent démarrer avec le déploiement de fonctions sans serveur avec la charte Quarkus Helm sur Kubernetes. De plus, les développeurs peuvent éviter le travail supplémentaire lié au développement d'une fonction à partir de zéro, à l'optimisation de l'application et à son déploiement sur Kubernetes.
Si vous n'avez jamais utilisé Helm pour les déploiements d'applications cloud natives sur Kubernetes, je vais vous expliquer ce qu'est Helm et quels sont ses avantages. Helm est l'un des gestionnaires de packages les plus populaires pour Kubernetes. Helm fournit un graphique qui simplifie les ressources Kubernetes dans un seul fichier de package pour la création et le déploiement d'une application. Les développeurs peuvent installer le graphique sur Kubernetes à l'aide de l'interface de ligne de commande Helm ou du tableau de bord graphique.
Installer la charte Quarkus Helm
Dans cet article, vous utiliserez OpenShift Kubernetes Distribution (OKD) basé sur Kubernetes avec une fonctionnalité de gestion du cycle de vie des applications et des outils DevOps. Si vous n'avez pas encore installé la fonctionnalité Helm sur votre cluster OKD, suivez le document d'installation.
Avant de créer une application Quarkus à l'aide d'une charte Quarkus Helm, vous devez créer des secrets pull et push dans votre cluster OKD. Vous utilisez les secrets pour extraire une image de générateur d'un registre de conteneurs externe, puis la transmettre au registre.
Remarque : Vous pouvez ignorer cette étape si vous n'avez pas besoin d'utiliser un registre de conteneurs externe lors de la création de l'application ou de déployer l'application sur le cluster OKD.
Créez un secret d'extraction à l'aide de la commande oc suivante :
$ oc create secret docker-registry my-pull-secret \
--docker-server=$SERVER_URL \
--docker-username=$USERNAME \
--docker-password=$PASSWORD \
--docker-email=$EMAIL
Ensuite, créez un secret push à l'aide de la commande suivante :
$ oc create secret docker-registry my-push-secret \
--docker-server=$SERVER_URL \
--docker-username=$USERNAME \
--docker-password=$PASSWORD \
--docker-email=$EMAIL
Installez la charte Quarkus Helm :
$ helm repo add quarkus \
https://github.com/redhat-developer/redhat-helm-charts
Créer et déployer une application Quarkus à l'aide du graphique Helm
Accédez à la console Developer dans le cluster OKD, cliquez sur la charte Helm dans le menu +Ajouter. Tapez ensuite quarkus dans le champ de recherche. Cliquez sur le tableau de barre Quarkus v0.0.3, comme indiqué ci-dessous.
Remarque : Vous devrez créer un projet quarkus-helm (espace de noms) pour installer une charte Quarkus Helm dans votre cluster OKD.
(Daniel Oh, CC BY-SA 4.0)
Cliquez sur Install Helm Chart, comme indiqué ci-dessous.
(Daniel Oh, CC BY-SA 4.0)
Basculez l'éditeur vers la vue YAML, puis collez les configurations de build et de déploiement suivantes :
build:
uri: https://github.com/redhat-mw-demos/todo-demo-app.git
ref: master
env:
- name: S2I_SOURCE_DEPLOYMENTS_FILTER
value: "*-runner.jar lib*"
deploy:
readinessProbe:
httpGet:
path: /health/ready
port: http
tcpSocket: null
livenessProbe:
httpGet:
path: /health/live
port: http
tcpSocket: null
Ensuite, cliquez sur le bouton Installer, comme indiqué ci-dessous.
(Daniel Oh, CC BY-SA 4.0)
Trouvez plus de valeurs pour configurer le graphique de barre Quarkus ici.
Une fois le graphique installé avec succès, vous verrez le pod Quarkus suivant dans la vue Topologie, comme indiqué ci-dessous.
(Daniel Oh, CC BY-SA 4.0)
Remarque : Vous pouvez voir ErrImagePull et ImagePullBackOff dans les Déploiements pendant le traitement de la build. Une fois la construction terminée, votre image est automatiquement déployée.
Cliquez sur l'icône Ouvrir l'URL. Il vous amène à l'application todos. Essayons d'ajouter quelques éléments pour le plaisir, comme indiqué ci-dessous.
(Daniel Oh, CC BY-SA 4.0)
Conclusion
Vous avez appris comment les développeurs peuvent créer des applications Quarkus et les déployer sur un cluster Kubernetes/OpenShift en quelques minutes à l'aide d'un graphique Helm. Les développeurs peuvent gérer la pile d'exécution de l'application en termes de mise à niveau, de restauration, de désinstallation et d'ajout de nouvelles configurations telles que la vérification de l'état de l'application, la réplication sans modifier le code source de l'application ou développer de nouveaux manifestes Kubernetes avec des fichiers YAML. Cela minimise la charge des développeurs qui doivent continuer à exploiter les environnements d'exécution des applications autres que la mise en œuvre de la logique métier sur Kubernetes. Pour plus d’informations à suivre sur le voyage de Quarkus ici :
- Guide du développeur Java sur Quarkus
- 3 raisons pour lesquelles Quarkus 2.0 améliore la productivité des développeurs sous Linux
- Optimiser les fonctions Java sans serveur dans Kubernetes