For AI agents: the complete documentation index is available at https://docs.ovhcloud.com/fr/llms.txt, the full documentation bundle is available at https://docs.ovhcloud.com/fr/llms-full.txt, and this page is available as Markdown at https://docs.ovhcloud.com/fr/guides/public-cloud/containers-orchestration/managed-kubernetes/installing-pulsar.md.

Déployer Apache Pulsar sur un cluster OVHcloud Managed Kubernetes

Voir en Markdown

Découvrez comment installer Apache Pulsar sur un cluster OVHcloud Managed Kubernetes

Objectif

Apache Pulsar est une plateforme open source de messagerie et de streaming distribuée, conçue pour le cloud. Des entreprises du monde entier utilisent Pulsar pour proposer les architectures événementielles les plus robustes pour leurs applications temps réel. Sa conception découplée permet de consommer les messages sous forme de flux hautes performances ou de files d'attente adaptables. Elle fournit nativement une série de fonctionnalités de niveau entreprise, telles que le multi-tenant, la géo-réplication, les Pulsar Functions et une API multi-langage.

StreamNative, une entreprise fondée par les créateurs originaux d'Apache Pulsar, s'associe à des équipes logicielles du monde entier pour accélérer la mise en production et gérer Pulsar à grande échelle grâce à StreamNative Cloud, un service Pulsar entièrement managé. Elle a développé les opérateurs StreamNative pour Apache Pulsar, qui assurent la gestion complète du cycle de vie des déploiements Pulsar sur Kubernetes, proposés sous une licence simple et gratuite, la Community License. Grâce à ces opérateurs, vous pouvez facilement déployer un cluster Pulsar sur Kubernetes et le gérer via l'API Kubernetes et kubectl.

Ce tutoriel explique comment installer Apache Pulsar sur un cluster OVHcloud Managed Kubernetes à l'aide des opérateurs StreamNative pour Apache Pulsar.

Prérequis

  • Un cluster OVHcloud Managed Kubernetes (v1.24 ou supérieure) avec au minimum 3 worker nodes, chacun disposant d'au moins 2 vCores et 6 Go de mémoire. Une fois votre cluster prêt, une storage class par défaut doit être installée automatiquement ; elle est requise pour les instances Pulsar sur Kubernetes. Vous pouvez exécuter kubectl get sc pour afficher les storage classes disponibles.
  • kubectl installé et configuré (v1.16 ou supérieure). Pour plus d'informations, consultez Configurer kubectl sur un cluster OVHcloud Managed Kubernetes.

En pratique

Avant d'installer Pulsar, vous devez d'abord installer les opérateurs, qui peuvent être déployés à l'aide du chart Helm ou de l'Operator Lifecycle Manager (OLM). Comparé à un déploiement avec Helm, OLM ne nécessite pas de mettre à jour manuellement les custom resource definitions (CRD) lors de la mise à niveau des opérateurs.

Ce tutoriel utilise OLM pour installer les opérateurs StreamNative pour Apache Pulsar. Pour plus d'informations sur le déploiement avec Helm, consultez la documentation.

Installer l'Operator Lifecycle Manager et les opérateurs

OLM est un outil puissant et largement utilisé pour gérer les opérateurs. Avec OLM, vos CRD peuvent être mises à jour automatiquement lors de la mise à niveau des opérateurs.

1. Exécutez la commande suivante pour créer les ressources Kubernetes nécessaires à OLM, notamment les CRD, les ClusterRoles et les Deployments. Le script crée également deux namespaces, olm et operators.

curl -sL https://github.com/operator-framework/operator-lifecycle-manager/releases/download/v0.24.0/install.sh | bash -s v0.24.0

2. Installez les CRD et les contrôleurs personnalisés pour les composants Pulsar (brokers, proxies, BookKeeper et ZooKeeper). Les contrôleurs sont déployés par défaut dans le namespace operators.

kubectl create -f https://raw.githubusercontent.com/streamnative/charts/master/examples/pulsar-operators/olm-subscription.yaml

