7.4. Commandes CLI de Knative Eventing
7.4.1. commandes kn source Copier lienLien copié sur presse-papiers!
Vous pouvez utiliser les commandes suivantes pour répertorier, créer et gérer les sources d'événements Knative.
7.4.1.1. Liste des types de sources d'événements disponibles en utilisant le CLI Knative Copier lienLien copié sur presse-papiers!
Vous pouvez répertorier les types de sources d'événements qui peuvent être créés et utilisés sur votre cluster à l'aide de la commande CLI kn source list-types
.
Conditions préalables
- OpenShift Serverless Operator et Knative Eventing sont installés sur le cluster.
-
Vous avez installé le CLI Knative (
kn
).
Procédure
Liste les types de sources d'événements disponibles dans le terminal :
kn source list-types
$ kn source list-types
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
TYPE NAME DESCRIPTION ApiServerSource apiserversources.sources.knative.dev Watch and send Kubernetes API events to a sink PingSource pingsources.sources.knative.dev Periodically send ping events to a sink SinkBinding sinkbindings.sources.knative.dev Binding for connecting a PodSpecable to a sink
TYPE NAME DESCRIPTION ApiServerSource apiserversources.sources.knative.dev Watch and send Kubernetes API events to a sink PingSource pingsources.sources.knative.dev Periodically send ping events to a sink SinkBinding sinkbindings.sources.knative.dev Binding for connecting a PodSpecable to a sink
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Facultatif : vous pouvez également dresser la liste des types de sources d'événements disponibles au format YAML :
kn source list-types -o yaml
$ kn source list-types -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.4.1.2. Drapeau d'évitement de l'CLI Knative Copier lienLien copié sur presse-papiers!
Lorsque vous créez une source d'événements à l'aide de l'interface de programmation Knative (kn
), vous pouvez spécifier un puits vers lequel les événements sont envoyés à partir de cette ressource à l'aide de l'indicateur --sink
. Le récepteur peut être n'importe quelle ressource adressable ou appelable qui peut recevoir des événements entrants d'autres ressources.
L'exemple suivant crée une liaison de puits qui utilise un service, http://event-display.svc.cluster.local
, comme puits :
Exemple de commande utilisant l'indicateur d'évitement
kn source binding create bind-heartbeat \ --namespace sinkbinding-example \ --subject "Job:batch/v1:app=heartbeat-cron" \ --sink http://event-display.svc.cluster.local \ --ce-override "sink=bound"
$ kn source binding create bind-heartbeat \
--namespace sinkbinding-example \
--subject "Job:batch/v1:app=heartbeat-cron" \
--sink http://event-display.svc.cluster.local \
--ce-override "sink=bound"
- 1
svc
danshttp://event-display.svc.cluster.local
détermine que le puits est un service Knative. D'autres préfixes de puits par défaut incluentchannel
, etbroker
.
7.4.1.3. Créer et gérer des sources de conteneurs en utilisant le CLI Knative Copier lienLien copié sur presse-papiers!
Vous pouvez utiliser les commandes kn source container
pour créer et gérer des sources de conteneurs en utilisant le CLI Knative (kn
). L'utilisation de l'interface de programmation Knative pour créer des sources d'événements offre une interface utilisateur plus rationnelle et plus intuitive que la modification directe des fichiers YAML.
Créer un conteneur source
kn source container create <container_source_name> --image <image_uri> --sink <sink>
$ kn source container create <container_source_name> --image <image_uri> --sink <sink>
Supprimer un conteneur source
kn source container delete <container_source_name>
kn source container delete <container_source_name>
Décrire la source d'un conteneur
kn source container describe <container_source_name>
kn source container describe <container_source_name>
Liste des sources de conteneurs existantes
kn source container list
$ kn source container list
Liste des sources de conteneurs existantes au format YAML
kn source container list -o yaml
$ kn source container list -o yaml
Mise à jour d'un conteneur source
Cette commande met à jour l'URI de l'image d'un conteneur existant :
kn source container update <container_source_name> --image <image_uri>
$ kn source container update <container_source_name> --image <image_uri>
7.4.1.4. Création d'une source de serveur API à l'aide du CLI Knative Copier lienLien copié sur presse-papiers!
Vous pouvez utiliser la commande kn source apiserver create
pour créer une source de serveur API à l'aide de l'interface de programmation kn
. L'utilisation du CLI kn
pour créer une source de serveur API offre une interface utilisateur plus rationnelle et plus intuitive que la modification directe des fichiers YAML.
Conditions préalables
- OpenShift Serverless Operator et Knative Eventing sont installés sur le cluster.
- Vous avez créé un projet ou avez accès à un projet avec les rôles et autorisations appropriés pour créer des applications et d'autres charges de travail dans OpenShift Container Platform.
-
Vous avez installé l'OpenShift CLI (
oc
). -
Vous avez installé le CLI Knative (
kn
).
Si vous souhaitez réutiliser un compte de service existant, vous pouvez modifier votre ressource ServiceAccount
existante pour y inclure les autorisations requises au lieu de créer une nouvelle ressource.
Créez un compte de service, un rôle et une liaison de rôle pour la source d'événement sous la forme d'un fichier YAML :
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Appliquer le fichier YAML :
oc apply -f <filename>
$ oc apply -f <filename>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Créez une source de serveur API dotée d'un puits d'événements. Dans l'exemple suivant, le puits est un courtier :
kn source apiserver create <event_source_name> --sink broker:<broker_name> --resource "event:v1" --service-account <service_account_name> --mode Resource
$ kn source apiserver create <event_source_name> --sink broker:<broker_name> --resource "event:v1" --service-account <service_account_name> --mode Resource
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pour vérifier que la source du serveur API est correctement configurée, créez un service Knative qui déverse les messages entrants dans son journal :
kn service create <service_name> --image quay.io/openshift-knative/knative-eventing-sources-event-display:latest
$ kn service create <service_name> --image quay.io/openshift-knative/knative-eventing-sources-event-display:latest
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Si vous avez utilisé un courtier comme puits d'événements, créez un déclencheur pour filtrer les événements du courtier
default
vers le service :kn trigger create <trigger_name> --sink ksvc:<service_name> $ kn trigger create <trigger_name>
kn trigger create <trigger_name> --sink ksvc:<service_name> $ kn trigger create <trigger_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Créer des événements en lançant un pod dans l'espace de noms par défaut :
oc create deployment hello-node --image quay.io/openshift-knative/knative-eventing-sources-event-display:latest
$ oc create deployment hello-node --image quay.io/openshift-knative/knative-eventing-sources-event-display:latest
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Vérifiez que le contrôleur est correctement mappé en inspectant la sortie générée par la commande suivante :
kn source apiserver describe <nom_de_la_source>
$ kn source apiserver describe <nom_de_la_source>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Vérification
Vous pouvez vérifier que les événements Kubernetes ont été envoyés à Knative en consultant les journaux de la fonction dumper de messages.
Obtenez les cosses :
oc get pods
$ oc get pods
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Affichez les journaux des fonctions de l'expéditeur de messages pour les modules :
oc logs $(oc get pod -o name | grep event-display) -c user-container
$ oc logs $(oc get pod -o name | grep event-display) -c user-container
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Suppression de la source du serveur API
Supprimer le déclencheur :
kn trigger delete <trigger_name>
kn trigger delete <trigger_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Supprimer la source de l'événement :
kn source apiserver delete <nom_de_la_source>
$ kn source apiserver delete <nom_de_la_source>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Supprimez le compte de service, le rôle de cluster et le lien de cluster :
oc delete -f authentication.yaml
$ oc delete -f authentication.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.4.1.5. Création d'une source de ping à l'aide de la CLI Knative Copier lienLien copié sur presse-papiers!
Vous pouvez utiliser la commande kn source ping create
pour créer une source de ping en utilisant le CLI Knative (kn
). L'utilisation de l'interface de programmation Knative pour créer des sources d'événements offre une interface utilisateur plus rationnelle et plus intuitive que la modification directe des fichiers YAML.
Conditions préalables
- L'opérateur OpenShift Serverless, Knative Serving et Knative Eventing sont installés sur le cluster.
-
Vous avez installé le CLI Knative (
kn
). - Vous avez créé un projet ou avez accès à un projet avec les rôles et autorisations appropriés pour créer des applications et d'autres charges de travail dans OpenShift Container Platform.
-
Facultatif : Si vous souhaitez utiliser les étapes de vérification pour cette procédure, installez l'OpenShift CLI (
oc
).
Procédure
Pour vérifier que la source de ping fonctionne, créez un service Knative simple qui déverse les messages entrants dans les journaux du service :
kn service create event-display \ --image quay.io/openshift-knative/knative-eventing-sources-event-display:latest
$ kn service create event-display \ --image quay.io/openshift-knative/knative-eventing-sources-event-display:latest
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pour chaque ensemble d'événements ping que vous souhaitez demander, créez une source ping dans le même espace de noms que le consommateur d'événements :
kn source ping create test-ping-source \ --schedule "*/2 * * * *" \ --data '{"message": "Hello world!"}' \ --sink ksvc:event-display
$ kn source ping create test-ping-source \ --schedule "*/2 * * * *" \ --data '{"message": "Hello world!"}' \ --sink ksvc:event-display
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Vérifiez que le contrôleur est correctement mappé en entrant la commande suivante et en inspectant la sortie :
kn source ping describe test-ping-source
$ kn source ping describe test-ping-source
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Vérification
Vous pouvez vérifier que les événements Kubernetes ont été envoyés au puits d'événements Knative en examinant les journaux du pod de puits.
Par défaut, les services Knative terminent leurs pods si aucun trafic n'est reçu pendant une période de 60 secondes. L'exemple présenté dans ce guide crée une source ping qui envoie un message toutes les 2 minutes, chaque message doit donc être observé dans un pod nouvellement créé.
Surveillez la création de nouvelles gousses :
watch oc get pods
$ watch oc get pods
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Annulez l'observation des pods en utilisant Ctrl C, puis regardez les journaux du pod créé :
oc logs $(oc get pod -o name | grep event-display) -c user-container
$ oc logs $(oc get pod -o name | grep event-display) -c user-container
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Suppression de la source de ping
Supprimer la source de ping :
kn delete pingsources.sources.knative.dev <nom_de_la_source_de_ping>
$ kn delete pingsources.sources.knative.dev <nom_de_la_source_de_ping>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.4.1.6. Créer une source d'événement Apache Kafka en utilisant le CLI Knative Copier lienLien copié sur presse-papiers!
Vous pouvez utiliser la commande kn source kafka create
pour créer une source Kafka en utilisant le CLI Knative (kn
). L'utilisation du CLI Knative pour créer des sources d'événements offre une interface utilisateur plus rationnelle et intuitive que la modification directe des fichiers YAML.
Conditions préalables
-
OpenShift Serverless Operator, Knative Eventing, Knative Serving et la ressource personnalisée (CR)
KnativeKafka
sont installés sur votre cluster. - Vous avez créé un projet ou avez accès à un projet avec les rôles et autorisations appropriés pour créer des applications et d'autres charges de travail dans OpenShift Container Platform.
- Vous avez accès à un cluster Red Hat AMQ Streams (Kafka) qui produit les messages Kafka que vous souhaitez importer.
-
Vous avez installé le CLI Knative (
kn
). -
Facultatif : Vous avez installé l'OpenShift CLI (
oc
) si vous voulez utiliser les étapes de vérification dans cette procédure.
Procédure
Pour vérifier que la source d'événements Kafka fonctionne, créez un service Knative qui déverse les événements entrants dans les journaux du service :
kn service create event-display \ --image quay.io/openshift-knative/knative-eventing-sources-event-display
$ kn service create event-display \ --image quay.io/openshift-knative/knative-eventing-sources-event-display
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Créer un CR
KafkaSource
:kn source kafka create <kafka_source_name> \ --servers <cluster_kafka_bootstrap>.kafka.svc:9092 \ --topics <topic_name> --consumergroup my-consumer-group \ --sink event-display
$ kn source kafka create <kafka_source_name> \ --servers <cluster_kafka_bootstrap>.kafka.svc:9092 \ --topics <topic_name> --consumergroup my-consumer-group \ --sink event-display
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NoteRemplacez les valeurs de cette commande par les valeurs de votre nom de source, de vos serveurs d'amorçage et de vos rubriques.
Les options
--servers
,--topics
, et--consumergroup
spécifient les paramètres de connexion au cluster Kafka. L'option--consumergroup
est facultative.Facultatif : Affichez les détails de la CR
KafkaSource
que vous avez créée :kn source kafka describe <kafka_source_name>
$ kn source kafka describe <kafka_source_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Verification steps
Déclencher l'envoi par l'instance Kafka d'un message au sujet :
oc -n kafka run kafka-producer \ -ti --image=quay.io/strimzi/kafka:latest-kafka-2.7.0 --rm=true \ --restart=Never -- bin/kafka-console-producer.sh \ --broker-list <cluster_kafka_bootstrap>:9092 --topic my-topic
$ oc -n kafka run kafka-producer \ -ti --image=quay.io/strimzi/kafka:latest-kafka-2.7.0 --rm=true \ --restart=Never -- bin/kafka-console-producer.sh \ --broker-list <cluster_kafka_bootstrap>:9092 --topic my-topic
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Saisissez le message dans l'invite. Cette commande suppose que :
-
Le cluster Kafka est installé dans l'espace de noms
kafka
. -
L'objet
KafkaSource
a été configuré pour utiliser le sujetmy-topic
.
-
Le cluster Kafka est installé dans l'espace de noms
Vérifiez que le message est arrivé en consultant les journaux :
oc logs $(oc get pod -o name | grep event-display) -c user-container
$ oc logs $(oc get pod -o name | grep event-display) -c user-container
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
Copy to Clipboard Copied! Toggle word wrap Toggle overflow