Les Ingress Kourier sont des passerelles légères basées sur Envoy, fournies par la communauté open source Knative. Utilisez Kourier pour répartir le trafic entre les révisions Knative et configurer des services gRPC, des délais d'attente, des nouvelles tentatives, des certificats TLS (Transport Layer Security) ainsi que des services d'autorisation externes.
Prérequis
Avant de commencer, assurez-vous que :
Knative est déployé dans le cluster ACS. Consultez Deploy Knative.
La découverte de services basée sur le DNS est activée pour le cluster. Consultez Présentation du DNS et CoreDNS.
Étape 1 : Déployer un Ingress Kourier
Connectez-vous à la console ACS. Dans le volet de navigation de gauche, cliquez sur Clusters.
Sur la page Clusters, recherchez le cluster à gérer et cliquez sur son ID. Dans le volet de navigation de gauche de la page de détails du cluster, choisissez Applications > Knative.
Dans l'onglet Components, cliquez sur Deploy Knative, sélectionnez Kourier, puis suivez les instructions à l'écran pour terminer le déploiement.
Étape 2 : Accéder à un service via l'Ingress Kourier
Cette section explique comment créer un service Knative nommé helloworld-go et y accéder via HTTP ou HTTPS.
Créer le service helloworld-go
Connectez-vous à la console ACS. Dans le volet de navigation de gauche, cliquez sur Clusters.
Sur la page Clusters, recherchez le cluster à gérer et cliquez sur son ID. Dans le volet de navigation de gauche de la page de détails du cluster, choisissez Applications > Knative.
-
Dans l'onglet Services de la page Knative, définissez le Namespace sur default, cliquez sur Create from Template, copiez le contenu YAML suivant dans l'éditeur de modèle, puis cliquez sur Create.
apiVersion: serving.knative.dev/v1 kind: Service metadata: name: helloworld-go spec: template: spec: containers: - image: registry.cn-hangzhou.aliyuncs.com/knative-sample/helloworld-go:73fbdd56 env: - name: TARGET value: "Knative"Le service est déployé lorsque la colonne Status affiche Created.
Dans l'onglet Services, notez le nom de domaine et l'adresse IP de la passerelle de
helloworld-goindiqués dans les colonnes Default Domain et Gateway.
Accéder au service via HTTP
Exécutez la commande suivante pour accéder au service helloworld-go via HTTP. Remplacez l'adresse IP de la passerelle et le nom de domaine par les valeurs notées.
curl -H "Host: helloworld-go.default.example.com" http://8.141.XX.XX
Résultat attendu :
Hello Knative!
Accéder au service via HTTPS
Les étapes ci-dessous utilisent un certificat auto-signé destiné aux tests. Pour les environnements de production, configurez plutôt un certificat géré automatiquement. Consultez Configure a certificate to access services over HTTPS .
-
Générez un certificat TLS et une clé privée :
openssl genrsa -out tls.key 4096 openssl req -subj "/CN=*.example.com/L=*.example.com" -sha256 -new -key tls.key -out tls.csr echo subjectAltName = DNS:helloworld-go.default.example.com,DNS:helloworld-go.default.example.cn > extfile.cnf openssl x509 -req -days 3650 -sha256 -in tls.csr -signkey tls.key -out tls.crt -extfile extfile.cnf -
Créez un Secret nommé
kourier-certdans le namespaceknative-servingà partir du certificat :kubectl -n knative-serving create secret tls kourier-cert --key tls.key --cert tls.crt -
Vérifiez que le déploiement
net-kourier-controllerexiste dans le namespaceknative-serving:kubectl get deployments -n knative-servingConfirmez que
net-kourier-controllerapparaît bien dans le résultat. -
Configurez le certificat sur le déploiement
net-kourier-controller:kubectl -n knative-serving edit deployment net-kourier-controllerDans l'éditeur, définissez les variables d'environnement suivantes dans la section
envdu conteneurnet-kourier-controller:... spec: containers: - env: - name: CERTS_SECRET_NAMESPACE value: knative-serving - name: CERTS_SECRET_NAME value: kourier-cert ... -
Vérifiez que le pod
net-kourier-controllerest en cours d'exécution :kubectl -n knative-serving get poRésultat attendu :
NAME READY STATUS RESTARTS AGE net-kourier-controller-****** 1/1 Running 0 10s -
Accédez au service
helloworld-govia HTTPS. Remplacez l'adresse IP de la passerelle et le nom de domaine par les valeurs notées.curl -H "Host: helloworld-go.default.example.com" -k --cert tls.crt --key tls.key //8.141.XX.XXRésultat attendu :
Hello Knative!
(Facultatif) Étape 3 : Consulter le tableau de bord de supervision Knative
Knative offre une supervision prête à l'emploi. Sur la page Knative, cliquez sur l'onglet Monitoring Dashboards pour consulter les données de supervision d'un service spécifique. Consultez View the Knative dashboard.
