Fim da manutenção do Canal Semestral do Windows Server


Nesta página, você encontra informações sobre o fim dos serviços para tipos de imagem de nó semestral (SAC) do Windows Server nos clusters Standard do Google Kubernetes Engine (GKE). Para instruções sobre como migrar para imagens de nós compatíveis, consulte Migrar para imagens compatíveis do Windows.

Sobre a remoção de SAC do Windows Server

A Microsoft vai desativar o Canal Semestral do Windows Server em 9 de agosto de 2022. Isso coincide com o fim do serviço do Windows Server, versão 20H2. O Windows Server usará o canal de manutenção de longo prazo (LTSC) como o principal. Com essa mudança, a Microsoft não lançará mais atualizações críticas, incluindo atualizações de segurança, para imagens SAC do Windows Server. Como resultado, o GKE não oferece mais suporte a essas imagens.

O GKE Standard não permitirá mais a criação de novos pools de nós que usam tipos de imagem do SAC do Windows Server. Se você usar um dos tipos de imagem a seguir nos pools de nós atuais, será necessário migrar para um tipo de imagem compatível se quiser fazer upgrade da sua versão do GKE.

  • windows_sac: Windows Server SAC com Docker
  • windows_sac_containerd: Windows Server SAC com Containerd

Os pools de nós SAC do Windows Server continuarão funcionando conforme esperado após 9 de agosto de 2022. No entanto, você corre o risco de expor esses nós a vulnerabilidades de segurança e instabilidade da plataforma devido à falta de atualizações futuras para o SAC.

Cronograma e marcos

Após 9 de agosto de 2022, não será mais possível fazer o seguinte:

  • Criar novos clusters que usem imagens de nó SAC do Windows Server.
  • Criar novos pools de nós que usam imagens de nó SAC do Windows Server.
  • Ative o provisionamento automático de nós com a sinalização --autoprovisioning-image-type definida como windows_sac ou windows_sac_containerd.
  • Faça upgrade da versão do GKE dos nós SAC do Windows Server.

O que você deve fazer?

Recomendamos que você migre os pools de nós SAC do Windows Server para o tipo de imagem de nó windows_ltsc_containerd. No GKE versão 1.23 e posterior, esse é o único tipo de imagem do Windows Server compatível com novos clusters e pools de nós.

O tipo de imagem windows_ltsc, que usa o Docker como ambiente de execução do contêiner, não é compatível com o GKE versão 1.23 e posterior devido à descontinuação de imagens de nó do Docker.

Dependendo da versão atual do GKE, faça o seguinte:

  • GKE versão 1.20 e anteriores: migre os pools de nós para a imagem windows_ltsc.
  • GKE versão 1.21 e mais recentes: migre seus pools de nós para a imagem windows_ltsc_containerd.

Impacto da migração

Se você usa a imagem windows_sac, que tem o Docker como ambiente de execução do contêiner, a migração para o tipo de imagem windows_ltsc_containerd pode afetar qualquer uma das ferramentas atuais que depende dos comandos do Docker. Para informações sobre o possível impacto da migração para um tipo de imagem que usa o containerd, consulte a lista de situações em Sobre a descontinuação de imagens de nó do Docker.

Migrar para o Windows Server LTSC

O processo consiste nas etapas a seguir.

  1. Identificar imagens de contêiner para atualizações de arquitetura
  2. Criar imagens de contêiner do Windows de vários arcos
  3. Atualizar pools de nós para o Windows Server LTSC

Identificar imagens de contêiner para atualizações de arquitetura

As imagens de contêiner de arquitetura única em execução no Windows Server SAC não são compatíveis com as imagens LTSC do Windows Server. Será necessário identificar imagens de contêiner incompatíveis e preparar-se para atualizar a arquitetura. Se você tiver imagens de várias arquiteturas, inspecione-as para garantir que as imagens ofereçam suporte à variante Windows 2019 LTSC, que tem o número de versão 10.0.17763.X.

Imagens de arco único

Para inspecionar a versão compatível do Windows, execute o seguinte comando em um nó SAC do Windows Server em que o pod está em execução:

