Configurer Knative serving

Découvrez comment configurer et installer votre installation de Knative serving.

Avant de commencer

Vous devez avoir installé Knative serving sur votre cluster GKE. Consultez le guide d'installation pour en savoir plus sur les conditions préalables à l'utilisation des clusters GKE et sur la procédure d'installation de Knative serving.

Configurer l'authentification avec Workload Identity

Vous pouvez utiliser Workload Identity pour authentifier vos services Knative serving auprès des API et services Google Cloud. Vous devez configurer Workload Identity avant de déployer des services sur votre cluster, sinon vous devrez migrer chaque service existant sur votre cluster avant l'activation de Workload Identity. En savoir plus sur l'utilisation de Workload Identity

Activer les métriques avec Workload Identity

Pour activer les métriques, telles que le nombre de requêtes ou la latence des requêtes dans Google Cloud Observability, vous devez définir manuellement les autorisations d'écriture pour Cloud Monitoring. Pour en savoir plus, consultez Activer les métriques avec Workload Identity.

Configurer le protocole HTTPS et des domaines personnalisés

Pour activer le protocole HTTPS et définir un domaine personnalisé, consultez les pages suivantes :

Configurer Cloud Service Mesh

Pour configurer les options Cloud Service Mesh pour Knative serving, consultez la page Options du plan de contrôle dans le cluster, y compris comment configurer un réseau privé interne.

Configurer un réseau interne privé

Le déploiement de services dans un réseau interne est utile pour les entreprises qui proposent des applications internes à leur personnel et pour les services utilisés par des clients exécutés en dehors du cluster Knative serving. Cette configuration permet aux autres ressources de votre réseau de communiquer avec le service via une adresse IP privée interne (RFC 1918) qui n'est pas accessible au public.

Pour créer votre réseau interne, configurez Cloud Service Mesh de manière à utiliser l'équilibrage de charge TCP/UDP interne plutôt qu'un équilibreur de charge réseau externe public. Vous pouvez ensuite déployer vos services Knative serving sur une adresse IP interne au sein de votre réseau VPC.

Avant de commencer

Pour configurer l'équilibreur de charge interne, procédez comme suit :

  1. Activez la fonctionnalité d'équilibreur de charge interne dans Cloud Service Mesh.

    L'équilibreur de charge interne est une fonctionnalité facultative que vous pouvez configurer lors de l'installation Cloud Service Mesh ou en mettant à jour votre installation existante.

    Suivez les étapes de la section Activer les fonctionnalités facultatives sur le plan de contrôle au sein du cluster et veillez à inclure l'option de script --option internal-load-balancer.

    Lorsque vous spécifiez l'option --option internal-load-balancer, le script extrait automatiquement la ressource personnalisée Activer un équilibreur de charge interne à partir de GitHub. Si vous devez modifier la ressource personnalisée, suivez plutôt les instructions pour utiliser l'option --custom_overlay.

  2. Exécutez la commande suivante pour surveiller les mises à jour de votre cluster GKE :

    kubectl -n INGRESS_NAMESPACE get svc istio-ingressgateway --watch
    

    Remplacez INGRESS_NAMESPACE par l'espace de noms de votre service d'entrée Cloud Service Mesh. Spécifiez istio-system si vous avez installé Cloud Service Mesh à l'aide de sa configuration par défaut.

    1. Notez l'annotation cloud.google.com/load-balancer-type: Internal.
    2. Recherchez la valeur de IP dans l'équilibreur de charge d'entrée pour passer à une adresse IP privée.
    3. Appuyez sur Ctrl+C pour arrêter les actualisations lorsque vous voyez une adresse IP privée dans le champ IP.
  3. Pour les clusters privés sur Google Cloud, vous devez ouvrir des ports. Pour en savoir plus, consultez la page Ouvrir des ports sur votre cluster privé dans la documentation Cloud Service Mesh.

Pour vérifier la connectivité interne une fois les modifications effectuées, procédez comme suit :

  1. Déployez un service appelé sample sur Knative serving dans l'espace de noms default :

    gcloud run deploy sample \
    --image gcr.io/knative-samples/helloworld \
    --namespace default
    --platform gke
    
  2. Créez une machine virtuelle (VM) Compute Engine dans la même zone que le cluster GKE :

    VM=cloudrun-gke-ilb-tutorial-vm
    
    gcloud compute instances create $VM
    
  3. Stockez l'adresse IP privée de la passerelle d'entrée Istio dans une variable d'environnement nommée EXTERNAL_IP et un fichier nommé external-ip.txt :

    export EXTERNAL_IP=$(kubectl -n INGRESS_NAMESPACE get svc istio-ingressgateway \
        -o jsonpath='{.status.loadBalancer.ingress[0].ip}' | tee external-ip.txt)
    

    Remplacez INGRESS_NAMESPACE par l'espace de noms de votre service d'entrée Cloud Service Mesh. Spécifiez istio-system si vous avez installé Cloud Service Mesh à l'aide de sa configuration par défaut.

  4. Copiez le fichier contenant l'adresse IP sur la VM :

    gcloud compute scp external-ip.txt $VM:~
    
  5. Connectez-vous à la VM à l'aide de SSH :

    gcloud compute ssh $VM
    
  6. Dans la session SSH, testez l'exemple de service :

    curl -s -w'\n' -H Host:sample.default.nip.io $(cat external-ip.txt)
    

    Voici le résultat :

    Hello World!
    
  7. Quittez la session SSH :

    exit
    

Configurer un environnement mutualisé

Dans les cas d'utilisation mutualisés, vous devez gérer et déployer les services Knative serving sur un cluster Google Kubernetes Engine situé en dehors de votre projet actuel. Pour en savoir plus sur l'architecture mutualisée de GKE, consultez la page Architecture de cluster mutualisée.

Pour savoir comment configurer l'architecture mutualisée pour Knative serving, consultez la page Architecture mutualisée et multi-projets.

Étape suivante