Chapitre 4. Servir
4.1. Démarrer avec Knative Serving Copier lienLien copié sur presse-papiers!
4.1.1. Applications sans serveur Copier lienLien copié sur presse-papiers!
Les applications sans serveur sont créées et déployées en tant que services Kubernetes, définies par une route et une configuration, et contenues dans un fichier YAML. Pour déployer une application sans serveur à l'aide d'OpenShift Serverless, vous devez créer un objet Knative Service
.
Exemple de fichier YAML de l'objet Knative Service
Vous pouvez créer une application sans serveur en utilisant l'une des méthodes suivantes :
Créez un service Knative à partir de la console web d'OpenShift Container Platform.
Pour plus d'informations, voir Création d'applications à l'aide de la perspective du développeur.
-
Créer un service Knative en utilisant le CLI Knative (
kn
). -
Créer et appliquer un objet Knative
Service
sous la forme d'un fichier YAML, en utilisant le CLIoc
.
4.1.1.1. Créer des applications sans serveur en utilisant le CLI Knative Copier lienLien copié sur presse-papiers!
L'utilisation de la CLI Knative (kn
) pour créer des applications sans serveur offre une interface utilisateur plus rationalisée et plus intuitive que la modification directe des fichiers YAML. Vous pouvez utiliser la commande kn service create
pour créer une application sans serveur de base.
Conditions préalables
- OpenShift Serverless Operator et Knative Serving sont installés sur votre 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.
Procédure
Créer un service Knative :
kn service create <service-name> --image <image> --tag <tag-value>
$ kn service create <service-name> --image <image> --tag <tag-value>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Où ?
-
--image
est l'URI de l'image pour l'application. --tag
est un indicateur facultatif qui peut être utilisé pour ajouter une étiquette à la révision initiale créée avec le service.Example command
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 Exemple de sortie
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
4.1.1.2. Créer des applications sans serveur à l'aide de YAML Copier lienLien copié sur presse-papiers!
La création de ressources Knative à l'aide de fichiers YAML utilise une API déclarative, qui vous permet de décrire des applications de manière déclarative et reproductible. Pour créer une application sans serveur à l'aide de YAML, vous devez créer un fichier YAML qui définit un objet Knative Service
, puis l'appliquer à l'aide de oc apply
.
Une fois le service créé et l'application déployée, Knative crée une révision immuable pour cette version de l'application. Knative effectue également la programmation du réseau pour créer une route, une entrée, un service et un équilibreur de charge pour votre application et fait automatiquement évoluer vos pods vers le haut ou vers le bas en fonction du trafic.
Conditions préalables
- OpenShift Serverless Operator et Knative Serving 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.
-
Installez le CLI OpenShift (
oc
).
Procédure
Créez un fichier YAML contenant l'exemple de code suivant :
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Naviguez jusqu'au répertoire où se trouve le fichier YAML et déployez l'application en appliquant le fichier YAML :
oc apply -f <filename>
$ oc apply -f <filename>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Si vous ne souhaitez pas passer à la perspective Developer dans la console web d'OpenShift Container Platform ou utiliser le CLI Knative (kn
) ou les fichiers YAML, vous pouvez créer des composants Knative en utilisant la perspective Administator de la console web d'OpenShift Container Platform.
4.1.1.3. Créer des applications sans serveur en utilisant la perspective de l'administrateur Copier lienLien copié sur presse-papiers!
Les applications sans serveur sont créées et déployées en tant que services Kubernetes, définies par une route et une configuration, et contenues dans un fichier YAML. Pour déployer une application sans serveur à l'aide d'OpenShift Serverless, vous devez créer un objet Knative Service
.
Exemple de fichier YAML de l'objet Knative Service
Une fois le service créé et l'application déployée, Knative crée une révision immuable pour cette version de l'application. Knative effectue également la programmation du réseau pour créer une route, une entrée, un service et un équilibreur de charge pour votre application et fait automatiquement évoluer vos pods vers le haut ou vers le bas en fonction du trafic.
Conditions préalables
Pour créer des applications sans serveur à l'aide de la perspective Administrator, assurez-vous d'avoir effectué les étapes suivantes.
- L'opérateur OpenShift Serverless et Knative Serving sont installés.
- Vous vous êtes connecté à la console web et vous vous trouvez dans la perspective Administrator.
Procédure
-
Naviguez jusqu'à la page Serverless
Serving. - Dans la liste Create, sélectionnez Service.
- Saisir manuellement des définitions YAML ou JSON, ou glisser-déposer un fichier dans l'éditeur.
- Cliquez sur Create.
4.1.1.4. Création d'un service en mode hors ligne Copier lienLien copié sur presse-papiers!
Vous pouvez exécuter les commandes kn service
en mode déconnecté, de sorte qu'aucune modification n'est apportée au cluster et que le fichier de descripteur de service est créé sur votre machine locale. Une fois le fichier descripteur créé, vous pouvez le modifier avant de propager les changements au cluster.
Le mode hors ligne de la CLI Knative est une fonctionnalité d'aperçu technologique uniquement. Les fonctionnalités de l'aperçu technologique ne sont pas prises en charge par les accords de niveau de service (SLA) de production de Red Hat et peuvent ne pas être complètes sur le plan fonctionnel. Red Hat ne recommande pas de les utiliser en production. Ces fonctionnalités offrent un accès anticipé aux fonctionnalités des produits à venir, permettant aux clients de tester les fonctionnalités et de fournir un retour d'information au cours du processus de développement.
Pour plus d'informations sur la portée de l'assistance des fonctionnalités de l'aperçu technologique de Red Hat, voir Portée de l'assistance des fonctionnalités de l'aperçu technologique.
Conditions préalables
- OpenShift Serverless Operator et Knative Serving sont installés sur votre cluster.
-
Vous avez installé le CLI Knative (
kn
).
Procédure
En mode déconnecté, créez un fichier de descripteurs de service Knative local :
kn service create event-display \ --image quay.io/openshift-knative/knative-eventing-sources-event-display:latest \ --target ./ \ --namespace test
$ kn service create event-display \ --image quay.io/openshift-knative/knative-eventing-sources-event-display:latest \ --target ./ \ --namespace test
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
Service 'event-display' created in namespace 'test'.
Service 'event-display' created in namespace 'test'.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow L'option
--target ./
active le mode hors ligne et spécifie./
comme répertoire de stockage de la nouvelle arborescence.Si vous n'indiquez pas de répertoire existant, mais que vous utilisez un nom de fichier, tel que
--target my-service.yaml
, aucune arborescence n'est créée. Seul le fichier de descripteurs de servicemy-service.yaml
est créé dans le répertoire actuel.Le nom de fichier peut avoir l'extension
.yaml
,.yml
, ou.json
. Le choix de.json
crée le fichier du descripteur de service au format JSON.L'option
--namespace test
place le nouveau service dans l'espace de nomstest
.Si vous n'utilisez pas
--namespace
, et que vous êtes connecté à un cluster OpenShift Container Platform, le fichier de descripteurs est créé dans l'espace de noms actuel. Sinon, le fichier de descripteurs est créé dans l'espace de nomsdefault
.
Examinez la structure de répertoire créée :
tree ./
$ tree ./
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Le répertoire actuel
./
spécifié avec--target
contient le nouveau répertoiretest/
qui porte le nom de l'espace de noms spécifié. -
Le répertoire
test/
contient le répertoireksvc
, nommé d'après le type de ressource. -
Le répertoire
ksvc
contient le fichier descripteurevent-display.yaml
, nommé d'après le nom du service spécifié.
-
Le répertoire actuel
Examinez le fichier de descripteurs de service généré :
cat test/ksvc/event-display.yaml
$ cat test/ksvc/event-display.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Liste des informations sur le nouveau service :
kn service describe event-display --target ./ --namespace test
$ kn service describe event-display --target ./ --namespace test
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
Copy to Clipboard Copied! Toggle word wrap Toggle overflow L'option
--target ./
spécifie le répertoire racine de la structure de répertoires contenant les sous-répertoires de l'espace de noms.Vous pouvez également spécifier directement un nom de fichier YAML ou JSON à l'aide de l'option
--target
. Les extensions de fichier acceptées sont.yaml
,.yml
, et.json
.L'option
--namespace
spécifie l'espace de noms, qui communique àkn
le sous-répertoire contenant le fichier de descripteur de service nécessaire.Si vous n'utilisez pas
--namespace
et que vous êtes connecté à un cluster OpenShift Container Platform,kn
recherche le service dans le sous-répertoire portant le nom de l'espace de noms actuel. Sinon,kn
effectue la recherche dans le sous-répertoiredefault/
.
Utilisez le fichier descripteur de service pour créer le service sur le cluster :
kn service create -f test/ksvc/event-display.yaml
$ kn service create -f test/ksvc/event-display.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.1.2. Vérifier le déploiement de votre application sans serveur Copier lienLien copié sur presse-papiers!
Pour vérifier que votre application serverless a été déployée avec succès, vous devez obtenir l'URL de l'application créée par Knative, puis envoyer une requête à cette URL et observer la sortie. OpenShift Serverless prend en charge l'utilisation d'URL HTTP et HTTPS, mais la sortie de oc get ksvc
imprime toujours les URL en utilisant le format http://
.
4.1.2.1. Vérifier le déploiement de votre application sans serveur Copier lienLien copié sur presse-papiers!
Pour vérifier que votre application serverless a été déployée avec succès, vous devez obtenir l'URL de l'application créée par Knative, puis envoyer une requête à cette URL et observer la sortie. OpenShift Serverless prend en charge l'utilisation d'URL HTTP et HTTPS, mais la sortie de oc get ksvc
imprime toujours les URL en utilisant le format http://
.
Conditions préalables
- OpenShift Serverless Operator et Knative Serving sont installés sur votre cluster.
-
Vous avez installé le CLI
oc
. - Vous avez créé un service Knative.
Conditions préalables
-
Installez le CLI OpenShift (
oc
).
Procédure
Recherchez l'URL de l'application :
oc get ksvc -YRFFGUNA nom_du_service>
oc get ksvc -YRFFGUNA nom_du_service>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
NAME URL LATESTCREATED LATESTREADY READY REASON event-delivery http://event-delivery-default.example.com event-delivery-4wsd2 event-delivery-4wsd2 True
NAME URL LATESTCREATED LATESTREADY READY REASON event-delivery http://event-delivery-default.example.com event-delivery-4wsd2 event-delivery-4wsd2 True
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Envoyez une requête à votre cluster et observez le résultat.
Exemple de demande HTTP
curl http://event-delivery-default.example.com
$ curl http://event-delivery-default.example.com
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de demande HTTPS
curl https://event-delivery-default.example.com
$ curl https://event-delivery-default.example.com
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
Hello Serverless!
Hello Serverless!
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Facultatif. Si vous recevez une erreur concernant un certificat auto-signé dans la chaîne de certificats, vous pouvez ajouter le drapeau
--insecure
à la commande curl pour ignorer l'erreur :curl https://event-delivery-default.example.com --insecure
$ curl https://event-delivery-default.example.com --insecure
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
Hello Serverless!
Hello Serverless!
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ImportantLes certificats auto-signés ne doivent pas être utilisés dans un déploiement de production. Cette méthode ne doit être utilisée qu'à des fins de test.
Facultatif. Si votre cluster OpenShift Container Platform est configuré avec un certificat signé par une autorité de certification (CA) mais pas encore configuré globalement pour votre système, vous pouvez le spécifier avec la commande
curl
. Le chemin d'accès au certificat peut être transmis à la commande curl à l'aide de l'indicateur--cacert
:curl https://event-delivery-default.example.com --cacert <file>
$ curl https://event-delivery-default.example.com --cacert <file>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
Hello Serverless!
Hello Serverless!
Copy to Clipboard Copied! Toggle word wrap Toggle overflow