Comment déployer Elasticsearch sur Azure AKS Automatic

Découvrez comment déployer Elasticsearch avec Kibana sur Azure en utilisant AKS Automatic et ECK pour une configuration Elasticsearch partiellement gérée.

Vous débutez avec Elasticsearch ? Participez à notre webinaire Premiers pas avec Elasticsearch. Vous pouvez aussi démarrer un essai gratuit sur le cloud ou tester Elastic dès maintenant sur votre machine.

Cet article fait partie d'une série où nous apprendrons comment installer Elasticsearch en utilisant différentes infrastructures.

ECK demande nettement plus d'efforts que les solutions Elastic Cloud basées sur la Marketplace, mais il est plus automatisé que le déploiement de VM par vous-même, car l'opérateur Kubernetes s'occupera de l'orchestration du système et de la mise à l'échelle des nœuds.

Cette fois, nous allons travailler avec le service Azure Kubernetes (AKS), en utilisant Automatic. Dans les autres articles, vous apprendrez à utiliser Azure VM et Azure Marketplace.

Qu'est-ce qu'AKS Automatic ?

Azure Kubernetes Service (AKS) gère automatiquement la configuration des clusters, alloue dynamiquement les ressources et intègre les meilleures pratiques de sécurité tout en préservant la flexibilité de Kubernetes, ce qui permet aux développeurs de passer d'une image de conteneur à une application déployée en quelques minutes.

AKS Automatic supprime la plupart des frais généraux liés à la gestion des clusters et offre un bon équilibre entre simplicité et flexibilité. Le bon choix dépend de votre cas d'utilisation, mais la décision est plus facile à prendre si vous prévoyez de le faire :

  • Déployer un environnement de test : Le déploiement est rapide et simple, ce qui le rend idéal pour les expériences rapides ou les clusters de courte durée.
  • Travaillez sans exigences strictes en matière de VM, de stockage ou de réseau : AKS Automatic fournit des valeurs par défaut prédéfinies, de sorte que si celles-ci correspondent à vos besoins, vous n'avez pas besoin d'une configuration supplémentaire.
  • Commencez avec Kubernetes pour la première fois : En prenant en charge une grande partie de la configuration du cluster, AKS Automatic réduit la courbe d'apprentissage et permet aux équipes de se concentrer sur leurs applications.

Pour Elasticsearch, nous allons utiliser Elastic Cloud on Kubernetes (ECK), qui est l'opérateur officiel d'Elastic Kubernetes qui simplifie l'orchestration des déploiements Kubernetes de la pile Elastic.

Comment configurer AKS Automatic

1. Connectez-vous au portail Microsoft Azure.

2. En haut à droite, cliquez sur sur le bouton Cloud Shell pour accéder à la console et déployer le cluster AKS à partir de là. Vous pouvez également utiliser Azure Cloud Shell.

N'oubliez pas de mettre à jour l'identifiant du projet avec le vôtre pendant le tutoriel.

L'ouverture de l'AKS devrait ressembler à la capture d'écran ci-dessus.

3. Installez l'extension aks-preview Azure CLI. Cette version preview nous permettra de sélectionner --sku automatic lors de la création du cluster, ce qui activera la fonction AKS Automatic.

Si vous voyez ce message, cela signifie que l'extension AKS a été installée correctement.

4. Enregistrer les indicateurs de caractéristiques à l'aide de la commande az feature register

Vous verrez les détails de l'abonnement de fonctionnalité que nous venons de créer :

Vérifiez l'état de l'enregistrement jusqu'à ce qu'il passe de "En cours d'enregistrement" à "Enregistré". L'enregistrement peut prendre quelques minutes.

Exécutez az provider register pour propager les modifications.

5. Créer un groupe de ressources

Un groupe de ressources est un groupe logique de ressources Azure à gérer et à déployer.

6. Créez un cluster Autopilot. Nous le nommerons myAKSAutomaticCluster et utiliserons le groupe de ressources que nous venons de créer. Assurez-vous d'avoir 16 vCPUs disponibles sur l'une des tailles de VM suivantes : Standard_D4pds_v5, Standard_D4lds_v5, Standard_D4ads_v5, Standard_D4ds_v5, Standard_D4d_v5, Standard_D4d_v4, Standard_DS3_v2, Standard_DS12_v2 pour qu'AKS alloue des ressources.

* Si vous obtenez des erreurs MissingSubscriptionRegistration, revenez à l'étape 4 avec les abonnements manquants. Par exemple , The subscription is not registered to use namespace 'microsoft.insights' nécessite l'exécution de az provider register --namespace Microsoft.Insights.

Suivez la connexion interactive :

