Installation
Guide pour installer et vérifier Argo Events sur Kubernetes, intégrer optionnellement Argo Workflows, inspecter les ressources, visualiser l'intégration de l'UI et résoudre les problèmes courants au démarrage.
Ce guide montre comment installer Argo Events dans un cluster Kubernetes, vérifier que le contrôleur fonctionne, et intégrer optionnellement Argo Workflows pour déclencher des workflows à partir des événements. Suivez les étapes ci-dessous pour déployer le contrôleur, inspecter les ressources installées et résoudre les problèmes courants au démarrage.
Vue d'ensemble¶
- Installez le namespace argo-events et les manifests d'Argo Events.
- (Optionnel) Installez Argo Workflows si vous prévoyez de déclencher des workflows à partir des événements.
- Vérifiez les CRDs, RBAC, les config maps et le déploiement du contrôleur.
- Inspectez les pods et les logs pour vous assurer que le contrôleur est prêt.
- Utilisez l'UI d'Argo Workflows pour afficher les EventSources et les Sensors lorsque l'intégration est faite.
Prérequis¶
- Un cluster Kubernetes avec
kubectlconfiguré pour cibler ce cluster. - (Optionnel) Si vous prévoyez d'utiliser l'UI d'Argo Workflows, installez Argo Workflows dans le cluster.
Installation¶
1. Installation Argo Workflows¶
Étant donné que nous devons déclencher un workflow, nous devons d'abord installer Argo Workflows. Pour cela, créez le namespace respectif argo et appliquez le fichier YAML d'installation dans ce namespace. Exécutez les commandes ci-dessous:
ARGO_WORKFLOWS_VERSION="v4.0.3"
kubectl create namespace argo
kubectl apply --server-side -n argo -f "https://github.com/argoproj/argo-workflows/releases/download/${ARGO_WORKFLOWS_VERSION}/quick-start-minimal.yaml"
kubectl -n argo port-forward service/argo-server 2746:2746
Vous devriez voir l'écran suivant : (Capture d'écran du démarrage d'Argo Workflows) Assurez-vous de sélectionner "argo-events" comme namespace.
Créez le namespace argo-events et appliquez le manifest officiel d'installation d'Argo Events :
kubectl create namespace argo-events
kubectl apply -f https://raw.githubusercontent.com/argoproj/argo-events/stable/manifests/install.yaml
# Optionnel : installer Argo Workflows (si vous allez déclencher des workflows à partir des événements)
# kubectl create namespace argo
# kubectl apply -n argo -f https://raw.githubusercontent.com/argoproj/argo-workflows/stable/manifests/install.yaml
Vous devriez voir un résultat similaire à l'exemple ci-dessous lorsque Kubernetes crée les CRDs, RBAC, ConfigMaps et le déploiement du contrôleur :
namespace/argo-events créé
customresourcedefinition.apiextensions.k8s.io/eventbus.argoproj.io créé
customresourcedefinition.apiextensions.k8s.io/eventsources.argoproj.io créé
customresourcedefinition.apiextensions.k8s.io/sensors.argoproj.io créé
serviceaccount/argo-events-sa créé
clusterrole.rbac.authorization.k8s.io/argo-events-aggregate-to-admin créé
clusterrole.rbac.authorization.k8s.io/argo-events-aggregate-to-edit créé
clusterrole.rbac.authorization.k8s.io/argo-events-aggregate-to-view créé
clusterrole.rbac.authorization.k8s.io/argo-events-role créé
clusterrolebinding.rbac.authorization.k8s.io/argo-events-binding créé
configmap/argo-events-controller-config créé
deployment.apps/controller-manager créé
Vérification de l'installation¶
Listez toutes les ressources dans le namespace argo-events :
Lorsque les images sont téléchargées et que le pod est planifié, le pod du contrôleur peut afficher ContainerCreating jusqu'à ce que le conteneur soit prêt. Exemple de sortie lorsque le contrôleur est encore en cours de démarrage :
NAME READY STATUS RESTARTS AGE
pod/controller-manager-59884fd695-kt5gm 0/1 ContainerCreating 0 10s
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/controller-manager 0/1 1 0 10s
NAME DESIRED CURRENT READY AGE
replicaset.apps/controller-manager-59884fd695 1 1 0 10s
UI : Visualisation des EventSources et des Sensors¶
Argo Events ne propose pas d'UI web autonome. Si vous installez Argo Workflows et l'intégrez à Argo Events, l'UI d'Argo Workflows peut afficher les EventSources et les Sensors. Ouvrez l'UI d'Argo Workflows et sélectionnez le namespace approprié (par exemple, argo-events) pour afficher les ressources liées aux événements.
Lorsqu'aucun EventSource n'est présent, la page des Event Sources montre un état vide avec un bouton pour créer un nouveau EventSource.
La page des Sensors de l'UI affiche également un état vide jusqu'à ce que des sensors soient créés. L'éditeur visuel aide à illustrer comment les sensors se connectent aux déclencheurs, à l'EventBus, et à d'autres composants.
ContainerCreating ou entre en CrashLoopBackOff, inspectez les événements et les logs du pod avec :
* kubectl -n argo-events describe pod <pod-name>
* kubectl -n argo-events logs <pod-name>
Ces commandes permettent d'identifier les erreurs de planification, de téléchargement d'image ou d'exécution.
Ressources courantes créées par l'installation¶
| Type de ressource | Objectif |
|---|---|
| CustomResourceDefinitions (CRDs) | Définir les ressources personnalisées EventBus, EventSource et Sensor |
| ServiceAccount, ClusterRole, ClusterRoleBinding | RBAC pour le contrôleur afin de surveiller et gérer les ressources |
| ConfigMap | Configuration du contrôleur (par exemple, métriques, paramètres de l'event bus) |
| Deployment / ReplicaSet / Pod | Gestionnaire du contrôleur qui réconcilie les EventSources et les Sensors |
Liste de contrôle pour le dépannage¶
-
Confirmez que le pod du contrôleur est planifié et non en attente :
-
kubectl -n argo-events get pods -
Si
ContainerCreating, vérifiez l'espace sur le nœud et les erreurs de téléchargement d'images : -
kubectl -n argo-events describe pod <pod-name> -
Si le pod plante de manière répétée, consultez les logs pour obtenir des traces d'erreurs :
-
kubectl -n argo-events logs <pod-name> -
Vérifiez que les CRDs ont été créés avec succès :
-
kubectl get crd | grep argo
Étapes suivantes¶
- Attendez que le pod
controller-manageratteigne l'état READY avant de créer des EventSources et des Sensors. - Créez des manifests EventSource et Sensor pour