Configurer Knative serving

Découvrez comment configurer votre installation de Knative serving.

Avant de commencer

Knative serving doit être installé sur votre cluster GKE. Consultez le guide d'installation pour en savoir plus Conditions préalables au cluster GKE et comment installer Knative serving.

Configurer l'authentification avec Workload Identity

Vous pouvez utiliser Workload Identity pour authentifier vos services Knative serving aux 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 des métriques, comme le nombre de requêtes de création de rapports ou la latence des requêtes vous devez définir manuellement les autorisations d'écriture 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 Options de plan de contrôle intégrées au cluster y compris comment configurer un réseau interne privé.

Configurer un réseau interne privé

Le déploiement de services sur un réseau interne est utile pour les entreprises qui fournissent des applications internes à leur personnel et pour les services utilisés par qui s'exécutent 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, vous devez configurer Cloud Service Mesh afin qu'il utilise Équilibrage de charge TCP/UDP interne au lieu d'un équilibreur de charge réseau public externe. Vous pouvez ensuite déployer Knative serving sur une adresse IP interne dans votre Réseau VPC.

Avant de commencer

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

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

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

    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 en utilisant 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 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éployer un service appelé sample sur Knative serving dans le 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 en utilisant 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ée, vous devez gérer et déployer Knative serving sur un cluster Google Kubernetes Engine 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 Architecture mutualisée multiprojets.

Étape suivante