5.7. Abonnements
5.7.1. Création d'abonnements
Après avoir créé un canal et un puits d'événements, vous pouvez créer un abonnement pour permettre la livraison d'événements. Les abonnements sont créés en configurant un objet Subscription
, qui spécifie le canal et le puits (également connu sous le nom de subscriber) vers lesquels les événements doivent être acheminés.
5.7.1.1. Création d'un abonnement à l'aide de la perspective de l'administrateur
Après avoir créé un canal et un puits d'événements, également appelé subscriber, vous pouvez créer un abonnement pour permettre la livraison d'événements. Les abonnements sont créés en configurant un objet Subscription
, qui spécifie le canal et l'abonné à qui livrer les événements. Vous pouvez également spécifier certaines options propres à l'abonné, telles que la manière de gérer les échecs.
Conditions préalables
- OpenShift Serverless Operator et Knative Eventing sont installés sur votre cluster OpenShift Container Platform.
- Vous vous êtes connecté à la console web et vous vous trouvez dans la perspective Administrator.
- Vous disposez des droits d'administrateur de cluster pour OpenShift Container Platform.
- Vous avez créé un canal Knative.
- Vous avez créé un service Knative à utiliser en tant qu'abonné.
Procédure
-
Dans la perspective Administrator de la console web OpenShift Container Platform, naviguez vers Serverless
Eventing. - Dans l'onglet Channel, sélectionnez le menu Options pour la chaîne à laquelle vous souhaitez ajouter un abonnement.
- Cliquez sur Add Subscription dans la liste.
- Dans la boîte de dialogue Add Subscription, sélectionnez un Subscriber pour l'abonnement. L'abonné est le service Knative qui reçoit les événements du canal.
- Cliquez sur Add.
5.7.1.2. Créer un abonnement à l'aide de la perspective du développeur
Une fois que vous avez créé un canal et un puits d'événements, vous pouvez créer un abonnement pour activer la livraison d'événements. L'utilisation de la console web d'OpenShift Container Platform offre une interface utilisateur rationalisée et intuitive pour créer un abonnement.
Conditions préalables
- OpenShift Serverless Operator, Knative Serving et Knative Eventing sont installés sur votre cluster OpenShift Container Platform.
- Vous vous êtes connecté à la console web.
- Vous avez créé un puits d'événements, tel qu'un service Knative, et un canal.
- 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.
Procédure
- Dans la perspective Developer, naviguez jusqu'à la page Topology.
Créez un abonnement en utilisant l'une des méthodes suivantes :
Survolez le canal pour lequel vous souhaitez créer un abonnement et faites glisser la flèche. L'option Add Subscription s'affiche.
- Sélectionnez votre évier dans la liste Subscriber.
- Cliquez sur Add.
- Si le service est disponible dans la vue Topology sous le même espace de noms ou projet que le canal, cliquez sur le canal pour lequel vous souhaitez créer un abonnement et faites glisser la flèche directement sur un service pour créer immédiatement un abonnement du canal à ce service.
Vérification
Une fois l'abonnement créé, il est représenté par une ligne reliant le canal au service dans la vue Topology:
5.7.1.3. Création d'un abonnement à l'aide de YAML
Après avoir créé un canal et un puits d'événements, vous pouvez créer un abonnement pour permettre la livraison d'événements. La création de ressources Knative à l'aide de fichiers YAML utilise une API déclarative, qui vous permet de décrire les abonnements de manière déclarative et reproductible. Pour créer un abonnement à l'aide de YAML, vous devez créer un fichier YAML qui définit un objet Subscription
, puis l'appliquer à l'aide de la commande oc apply
.
Conditions préalables
- OpenShift Serverless Operator et Knative Eventing sont installés sur le cluster.
-
Installez le CLI OpenShift (
oc
). - 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.
Procédure
Créer un objet
Subscription
:Créez un fichier YAML et copiez-y l'exemple de code suivant :
apiVersion: messaging.knative.dev/v1beta1 kind: Subscription metadata: name: my-subscription 1 namespace: default spec: channel: 2 apiVersion: messaging.knative.dev/v1beta1 kind: Channel name: example-channel delivery: 3 deadLetterSink: ref: apiVersion: serving.knative.dev/v1 kind: Service name: error-handler subscriber: 4 ref: apiVersion: serving.knative.dev/v1 kind: Service name: event-display
- 1
- Nom de l'abonnement.
- 2
- Paramètres de configuration pour le canal auquel l'abonnement se connecte.
- 3
- Paramètres de configuration pour la livraison d'événements. Ce paramètre indique à l'abonnement ce qu'il advient des événements qui ne peuvent pas être livrés à l'abonné. Lorsque cette option est configurée, les événements qui n'ont pas pu être consommés sont envoyés à
deadLetterSink
. L'événement est abandonné, aucune nouvelle livraison de l'événement n'est tentée et une erreur est consignée dans le système. La valeurdeadLetterSink
doit être une destination. - 4
- Paramètres de configuration de l'abonné. Il s'agit du puits d'événements vers lequel les événements sont acheminés à partir du canal.
Appliquer le fichier YAML :
$ oc apply -f <filename>
5.7.1.4. Créer un abonnement en utilisant le CLI Knative
Après avoir créé un canal et un puits d'événements, vous pouvez créer un abonnement pour permettre la livraison d'événements. L'utilisation de la CLI Knative (kn
) pour créer des abonnements offre une interface utilisateur plus rationnelle et intuitive que la modification directe des fichiers YAML. Vous pouvez utiliser la commande kn subscription create
avec les drapeaux appropriés pour créer un abonnement.
Conditions préalables
- OpenShift Serverless Operator et Knative Eventing sont installés sur votre cluster OpenShift Container Platform.
-
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.
Procédure
Créer un abonnement pour connecter un puits à un canal :
$ kn subscription create <subscription_name> \ --channel <group:version:kind>:<channel_name> \ 1 --sink <sink_prefix>:<sink_name> \ 2 --sink-dead-letter <sink_prefix>:<sink_name> 3
- 1
--channel
spécifie la source des événements du nuage à traiter. Vous devez fournir le nom du canal. Si vous n'utilisez pas le canal par défautInMemoryChannel
qui est soutenu par la ressource personnaliséeChannel
, vous devez préfixer le nom du canal par<group:version:kind>
pour le type de canal spécifié. Par exemple, il s'agira demessaging.knative.dev:v1beta1:KafkaChannel
pour un canal soutenu par Apache Kafka.- 2
--sink
spécifie la destination cible à laquelle l'événement doit être livré. Par défaut, le site<sink_name>
est interprété comme un service Knative de ce nom, dans le même espace de noms que l'abonnement. Vous pouvez spécifier le type de l'évier en utilisant l'un des préfixes suivants :ksvc
- Un service Knative.
channel
- Un canal qui doit être utilisé comme destination. Seuls les types de canaux par défaut peuvent être référencés ici.
broker
- Un courtier en concours complet.
- 3
- Facultatif :
--sink-dead-letter
est un drapeau facultatif qui peut être utilisé pour spécifier un puits vers lequel les événements doivent être envoyés dans les cas où les événements ne sont pas livrés. Pour plus d'informations, voir la documentation OpenShift Serverless Event delivery.Example command
$ kn subscription create mysubscription --channel mychannel --sink ksvc:event-display
Exemple de sortie
Subscription 'mysubscription' created in namespace 'default'.
Vérification
Pour confirmer que le canal est connecté au puits d'événements, ou subscriber, par un abonnement, dressez la liste des abonnements existants et inspectez la sortie :
$ kn subscription list
Exemple de sortie
NAME CHANNEL SUBSCRIBER REPLY DEAD LETTER SINK READY REASON mysubscription Channel:mychannel ksvc:event-display True
Suppression d'un abonnement
Supprimer un abonnement :
kn subscription delete <nom_de_l'abonnement>
5.7.1.5. Prochaines étapes
- Configurez les paramètres de livraison d'événements qui sont appliqués dans les cas où un événement n'est pas livré à un récepteur d'événements. Voir Exemples de configuration des paramètres de livraison d'événements.
5.7.2. Gestion des abonnements
5.7.2.1. Décrire les abonnements en utilisant le CLI Knative
Vous pouvez utiliser la commande kn subscription describe
pour imprimer des informations sur un abonnement dans le terminal en utilisant la CLI Knative (kn
). L'utilisation de l'interface de programmation Knative pour décrire les abonnements offre une interface utilisateur plus rationnelle et plus intuitive que l'affichage direct des fichiers YAML.
Conditions préalables
-
Vous avez installé le CLI Knative (
kn
). - Vous avez créé un abonnement dans votre cluster.
Procédure
Décrire un abonnement :
$ kn subscription describe <nom_de_l'abonnement>
Exemple de sortie
Name: my-subscription Namespace: default Annotations: messaging.knative.dev/creator=openshift-user, messaging.knative.dev/lastModifier=min ... Age: 43s Channel: Channel:my-channel (messaging.knative.dev/v1) Subscriber: URI: http://edisplay.default.example.com Reply: Name: default Resource: Broker (eventing.knative.dev/v1) DeadLetterSink: Name: my-sink Resource: Service (serving.knative.dev/v1) Conditions: OK TYPE AGE REASON ++ Ready 43s ++ AddedToChannel 43s ++ ChannelReady 43s ++ ReferencesResolved 43s
5.7.2.2. Lister les abonnements en utilisant le CLI Knative
Vous pouvez utiliser la commande kn subscription list
pour lister les abonnements existants sur votre cluster en utilisant la CLI Knative (kn
). L'utilisation de la CLI Knative pour lister les abonnements offre une interface utilisateur simplifiée et intuitive.
Conditions préalables
-
Vous avez installé le CLI Knative (
kn
).
Procédure
Liste des abonnements sur votre cluster :
$ kn subscription list
Exemple de sortie
NAME CHANNEL SUBSCRIBER REPLY DEAD LETTER SINK READY REASON mysubscription Channel:mychannel ksvc:event-display True
5.7.2.3. Mise à jour des abonnements à l'aide du CLI Knative
Vous pouvez utiliser la commande kn subscription update
ainsi que les drapeaux appropriés pour mettre à jour un abonnement à partir du terminal en utilisant le CLI Knative (kn
). L'utilisation de la CLI Knative pour mettre à jour les abonnements offre une interface utilisateur plus rationnelle et intuitive que la mise à jour directe des fichiers YAML.
Conditions préalables
-
Vous avez installé le CLI Knative (
kn
). - Vous avez créé un abonnement.
Procédure
Mettre à jour un abonnement :
$ kn subscription update <subscription_name> \ --sink <sink_prefix>:<sink_name> \ 1 --sink-dead-letter <sink_prefix>:<sink_name> 2
- 1
--sink
spécifie la destination cible mise à jour à laquelle l'événement doit être transmis. Vous pouvez spécifier le type de puits en utilisant l'un des préfixes suivants :ksvc
- Un service Knative.
channel
- Un canal qui doit être utilisé comme destination. Seuls les types de canaux par défaut peuvent être référencés ici.
broker
- Un courtier en concours complet.
- 2
- Facultatif :
--sink-dead-letter
est un drapeau facultatif qui peut être utilisé pour spécifier un puits vers lequel les événements doivent être envoyés dans les cas où les événements ne sont pas livrés. Pour plus d'informations, voir la documentation OpenShift Serverless Event delivery.Example command
$ kn subscription update mysubscription --sink ksvc:event-display