Tous les produits
Search
Centre de documentation

Container Service for Kubernetes:Use the Kourier gateway in Knative

Dernière mise à jour :Aug 11, 2026

Kourier est une passerelle d'entrée légère et open source, native à Knative et basée sur Envoy, fournie par la communauté Knative. Déployez-la pour acheminer le trafic HTTP et HTTPS entre les révisions Knative, configurer des services gRPC, définir des délais d'expiration et des règles de nouvelle tentative, gérer les certificats TLS (Transport Layer Security) et intégrer des services d'autorisation externes.

Prérequis

Avant de commencer, assurez-vous d'avoir :

Déployer la passerelle Kourier

Déployez Kourier lors de l'installation initiale de Knative (via la console ACK) ou après le déploiement (à l'aide de kubectl).

Pour une nouvelle installation de Knative

  1. Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur Clusters.

  2. Sur la page Clusters, cliquez sur le nom de votre cluster. Dans le volet de navigation de gauche, sélectionnez Applications > Knative.

  3. Sous l'onglet Components, localisez Kourier dans la section Add-on Component et cliquez sur Deploy dans la colonne Actions. Dans la boîte de dialogue qui s'affiche, cliquez sur Confirm. L'état de Kourier dans la colonne Status passe à Deployed.

Pour une installation existante de Knative

  1. Exécutez la commande suivante pour ouvrir la ConfigMap config-network dans votre éditeur par défaut :

    kubectl -n knative-serving edit configmap config-network
  2. Dans l'éditeur, repérez la clé ingress.class sous la section data et modifiez sa valeur en kourier.ingress.networking.knative.dev, comme illustré ci-dessous :

    apiVersion: v1
    data:
      ...
      ingress.class: kourier.ingress.networking.knative.dev # Use the Kourier gateway
      ...
    kind: ConfigMap
    metadata:
      name: config-network
      namespace: knative-serving
  3. Enregistrez et fermez le fichier. Kubernetes applique automatiquement la modification.

(Facultatif) Configurer un CLB interne

Par défaut, Kourier crée un Classic Load Balancer (CLB) accessible depuis Internet. Pour utiliser un CLB interne à la place, ajoutez l'annotation service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type: "intranet" au manifeste du service Kourier :

apiVersion: v1
kind: Service
metadata:
  name: kourier
  namespace: knative-serving
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type: "intranet"
  ...
spec:
  ports:
    - name: http2
      port: 80
      protocol: TCP
      targetPort: 8080
    - name: https
      port: 443
      protocol: TCP
      targetPort: 8443
  selector:
    app: 3scale-kourier-gateway
  type: LoadBalancer
La valeur d'annotation par défaut est internet . Définissez-la sur intranet pour basculer vers un CLB interne.

Accéder à un service Knative via la passerelle Kourier

Les étapes suivantes utilisent un exemple de service Knative nommé helloworld-go pour illustrer l'accès HTTP et HTTPS. Commencez par déployer le service, puis choisissez le protocole souhaité.

Les commandes curl ci-dessous transmettent le nom de domaine dans l'en-tête Host car le DNS n'est pas configuré par défaut. Si vous configurez le DNS pour la passerelle, vous pouvez omettre l'option -H "Host:".

Déployer l'exemple de service

  1. Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur Clusters.

  2. Sur la page Clusters, cliquez sur le nom de votre cluster. Dans le volet de navigation de gauche, sélectionnez Applications > Knative.

  3. Sous l'onglet Services, définissez Namespace sur default, cliquez sur Create from Template, collez le code YAML suivant dans l'éditeur et 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"

    Lorsque Status affiche Created, le service est prêt.

  4. Sous l'onglet Services, notez le nom de domaine dans la colonne Default Domain et l'adresse IP de la passerelle dans la colonne Gateway pour le service helloworld-go. Vous aurez besoin de ces valeurs lors des prochaines étapes.

Accès via HTTP

Exécutez la commande suivante en remplaçant l'adresse IP de la passerelle et le nom de domaine par les valeurs que vous avez notées :

curl -H "Host: helloworld-go.default.example.com" http://8.141.XX.XX

Résultat attendu :

Hello Knative!

Accès via HTTPS

Étape 1 : Générer un certificat TLS.

Exécutez les commandes suivantes pour créer un certificat auto-signé :

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

Cette opération génère une clé RSA de 4096 bits et un certificat valable pendant 3650 jours, avec des noms alternatifs de sujet (SAN) pour helloworld-go.default.example.com et helloworld-go.default.example.cn.

Étape 2 : Créer un Secret à partir du certificat.

kubectl -n knative-serving create secret tls kourier-cert --key tls.key --cert tls.crt

Étape 3 : Vérifier l'existence du déploiement net-kourier-controller.

kubectl get deployments -n knative-serving

Étape 4 : Configurer le certificat dans le contrôleur.

kubectl -n knative-serving edit deployment net-kourier-controller

Sous spec.containers[].env, ajoutez les deux variables d'environnement suivantes :

...
spec:
  containers:
  - env:
    - name: CERTS_SECRET_NAMESPACE
      value: knative-serving
    - name: CERTS_SECRET_NAME
      value: kourier-cert
...
Paramètre Description
CERTS_SECRET_NAMESPACE Le namespace où le Secret a été créé (knative-serving)
CERTS_SECRET_NAME Le nom du Secret (kourier-cert)

Étape 5 : Vérifier que le pod du contrôleur est en cours d'exécution.

kubectl -n knative-serving get po

Résultat attendu :

NAME                               READY   STATUS    RESTARTS   AGE
net-kourier-controller-******      1/1     Running   0          10s

Étape 6 : Accéder au service via HTTPS.

curl -H "Host: helloworld-go.default.example.com" -k --cert tls.crt --key tls.key https://8.141.XX.XX

Résultat attendu :

Hello Knative!

(Facultatif) Consulter le tableau de bord de surveillance Knative

Knative intègre une surveillance native. Sur la page Knative, cliquez sur l'onglet Monitoring Dashboards pour consulter les métriques de vos services. Pour obtenir des instructions de configuration, consultez Consulter le tableau de bord de surveillance Knative.

Étapes suivantes