3. Vérifiez que les opérateurs sont installés avec succès. Lors du déploiement des opérateurs, OLM exécute d'abord un Job dans le namespace olm pour chaque opérateur. Vous devez attendre la fin des Jobs pour pouvoir observer le résultat.

kubectl get pods -n operators

Résultat attendu :

NAME                                                      READY   STATUS    RESTARTS   AGE
bookkeeper-operator-controller-manager-5b4fd6d856-ckpmw   2/2     Running   0          51s
pulsar-operator-controller-manager-9745c86f9-6dm2q        2/2     Running   0          43s
zookeeper-operator-controller-manager-669d7789-v76vd      2/2     Running   0          74s

Installer Pulsar avec les opérateurs

StreamNative fournit un fichier YAML de démarrage rapide qui contient les manifestes des brokers Pulsar, de BookKeeper et de ZooKeeper. Vous pouvez l'utiliser pour déployer rapidement les ressources personnalisées de Pulsar.

1. Créez un namespace nommé pulsar dans lequel les workloads Pulsar seront déployés par la suite. C'est le nom par défaut utilisé dans le fichier YAML d'exemple. Si vous modifiez le namespace à cette étape, vous devrez utiliser le même namespace à l'étape suivante. Ce namespace peut être différent de celui dans lequel les opérateurs sont installés.

kubectl create ns pulsar

2. Choisissez de déployer Pulsar avec ou sans proxies. Les deux fichiers YAML suivants contiennent tous les deux les manifestes pour ZooKeeperCluster, BookKeeperCluster et PulsarBroker. Les proxies Pulsar sont facultatifs et servent de passerelle pour router le trafic vers les brokers Pulsar.

  • Exécutez la commande suivante pour installer Pulsar avec des proxies.
kubectl create -f https://raw.githubusercontent.com/streamnative/charts/master/examples/pulsar-operators/proxy.yaml
  • Exécutez la commande suivante pour installer Pulsar sans proxies.
kubectl create -f https://raw.githubusercontent.com/streamnative/charts/master/examples/pulsar-operators/quick-start.yaml
Info

Si vous souhaitez installer d'autres composants, comme Kafka-on-Pulsar (KoP), appliquez les fichiers YAML correspondants disponibles dans ce dépôt GitHub.

3. Vérifiez que les différents composants du cluster Pulsar sont opérationnels.

kubectl get pods -n pulsar

Résultat attendu :

NAME                         READY   STATUS    RESTARTS   AGE
bookies-bk-0                 1/1     Running   0          9m8s
bookies-bk-1                 1/1     Running   0          9m8s
bookies-bk-2                 1/1     Running   0          9m8s
bookies-bk-auto-recovery-0   1/1     Running   0          8m20s
brokers-broker-0             1/1     Running   0          9m9s
brokers-broker-1             1/1     Running   0          9m9s
zookeepers-zk-0              1/1     Running   0          12m
zookeepers-zk-1              1/1     Running   0          12m
zookeepers-zk-2              1/1     Running   0          12m

Le cluster Pulsar est désormais prêt à traiter des requêtes.

Tester le cluster Pulsar

1. Exécutez une commande dans un Pod broker pour créer un tenant, un namespace et un topic comportant 4 partitions.

kubectl exec -n pulsar brokers-broker-0 -- bin/pulsar-admin tenants create apache
kubectl exec -n pulsar brokers-broker-0 -- bin/pulsar-admin namespaces create apache/pulsar
kubectl exec -n pulsar brokers-broker-0 -- bin/pulsar-admin topics create-partitioned-topic apache/pulsar/test-topic -p 4

2. Listez tous les topics partitionnés du namespace apache/pulsar.

kubectl exec -n pulsar brokers-broker-0 -- bin/pulsar-admin topics list-partitioned-topics apache/pulsar

Résultat attendu :

persistent://apache/pulsar/test-topic

3. Créez un abonnement pour consommer les messages du topic apache/pulsar/test-topic.

