Fin de la maintenance du canal semi-annuel Windows Server


Cette page fournit des informations sur la fin de la maintenance des types d'images de nœuds SAC (Semi-Annual Channel, canal semi-annuel) Windows Server dans les clusters standards de Google Kubernetes Engine (GKE). Pour obtenir des instructions sur la migration vers des images de nœud compatibles, consultez la section Migrer vers des images Windows compatibles.

À propos de la suppression de SAC Windows Server

Microsoft va supprimer le canal semi-annuel Windows Server le 9 août 2022. Cette suppression coïncide avec la fin de la maintenance pour Windows Server version 20H2. Windows Server utilise le canal de maintenance à long terme (LTSC, Long-Term Servicing Channel) en tant que canal de publication principal. Avec ce changement, Microsoft ne publiera plus de mises à jour critiques, y compris de mises à jour de sécurité, pour les images SAC Windows Server. Par conséquent, GKE ne peut plus assurer la compatibilité de ces images.

GKE Standard ne vous permettra plus de créer des pools de nœuds utilisant les types d'images SAC Windows Server. Si vous utilisez l'un des types d'images suivants dans vos pools de nœuds existants, vous devez migrer vers un type d'image compatible si vous souhaitez mettre à jour votre version de GKE.

  • windows_sac : Option SAC Windows Server avec Docker
  • windows_sac_containerd : option SAC Windows Server avec containerd

Vos pools de nœuds SAC Windows Server existants continueront de fonctionner comme prévu après le 9 août 2022. Toutefois, vous risquez d'exposer ces nœuds à des failles de sécurité et à une instabilité des plates-formes en raison de l'absence de mises à jour futures pour SAC.

Chronologie et jalons

Après le 9 août 2022, vous ne pourrez plus effectuer les opérations suivantes :

  • Créer des clusters utilisant des images de nœud SAC Windows Server
  • Créer des pools de nœuds utilisant des images de nœud SAC Windows Server
  • Activer le provisionnement automatique des nœuds en définissant l'option --autoprovisioning-image-type sur windows_sac ou windows_sac_containerd
  • Mettre à niveau la version GKE des nœuds SAC Windows Server existants

Que devriez-vous faire ?

Nous vous recommandons de migrer vos pools de nœuds SAC Windows Server vers le type d'image de nœud windows_ltsc_containerd. Dans GKE version 1.23 ou ultérieure, il s'agit du seul type d'image Windows Server compatible avec les nouveaux clusters et pools de nœuds.

Le type d'image windows_ltsc, qui utilise Docker comme environnement d'exécution de conteneur, n'est pas compatible avec GKE version 1.23 ou ultérieure en raison de l'abandon des images de nœud Docker.

Selon votre version actuelle de GKE, procédez comme suit :

  • GKE version 1.20 et antérieure : migrez vos pools de nœuds vers l'image windows_ltsc.
  • GKE version 1.21 et ultérieure : migrez vos pools de nœuds vers l'image windows_ltsc_containerd.

Impact de la migration

Si vous utilisez actuellement l'image windows_sac, qui dispose de Docker comme environnement d'exécution de conteneur, la migration vers le type d'image windows_ltsc_containerd peut avoir un impact sur tous les outils existants qui dépendent des commandes Docker. Pour en savoir plus sur l'impact potentiel de la migration vers un type d'image utilisant containerd, consultez la liste des cas de figure dans la section À propos de l'abandon des images de nœuds Docker.

Migrer vers LTSC Window Server

Ce processus comprend les étapes suivantes :

  1. Identifier les images de conteneurs pour les mises à jour d'architecture
  2. Créer des images de conteneurs Windows multi-arch
  3. Mettre à jour les pools de nœuds existants vers le système LTSC Windows Server

Identifier les images de conteneurs pour les mises à jour d'architecture

Les images de conteneurs à architecture unique exécutées sur SAC Windows Server ne sont pas compatibles avec les images LTSC Windows Server. Vous devez identifier les images de conteneurs incompatibles et vous préparer à mettre à jour leur architecture. Si vous disposez d'images multi-arch, vous devez les inspecter pour vous assurer qu'elles sont compatibles avec la variante LTSC de Windows Server 2019, dont le numéro de version est 10.0.17763.X.

Images à architecture unique

Pour inspecter la version de Windows compatible, exécutez la commande suivante à partir d'un nœud SAC Windows Server où le pod est en cours d'exécution :

docker image inspect IMAGE_NAME

Remplacez IMAGE_NAME par le nom de l'image de conteneur.

Si l'image est compatible avec la variante SAC de Windows Server, le résultat ressemble à ce qui suit :

[
  {
    ...
    "Architecture": "amd64",
    "Os": "windows",
    "OsVersion": "10.0.19042.1645" // 1645 can be any build number
  }
]

Si l'image est compatible avec la variante LTSC de Windows Server, le résultat ressemble à ce qui suit :

[
  {
    ...
    "Architecture": "amd64",
    "Os": "windows",
    "OsVersion": "10.0.17763.2686" // 2686 can be any build number
  }
]

Images multi-arch

