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
etkubectl
. 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
- Version 346.0.0 ou ultérieure de
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.
Pour utiliser Cloud Shell, ouvrez Cloud Shell dans la console Google Cloud :
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.
Créez les variables d'environnement requises suivantes :
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.
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 nomsgke-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.
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
Identifiez l'adresse IP externe configurée pour gérer le trafic via l'enregistrement DNS de votre domaine personnalisé :
Accédez à la page "Mappages de domaine Knative serving" :
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 :
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 serviceistio-ingressgateway
.
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.
Configurez la CLI Google Cloud :
gcloud config set project ${PROJECT_ID} gcloud container clusters get-credentials ${CLUSTER_NAME} --region ${CLUSTER_LOCATION}
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'autorisationmaster-authorized-networks
:gcloud container clusters update ${CLUSTER_NAME} \ --region=${CLUSTER_LOCATION} \ --enable-master-authorized-networks \ --master-authorized-networks $(curl ifconfig.me)/32
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
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.