docker image inspect IMAGE_NAME

Substitua IMAGE_NAME pelo nome da imagem de contêiner.

Se a imagem for compatível com a variante SAC do Windows Server, a saída será semelhante a esta:

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

Se a imagem for compatível com a variante LTSC do Windows Server, a saída será semelhante a esta:

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

Imagens de vários arcos

Se você já usa imagens de contêiner do Windows de vários arcos, inspecione as imagens para garantir que elas sejam compatíveis com a variante LTSC do Windows Server 2019, que tem o número de versão 10.0.17763.X.

docker manifest inspect MANIFEST_NAME

Substitua MANIFEST_NAME pelo nome do manifesto do Docker, como eu.gcr.io/gke-release-staging/internet-explorer:v2.

O resultado será assim:

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

  }
}

Criar imagens de contêiner do Windows de vários arcos

Depois de identificar todas as imagens que precisam de atualizações para serem compatíveis com a variante LTSC do Windows Server 2019, recomendamos que você crie imagens de vários servidores do Windows Server.

A criação de imagens de vários arcos garante que os contêineres sejam executados em qualquer versão do Windows oferecida pelo GKE. As imagens de vários arcos facilitam a experiência de migração porque o containerd detecta a versão do Windows Server LTSC nos pools de nós migrados e escolhe a imagem apropriada do manifesto.

É possível criar essas imagens manualmente ou usando o gke-windows-builder do Cloud Build. Recomendamos o builder do Cloud Build, que é atualizado regularmente para oferecer suporte às novas imagens LTSC do Windows Server à medida que são disponibilizadas. Para instruções manuais e do Cloud Build sobre imagens de vários arcos, consulte Como criar imagens de vários arcos do Windows Server.

Fazer upgrade dos nós para o Windows Server LTSC

Depois de atualizar as imagens de contêiner para oferecer suporte à variante LTSC do Windows Server, migre os pools de nós para a imagem LTSC do Windows Server. Recomendamos que você teste a migração em um cluster de teste ou de preparo para garantir que suas implantações funcionem conforme o esperado antes de fazer upgrade do ambiente de produção. Para atualizar sua imagem, siga um destes procedimentos:

  • Criar novos pools de nós e migrar cargas de trabalho para os novos nós
  • Atualizar o tipo de imagem nos pools de nós atuais

Criar novos pools de nós

  1. Criar um novo pool de nós

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

    Substitua:

    • NODE_POOL_NAME: o nome do novo pool de nós.
    • CLUSTER_NAME: o nome do cluster do GKE.
    • WINDOWS_LTSC_IMAGE: a imagem LTSC do Windows Server a ser usada, que pode ser windows_ltsc_containerd ou windows_ltsc.
  2. Adicione o nodeSelector a seguir aos manifestos da carga de trabalho:

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

    Também é possível usar esse nodeSelector com windows_sac como o valor do rótulo para dizer ao GKE para evitar a programação de pods específicos nos novos nós.

  3. Implante seus manifestos atualizados:

    kubectl apply -f MANIFEST_NAME
    
  4. Escalone o pool de nós antigo para zero:

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

    Substitua:

    • OLD_POOL: o nome do pool de nós SAC do Windows Server.
    • NODE_COUNT: o número máximo de nós no pool. Repita esse comando para reduzir gradualmente esse número a 0. Em caso de problemas, aumente o valor novamente.
  5. Quando estiver totalmente migrado, exclua o pool de nós antigo:

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

Atualizar pools de nós atuais

  1. Alterne o tipo de imagem do nó nos pools de nós SAC do Windows Server:

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

    Substitua:

    • CLUSTER_NAME: o nome do cluster do GKE.
    • COMPUTE_REGION: a região do Compute Engine do cluster. Para clusters zonais, use --zone=COMPUTE_ZONE.
    • NODE_POOL: o nome do pool de nós SAC do Windows Server.
    • WINDOWS_LTSC_IMAGE: a imagem LTSC do Windows Server a ser usada, que pode ser windows_ltsc_containerd ou windows_ltsc.

A seguir