Acheminez le trafic HTTP, HTTPS et QUIC vers les services Knative à l'aide d'un ALB Ingress. ALB fournit un service d'équilibrage de charge de couche 7 entièrement géré et sans maintenance, avec mise à l'échelle automatique et répartition du trafic pour les applications nécessitant un routage fin.
Prérequis
Vous avez déployé Knative dans le cluster ACS.
Le contrôleur ALB Ingress est installé.
Étape 1 : Déployer l'ALB Ingress
Déployez un ALB Ingress en créant une nouvelle instance ALB ou en utilisant une instance existante.
Créer automatiquement une instance ALB
Configurez l'ALB Ingress lors du déploiement initial de Knative ou en modifiant le fichier de configuration d'un déploiement existant.
Lors du déploiement
Connectez-vous à la console ACS. Dans le volet de navigation de gauche, cliquez sur Clusters.
Sur la page Clusters, cliquez sur le nom du cluster cible. Dans le volet de navigation de gauche, choisissez .
-
Sous l'onglet Add-ons, cliquez sur Deploy Knative. Sur la page de déploiement, sélectionnez ALB comme passerelle de service, choisissez au moins deux vSwitch et suivez les instructions à l'écran pour déployer Knative.
Pour créer un vSwitch, consultez la rubrique Créer un vSwitch.
Modifier le fichier de configuration
Pour configurer l'ALB Ingress pour un déploiement existant, modifiez le fichier de configuration Knative. Pour déployer Knative, suivez les instructions de la rubrique Déployer Knative.
-
Exécutez la commande suivante pour modifier le fichier
config-network.yaml.kubectl -n knative-serving edit configmap config-network -
Modifiez et enregistrez le fichier
config-network.yamlcomme suit.Modifiez
ingress.class: alb.ingress.networking.knative.devet définissezvswitch-ids, puis enregistrez et fermez le fichierconfig-networkpour terminer la configuration de la passerelle ALB. Pour obtenir la liste des régions et des zones prises en charge par ALB, consultez la rubrique Régions et zones prises en charge par ALB.apiVersion: v1 data: ... ingress.class: alb.ingress.networking.knative.dev # Indicates that ALB is used as the Ingress controller. vswitch-ids: vsw-uf6kbvc7mccqia2pi****,vsw-uf66scyuw2fncpn38**** # Replace with the IDs of two vSwitches that you have created in different zones. The system automatically binds these vSwitches when creating the ALB. intranet: "true" # Also creates an internal-facing ALB instance. internet: "true" # Default: true, indicates that an internet-facing ALB instance is created. If set to false, no internet-facing ALB is created. ... kind: ConfigMap metadata: name: config-network namespace: knative-serving ...ImportantSi seule l'instance ALB interne est activée, le service Knative doit être configuré pour un accès interne uniquement. Pour ce faire, définissez le libellé
networking.knative.dev/visibility: cluster-local.
Utiliser une instance ALB existante
Pour utiliser une instance ALB existante, modifiez le fichier de configuration Knative.
-
Exécutez la commande suivante pour modifier le fichier
config-network.yaml.kubectl -n knative-serving edit configmap config-network -
Modifiez et enregistrez le fichier
config-network.yamlcomme suit.Dans le fichier de configuration, modifiez
ingress.class: alb.ingress.networking.knative.devet définissezalbconfigsur une instance ALB existante. Dans ce cas, il n'est pas nécessaire de configurervswitch-ids.apiVersion: v1 data: ... ingress.class: alb.ingress.networking.knative.dev # Indicates that ALB is used as the Ingress controller. albconfig: alb-dev-albconfig # Specify and reuse the name of an existing internet-facing ALBConfig. intranet-albconfig: alb-dev-intranet-albconfig # Specify and reuse the name of an existing internal-facing ALBConfig. ... kind: ConfigMap metadata: name: config-network namespace: knative-serving ...
Étape 2 : Accéder au service via l'ALB Ingress
Connectez-vous à la console ACS. Dans le volet de navigation de gauche, cliquez sur Clusters.
Sur la page Clusters, cliquez sur le nom du cluster cible. Dans le volet de navigation de gauche, choisissez .
-
Sur la page Knative, cliquez sur l'onglet Services, sélectionnez default dans le menu déroulant Namespace, cliquez sur Create from Template, collez l'exemple YAML suivant dans le modèle, puis cliquez sur Create.
L'exemple YAML suivant crée un service Knative nommé
helloworld-go.apiVersion: serving.knative.dev/v1 kind: Service metadata: name: helloworld-go spec: template: spec: containers: - image: registry-vpc.cn-beijing.aliyuncs.com/knative-sample/helloworld-go:73fbdd56 # Replace the region with the actual region you use. env: - name: TARGET value: "Knative" Sur la page Services, récupérez le domaine et l'adresse de la passerelle du service
helloworld-goà partir des colonnes Default Domain et Access Gateway respectivement.-
Exécutez la commande suivante pour accéder au service
helloworld-go.curl -H "Host: helloworld-go.default.example.com" http://alb-******.cn-beijing.alb.aliyuncs.com # Replace with the actual gateway IP and domain.Résultat attendu :
Hello Knative!
(Facultatif) Étape 3 : Afficher les données de surveillance du service
Knative intègre des fonctionnalités d'observabilité. Sur la page Knative, cliquez sur l'onglet Monitoring Dashboards pour afficher les données de surveillance. Consultez la rubrique Afficher le tableau de bord de surveillance des services Knative.

Documentation connexe
Activez un domaine personnalisé pour votre service Knative. Consultez la rubrique Utiliser un domaine personnalisé.
Configurez un certificat HTTPS pour votre service Knative. Consultez la rubrique Configurer un certificat HTTPS.
Déployez un service gRPC dans Knative pour améliorer l'efficacité du réseau. Consultez la rubrique Déployer un service gRPC dans Knative.
Configurez une sonde pour surveiller l'état de santé de votre service Knative. Consultez la rubrique Configurer une sonde de port dans Knative.