Migrer le service Istio groupé vers Cloud Service Mesh

Ces étapes sont spécifiques à la version groupée d'Istio incluse par défaut avec le module complémentaire GKE de diffusion Knative.

Étant donné que la version groupée d'Istio a été désinstallée lorsque vous avez effectué le processus de désinstallation du module complémentaire GKE de diffusion Knative, les étapes décrites sur cette page permettent d'installer Cloud Service Mesh sur votre cluster, puis de configurer votre passerelle d'entrée.

Avant de commencer

Présentation

En général, le processus d'installation de Cloud Service Mesh lors de la migration à partir de la version intégrée d'Istio est identique à celui d'une installation propre de Cloud Service Mesh. Au cours de ce processus, la version 1.18 de Cloud Service Mesh est installée avec le plan de contrôle dans le cluster.

Installer Cloud Service Mesh version 1.18

Utilisez la documentation de Cloud Service Mesh pour installer Cloud Service Mesh.

Avant de commencer :

  • Pour la migration, la passerelle d'entrée doit être installée séparément lors des étapes de configuration suivantes. Le script d'installation n'installe pas la passerelle d'entrée par défaut.

  • Facultatif: Si vous utilisez l'autorité de certification Cloud Service Mesh, vous devez également inclure l'option --ca mesh_ca avec le script d'installation de Cloud Service Mesh.

Pour installer Cloud Service Mesh:

Suivez les étapes décrites dans la documentation de Cloud Service Mesh : Installer Cloud Service Mesh version 1.18.

Exemple

Voici un exemple de commande par défaut qui inclut l'option requise :

./asmcli install \
  --project_id ${PROJECT_ID} \
  --cluster_name ${CLUSTER_NAME} \
  --cluster_location ${CLUSTER_LOCATION} \
  --ca mesh_ca \
  --output_dir DIR_PATH \
  --enable_all

Configurer l'entrée Cloud Service Mesh

Dans cette section, le script de migration permet de créer la passerelle d'entrée Cloud Service Mesh dans l'espace de noms gke-system.

Pour la migration, l'espace de noms gke-system est utilisé de manière à ce que la passerelle d'entrée soit placée dans le même espace de noms que celui utilisé par la "version groupée d'Istio" récemment supprimée. Par conséquent, les pods d'entrée Cloud Service Mesh peuvent prendre le contrôle du trafic de manière transparente sans aucune modification de la configuration requise au niveau du service d'entrée. Par exemple, vous n'avez pas besoin de configurer une nouvelle adresse IP externe.

  1. Pour créer la passerelle d'entrée dans l'espace de noms gke-system, exécutez la commande suivante pour démarrer le script de migration :

    ./migration-addon.sh --command set-up-asm-ingress
    

    La sortie du terminal se présente comme suit :

    Setting up Cloud Service Mesh ingress. Note that the Cloud Service Mesh ingress is not
    serving traffic at this step.
    namespace/gke-system labeled
    deployment.apps/istio-ingressgateway created
    horizontalpodautoscaler.autoscaling/istio-ingressgateway created
    role.rbac.authorization.k8s.io/istio-ingressgateway-sds created
    rolebinding.rbac.authorization.k8s.io/istio-ingressgateway-sds created
    Cloud Service Mesh ingress is successfully installed.
    
  2. Vérifiez que la passerelle d'entrée istio-ingrerssgateway s'exécute dans l'espace de noms gke-system en exécutant la commande suivante :

    kubectl get deployment istio-ingressgateway -n gke-system
    

    Notez que le nombre de pods istio-ingressgateway est intentionnellement égal à 0. Après avoir installé le composant de parc de diffusion Knative, vous devez migrer tout le trafic vers l'entrée Cloud Service Mesh.

Étapes suivantes

Installer le composant de parc

Rollback

Si vous devez effectuer un rollback des modifications apportées lors des étapes précédentes, vous pouvez utiliser le script de migration pour:

  • Supprimez la passerelle d'entrée Cloud Service Mesh.
  • Désinstallez Cloud Service Mesh.

Pour effectuer un rollback de la configuration et de l'installation de Cloud Service Mesh, procédez comme suit:

  1. Exécutez la commande suivante pour démarrer le rollback.

    ./migration-addon.sh --command rollback-set-up-asm-ingress
    

    La sortie du terminal se présente comme suit :

    Deleting Cloud Service Mesh ingress
    deployment.apps "istio-ingressgateway" deleted
    horizontalpodautoscaler.autoscaling "istio-ingressgateway" deleted
    role.rbac.authorization.k8s.io "istio-ingressgateway-sds" deleted
    rolebinding.rbac.authorization.k8s.io "istio-ingressgateway-sds" deleted
    Cloud Service Mesh ingress is successfully deleted.
    
  2. Pour vérifier que la passerelle d'entrée Cloud Service Mesh a été supprimée, vérifiez que le service istio-ingressgateway n'existe plus dans l'espace de noms gke-system:

    kubectl get deployment istio-ingressgateway -n gke-system
    
  3. Désinstaller Cloud Service Mesh

  4. Pour poursuivre le rollback de toutes les modifications apportées à l'état d'origine de votre installation, effectuez un rollback du module complémentaire GKE de diffusion Knative.