Si vous utilisez déjà des images de conteneur Windows multi-arch, inspectez-les pour vous assurer qu'elles sont compatibles avec la variante LTSC de Windows Server 2019, dont le numéro de version est 10.0.17763.X.

docker manifest inspect MANIFEST_NAME

Remplacez MANIFEST_NAME par le nom de votre fichier manifeste Docker, par exemple eu.gcr.io/gke-release-staging/internet-explorer:v2.

Le résultat ressemble à ce qui suit :

{
  {
    "mediaType": "application/vnd.docker.distribution.manifest.v2+json",
    "size": 1575,
    "digest": "...",
    "platform": {
        "architecture": "amd64",
        "os": "windows",
        "os.version": "10.0.17763.1935"

  }
}

Créer des images de conteneurs Windows multi-arch

Après avoir identifié les images nécessitant des mises à jour compatibles avec la variante LTSC de Windows Server 2019, nous vous recommandons de créer des images Windows Server de type multi-arch.

La création d'images multi-arch garantit que vos conteneurs s'exécutent sur n'importe quelle version de Windows proposée par GKE. Les images multi-arch facilitent la migration, car containerd détecte la version LTSC de Windows Server sur vos pools de nœuds migrés et choisit l'image appropriée dans votre fichier manifeste.

Vous pouvez créer ces images manuellement ou à l'aide de l'outil gke-windows-builder de Cloud Build. Nous recommandons le compilateur Cloud Build qui est régulièrement mis à jour pour assurer la compatibilité avec les nouvelles images LTSC Windows Server dès qu'elles sont disponibles. Pour obtenir des instructions manuelles et Cloud Build sur les images multi-arch, consultez la page Créer des images multi-arch Windows Server.

Mettre à niveau les nœuds vers LTSC Windows Server

Une fois vos images de conteneur mises à jour compatibles avec la variante LTSC de Windows Server, migrez vos pools de nœuds vers l'image de nœud LTSC de Windows Server. Nous vous recommandons vivement de tester la migration dans un cluster de préproduction ou de test pour vous assurer que vos déploiements fonctionnent comme prévu avant de mettre à niveau votre environnement de production. Pour mettre à jour votre image, effectuez l'une des opérations suivantes :

  • Créer des pools de nœuds et migrer les charges de travail vers les nouveaux nœuds
  • Mettre à niveau le type d'image sur vos pools de nœuds existants

Créer des pools de nœuds

  1. Créez un pool de nœuds :

    gcloud container node-pools create NODE_POOL_NAME \
        --cluster=CLUSTER_NAME \
        --image-type=WINDOWS_LTSC_IMAGE
    

    Remplacez les éléments suivants :

    • NODE_POOL_NAME : nom de votre nouveau pool de nœuds.
    • CLUSTER_NAME : nom de votre cluster GKE.
    • WINDOWS_LTSC_IMAGE : image LTSC Windows Server à utiliser, qui peut être windows_ltsc_containerd ou windows_ltsc.
  2. Ajoutez le sélecteur de nœuds suivant aux fichiers manifestes de vos charges de travail :

    spec:
      ...
      nodeSelector:
        kubernetes.io/os: windows
        cloud.google.com/gke-os-distribution: windows_ltsc
    

    Vous pouvez également utiliser ce sélecteur de nœuds avec windows_sac comme valeur de libellé pour indiquer à GKE d'éviter de planifier des pods spécifiques sur les nouveaux nœuds.

  3. Déployez vos fichiers manifestes mis à jour :

    kubectl apply -f MANIFEST_NAME
    
  4. Redimensionnez votre ancien pool de nœuds en le réduisant à zéro :

    gcloud container node-pools update OLD_POOL \
        --cluster=CLUSTER_NAME \
        --min-nodes=0 \
        --max-nodes=NODE_COUNT
    

    Remplacez les éléments suivants :

    • OLD_POOL : nom de votre pool de nœuds SAC Windows Server existant.
    • NODE_COUNT : nombre maximal de nœuds dans le pool de nœuds. Réduisez progressivement ce nombre à 0 en répétant cette commande. Si vous rencontrez des problèmes, augmentez cette valeur.
  5. Une fois la migration terminée, supprimez l'ancien pool de nœuds :

    gcloud container node-pools delete OLD_POOL \
        --cluster=CLUSTER_NAME
    

Mettre à jour les pools de nœuds existants

  1. Basculez le type d'image de nœud sur vos pools de nœuds SAC Windows Server existants :

    gcloud container clusters upgrade CLUSTER_NAME \
        --region=COMPUTE_REGION \
        --node-pool=NODE_POOL \
        --image-type=WINDOWS_LTSC_IMAGE
    

    Remplacez les éléments suivants :

    • CLUSTER_NAME : nom de votre cluster GKE.
    • COMPUTE_REGION : région Compute Engine du cluster. Pour les clusters zonaux, utilisez --zone=COMPUTE_ZONE.
    • NODE_POOL : nom de votre pool de nœuds SAC Windows Server.
    • WINDOWS_LTSC_IMAGE : image LTSC Windows Server à utiliser, qui peut être windows_ltsc_containerd ou windows_ltsc.

Étapes suivantes