Configurer et préparer l'environnement pour la mise à niveau

Préparez la mise à niveau de votre installation précédente de Knative serving et migrez vos charges de travail en configurant votre environnement de ligne de commande, en créant des variables d'environnement et en téléchargeant le script de migration.

Avant de commencer

  • Vous devez d'abord vérifier que vous remplissez les conditions requises pour la mise à niveau.

  • Par défaut, Cloud Shell inclut les dernières versions des commandes gcloud et kubectl. Si vous choisissez d'utiliser l'environnement de ligne de commande de votre machine locale, vous devez vous assurer que vous remplissez les conditions minimales suivantes :

    • Version 346.0.0 ou ultérieure de gcloud
    • Version 1.21 ou ultérieure du client kubectl

    En savoir plus sur la configuration de vos outils de ligne de commande

  • Les étapes de préparation de cette page sont nécessaires tout au long du processus de mise à niveau et de migration.

    Important : Toutes les commandes utilisées au cours du processus dépendent des variables d'environnement que vous avez définies ci-dessous. Par exemple, si vous fermez Cloud Shell ou que votre session expire, vous devez vous assurer que les variables d'environnement requises sont réinitialisées.

Configurez votre environnement.

  1. Pour utiliser Cloud Shell, ouvrez Cloud Shell dans la console Google Cloud :

    Activer Cloud Shell

    Important : Cloud Shell présente des limites d'utilisation et la session peut expirer. Si votre session expire, vous devez vous assurer que les variables d'environnement requises sont réinitialisées.

  2. Créez les variables d'environnement requises suivantes :

    1. Définissez des variables pour votre projet Google Cloud et les détails de votre cluster :

      export PROJECT_ID=PROJECT_ID
      export CLUSTER_NAME=CLUSTER_NAME
      export CLUSTER_LOCATION=CLUSTER_LOCATION
      

      Remplacez les éléments suivants :

      • PROJECT_ID par l'ID de votre projet Google Cloud.
      • CLUSTER_NAME par l'ID de votre cluster ou l'identifiant complet du cluster.
      • CLUSTER_LOCATION par la région ou la zone dans laquelle se trouve votre cluster.
    2. Selon votre configuration, vous devez identifier la passerelle d'entrée qui gère le trafic dans votre cluster. Il est important d'identifier la version d'Istio actuellement configurée et diffusant le trafic.

      • Si vous utilisez la version groupée d'Istio, vérifiez que le nom du service d'entrée est istio-ingress dans l'espace de noms gke-system :

        kubectl get svc istio-ingress -n gke-system
        

        Résultat : les détails de votre configuration sont renvoyés.

      • Si vous avez installé le module complémentaire Istio, vous devez déterminer quelle passerelle d'entrée est configurée et gère activement le trafic en obtenant les adresses IP des services afin d'identifier celle qui est configurée pour votre domaine.

        1. Obtenez l'adresse EXTERNAL-IP pour chaque service d'entrée :

          Exécutez les commandes suivantes pour obtenir les détails de configuration des deux services d'entrée, à savoir la "version groupée d'Istio" (istio-ingress) et le "module complémentaire Istio" (istio-ingressgateway) :

          kubectl get svc istio-ingress -n gke-system
          kubectl get svc istio-ingressgateway -n istio-system
          

          Exemple de résultat :

          Notez la valeur d'EXTERNAL-IP pour chaque service.

           NAME                 TYPE         CLUSTER-IP  EXTERNAL-IP    PORT(S)                                     AGE
           istio-ingress        LoadBalancer 11.11.1.111 12.345.678.910 15020:31265/TCP,80:30059/TCP,443:32004/TCP  8d
          
           NAME                 TYPE         CLUSTER-IP  EXTERNAL-IP    PORT(S)                                                                     AGE
           istio-ingressgateway LoadBalancer 22.22.2.222 10.987.654.321 15021:32747/TCP,80:30695/TCP,443:32695/TCP,15012:32369/TCP,15443:30909/TCP  88d
          
        2. Identifiez l'adresse IP externe configurée pour gérer le trafic via l'enregistrement DNS de votre domaine personnalisé :

          1. Accédez à la page "Mappages de domaine Knative serving" :

            Accéder aux mappages de domaines

          2. Cliquez sur l'icône d'ellipse verticale à trois points située à droite de votre service, puis cliquez sur DNS RECORDS (Enregistrements DNS) pour afficher tous les enregistrements DNS :

            sélectionner les enregistrements DNS

            Dans l'exemple ci-dessus, la passerelle d'entrée du module complémentaire Istio est utilisée et achemine le trafic si la configuration de l'enregistrement DNS est définie sur l'adresse IP 10.987.654.321 du service istio-ingressgateway.

    3. Définissez des variables pour le nom et l'espace de noms du service d'entrée qui diffuse le trafic pour votre cluster :

      export INGRESS_NAME=INGRESS_NAME
      export INGRESS_NAMESPACE=INGRESS_NAMESPACE
      

      Remplacez les éléments suivants :

      • INGRESS_NAME par le nom du service d'entrée que vous avez identifié à l'étape précédente.

      • INGRESS_NAMESPACE par l'espace de noms du service d'entrée que vous avez identifié à l'étape précédente.

  3. Configurez la CLI Google Cloud :

    gcloud config set project ${PROJECT_ID}
    gcloud container clusters get-credentials ${CLUSTER_NAME} --region ${CLUSTER_LOCATION}
    
  4. Pour les clusters privés, procédez comme suit :

    • Si vous avez déjà accès à votre cluster privé à partir du client dans lequel vous exécuterez le script de migration, vous pouvez passer à l'étape suivante.

    • Si master-authorized-network est activé sur votre cluster privé, vous pouvez activer l'accès depuis le client dans lequel vous exécuterez le script de migration en ajoutant l'adresse IP du client à la liste d'autorisation master-authorized-networks :

      gcloud container clusters update ${CLUSTER_NAME} \
          --region=${CLUSTER_LOCATION} \
          --enable-master-authorized-networks \
          --master-authorized-networks $(curl ifconfig.me)/32
      
  5. Téléchargez le script de migration de Knative serving :

    TMP_DIR=$(mktemp -d)
    gcloud storage cp gs://crfa-to-hub-upgrade/migration-addon.sh $TMP_DIR
    cd $TMP_DIR
    chmod +x ./migration-addon.sh
    
  6. Exécutez la commande suivante pour désactiver le "scaling à zéro instance". Sinon, le scaling échouera et entraînera des erreurs lorsque le nœud maître sera mis à jour :

    kubectl patch cm config-autoscaler -n knative-serving -p '{"data":{"enable-scale-to-zero": "false"}}'
    

    Notez que la dernière étape de ce processus de mise à niveau et de migration consiste à réactiver le "scaling à zéro instance".

Étape suivante

Désinstallez le module complémentaire GKE.