Portabilidade para contêineres
Aplica-se a: Windows Server, versão 23H2
A portabilidade é um recurso do Canal Anual do Windows Server para Contêineres. A portabilidade simplifica o processo de atualização, ajudando você a aproveitar ao máximo a flexibilidade e a compatibilidade aprimoradas que os contêineres oferecem. Este artigo fornece uma explicação detalhada de como a portabilidade de imagem de contêiner é otimizada para hosts de contêiner de canal anual.
O Canal Anual para Contêineres do Windows Server é uma edição do Windows Server projetada para o Serviço de Kubernetes do Azure e implantações do Windows Server focadas em contêiner para melhorar a eficiência e fornecer portabilidade otimizada para contêineres do Windows e do Linux. Para saber mais sobre o Canal Anual para Contêineres no Windows Server, confira nosso comunicado da TechCommunity.
Como funciona a portabilidade
O Windows usa um kernel modular em que os componentes geralmente são fortemente associados entre modo de usuário e o modo kernel. Componentes fortemente ligados são interfaces gráficas úteis sobre drivers de modo kernel ou otimizando o desempenho reduzindo o modo kernel para opções de contexto de modo de usuário. No entanto, isso representa um desafio para os contêineres. A portabilidade permite que contêineres em execução no modo de usuário executem cargas de trabalho com uma versão de imagem de contêiner diferente da versão do sistema operacional host.
Sem portabilidade, os usuários só podiam executar cargas de trabalho com versões de host e imagem correspondentes. Por exemplo, um usuário que executa um host do Windows Server 2022 não pôde executar contêineres isolados por processo do Windows Server 2019. O controle de versão entre o host e a imagem de contêiner foi um ponto crítico significativo na contêinerização do Windows, tornando as atualizações para versões mais recentes de um host de contêiner desafiadoras. Por exemplo, o Windows Server 2022 LTSC exigia que todas as imagens de infraestrutura e de aplicativo fossem atualizadas para a versão mais recente ao mesmo tempo em que o host foi atualizado.
Interface binária do aplicativo
A Interface Binária do Aplicativo, ou ABI, permite que várias linguagens de programação interajam com interfaces de modo de usuário e kernel. A interação de código do cliente com um objeto de runtime ocorre no nível mais baixo, com constructos de linguagem de cliente traduzidos em chamadas para a ABI do objeto. A portabilidade para contêineres do Windows introduz uma ABI estável para interação de usuário e kernel. Essa ABI estável desassocia os componentes de usuário e kernel do sistema e oferece a capacidade de atualizar separadamente os elementos do kernel e do usuário do seu sistema.
Os contêineres podem executar todos os binários do modo de usuário de sua camada base, exceto a camada ABI.
O diagrama a seguir ilustra a comunicação entre componentes do modo de usuário e do modo kernel.
Quais versões posso usar?
As imagens de contêiner do Nano Server, Server Core e Windows Server só estão disponíveis por meio do canal de manutenção Long-Term para contêineres que executam o Windows Server 2019 ou posterior. Para obter mais informações sobre imagens de contêineres do Windows Server com suporte, confira Ciclos de vida de manutenção de imagens base.
Um host de contêiner do Windows Server, versão 23H2, dá suporte apenas à imagem de contêiner do LTSC (Canal de Manutenção de Longo Prazo) do Windows Server 2022.
Atualmente, o Serviço de Kubernetes do Azure dá suporte ao Windows Server 2019 e a hosts posteriores. O Canal Anual do Windows Server para Contêineres é outra opção de sistema operacional de contêiner que a Microsoft oferece junto com o Kubernetes 1.28. Você pode criar pools de nós com base no canal anual e continuar implantando suas imagens de contêiner do Windows Server 2022 nesses nós. A Microsoft atualiza automaticamente a versão anual do canal e as novas versões do Kubernetes anualmente. No entanto, também é uma boa ideia seguir as versões mais recentes do LTSC para garantir que seus contêineres estejam atualizados.
Nota
Embora versões de imagem de contêiner anteriores possam ser executadas no sistema operacional de host mais recente, os sistemas operacionais de imagem de contêiner mais recentes não podem ser executados no sistema operacional do host anterior.