kubectl exec -n pulsar brokers-broker-0 -- bin/pulsar-client consume -s sub apache/pulsar/test-topic -n 0

4. Ouvrez un nouveau terminal et exécutez la commande suivante pour envoyer 10 messages au topic test-topic.

kubectl exec -n pulsar brokers-broker-0 -- bin/pulsar-client produce apache/pulsar/test-topic -m "---------hello apache pulsar-------" -n 10

Résultat attendu côté consommateur :

----- got message -----
key:[null], properties:[], content:---------hello apache pulsar-------
----- got message -----
key:[null], properties:[], content:---------hello apache pulsar-------
----- got message -----
key:[null], properties:[], content:---------hello apache pulsar-------
----- got message -----
key:[null], properties:[], content:---------hello apache pulsar-------
----- got message -----
key:[null], properties:[], content:---------hello apache pulsar-------
----- got message -----
key:[null], properties:[], content:---------hello apache pulsar-------
----- got message -----
key:[null], properties:[], content:---------hello apache pulsar-------
----- got message -----
key:[null], properties:[], content:---------hello apache pulsar-------
----- got message -----
key:[null], properties:[], content:---------hello apache pulsar-------
----- got message -----
key:[null], properties:[], content:---------hello apache pulsar-------

Suppression (nettoyage)

Vous pouvez désinstaller les opérateurs et Pulsar lorsque vous n'en avez plus besoin.

Désinstaller Pulsar

Si vous avez déjà déployé Pulsar avec les opérateurs Pulsar, vous devez d'abord désinstaller Pulsar. Vous pouvez ignorer cette étape si Pulsar n'est pas installé.

  • Exécutez la commande suivante pour désinstaller Pulsar si vous l'avez installé avec des proxies.
kubectl delete -f https://raw.githubusercontent.com/streamnative/charts/master/examples/pulsar-operators/proxy.yaml
  • Exécutez la commande suivante pour désinstaller Pulsar si vous l'avez installé sans proxies.
kubectl delete -f https://raw.githubusercontent.com/streamnative/charts/master/examples/pulsar-operators/quick-start.yaml

Désinstaller les opérateurs

1. Supprimez les Subscriptions créées par OLM. Les Subscriptions expriment l'intention d'un utilisateur de s'abonner à la dernière version d'un opérateur. En supprimant les Subscriptions associées aux opérateurs Pulsar, vous indiquez à OLM que vous ne souhaitez plus que de nouvelles versions des opérateurs soient installées.

kubectl delete -f https://raw.githubusercontent.com/streamnative/charts/master/examples/pulsar-operators/olm-subscription.yaml

2. Supprimez les ClusterServiceVersions (CSV) des opérateurs Pulsar. Vous pouvez exécuter kubectl get csv -n operators pour vérifier les versions.

kubectl delete csv pulsar-operator.<version> bookkeeper-operator.<version> zookeeper-operator.<version> -n operators

3. Supprimez les CRD de Pulsar.

kubectl delete crd pulsarbrokers.pulsar.streamnative.io pulsarproxies.pulsar.streamnative.io bookkeeperclusters.bookkeeper.streamnative.io zookeeperclusters.zookeeper.streamnative.io

Désinstaller OLM

Exécutez les commandes suivantes pour désinstaller OLM :

kubectl delete apiservices.apiregistration.k8s.io v1.packages.operators.coreos.com
kubectl delete -f https://github.com/operator-framework/operator-lifecycle-manager/releases/download/v0.24.0/crds.yaml
kubectl delete -f https://github.com/operator-framework/operator-lifecycle-manager/releases/download/v0.24.0/olm.yaml

Ressources complémentaires

L'équipe StreamNative cherche à offrir une meilleure expérience cloud native aux utilisateurs de Pulsar grâce aux opérateurs StreamNative pour Apache Pulsar. Pour en savoir plus sur OVHcloud Managed Kubernetes, Pulsar et les opérateurs Pulsar, consultez les ressources suivantes :

Cette page vous a-t-elle aidé ?