Un message demandant d'exécuter "az login" s'affiche. Vous devez exécuter cette commande et attendre.

7. Attendez qu'il soit prêt. Il faut environ 10 minutes pour le créer.

8. Configurer l'accès à la ligne de commande kubectl.

Notez que l'extension que nous avons installée active AKS Automatic.

9. Confirmez que les nœuds ont été déployés.

Vous verrez un message d'erreur interdit ; copiez l'identifiant de l'utilisateur dans le message d'erreur.

10. Ajoutez votre utilisateur au contrôle d'accès AKS.

Obtenir l'ID AKS. Copie la sortie de la commande.

Créez une attribution de rôle en utilisant l'identifiant AKS et l'identifiant principal de votre utilisateur.

11. Essayez de confirmer que les nœuds ont été déployés à nouveau.

12. Installez l'opérateur Elastic Cloud on the Kubernetes (ECK).

13. Créons une instance Elasticsearch à nœud unique avec les valeurs par défaut.

Nous avons désactivé nmap parce que la machine AKS par défaut a une valeur vm.max_map_count trop faible. Sa désactivation n'est pas recommandée pour la production, mais l'augmentation de la valeur de vm.max_map_count. Pour en savoir plus , cliquez ici.

14. Déployons également un cluster Kibana à nœud unique. Pour Kibana, nous allons ajouter un équilibreur de charge, qui nous donnera une IP externe que nous pouvons utiliser pour atteindre Kibana depuis notre appareil.

Par défaut, AKS Automatic configure l'équilibreur de charge comme étant public ; vous pouvez modifier ce comportement en définissant l'annotation des métadonnées :

service.beta.kubernetes.io/azure-load-balancer-internal: "true"

15. Vérifiez que vos pods fonctionnent.

16. Vous pouvez également lancer kubectl get elasticsearch et kubectl get kibana pour obtenir des statistiques plus spécifiques comme la version d'Elasticsearch, les nœuds et l'état de santé.

17. Accédez à vos services.

Cela vous montrera l'URL externe de Kibana sous EXTERNAL-IP. Le provisionnement de l'équilibreur de charge peut prendre quelques minutes. Copier la valeur de EXTERNAL-IP.

18. Obtenez le mot de passe Elasticsearch pour l'utilisateur 'elastic' :

19. Accédez à Kibana via votre navigateur :

a. URL : https://<EXTERNAL_IP>:5601

b. Nom d'utilisateur:elastic

c. Mot de passe:c44A295CaEt44D6xIzN6Zs5m (de l'étape précédente)

20. Lorsque vous accédez à Elastic Cloud à partir de votre navigateur, vous verrez l'écran de bienvenue.

Si vous souhaitez modifier les spécifications du cluster Elasticsearch, comme changer ou redimensionner les nœuds, vous pouvez appliquer à nouveau le manifeste YML avec les nouveaux paramètres :

Dans cet exemple, nous allons ajouter un nœud supplémentaire et modifier la RAM et la CPU. Comme vous pouvez le voir, kubectl get elasticsearch affiche maintenant 2 nœuds :

Il en va de même pour Kibana :

Nous pouvons ajuster le CPU/RAM du conteneur ainsi que l'utilisation de la mémoire de Node.js (max-old-space-size).

N'oubliez pas que les créances en volume existantes ne peuvent pas être réduites. Après avoir appliqué la mise à jour, l'opérateur effectuera les changements avec un minimum de temps d'interruption.

N'oubliez pas de supprimer la grappe lorsque vous avez terminé les tests afin d'éviter des coûts inutiles.

Conclusion

L'utilisation d'Azure AKS Automatic avec ECK fournit une solution équilibrée pour le déploiement d'Elasticsearch et de Kibana : elle réduit la complexité opérationnelle, assure une mise à l'échelle et des mises à jour automatisées, et tire parti de la flexibilité de Kubernetes. Cette approche est idéale pour les équipes qui souhaitent un processus de déploiement fiable, reproductible et maintenable sans avoir à gérer manuellement chaque détail de l'infrastructure, ce qui en fait un choix pratique pour les environnements de test et de production.

Étapes suivantes

Si vous souhaitez en savoir plus sur Kubernetes, vous pouvez consulter la documentation officielle ici :

Pour aller plus loin

Prêt à créer des expériences de recherche d'exception ?

Une recherche suffisamment avancée ne se fait pas avec les efforts d'une seule personne. Elasticsearch est alimenté par des data scientists, des ML ops, des ingénieurs et bien d'autres qui sont tout aussi passionnés par la recherche que vous. Mettons-nous en relation et travaillons ensemble pour construire l'expérience de recherche magique qui vous permettra d'obtenir les résultats que vous souhaitez.

Jugez-en par vous-même