O Container Service for Kubernetes (ACK) permite criar nós que executam o sistema operacional Alibaba Cloud Linux 2. Esses nós utilizam o kernel de alto desempenho do Alibaba Cloud Linux 2 para oferecer soluções otimizadas para diversos cenários. Este tópico descreve os benefícios de usar o Alibaba Cloud Linux 2 em clusters ACK e as otimizações fornecidas pelo ACK para diferentes situações.
O Alibaba Cloud Linux 2 atingiu o fim de vida (EOL) em 31 de março de 2024. Ao criar um cluster ou um pool de nós, defina o Operating System como Alibaba Cloud Linux 3 ou ContainerOS. Para obter mais informações sobre o EOL do Alibaba Cloud Linux 2, consulte [[Product Change] End of maintenance for Alibaba Cloud Linux 2 and CentOS 7](t2602809.xdita#).
Informações básicas
O Alibaba Cloud Linux 2 é um sistema operacional Linux nativo da nuvem de última geração desenvolvido pela Alibaba Cloud. Ele oferece um ambiente personalizado seguro, estável e de alto desempenho para aplicações na nuvem. O Alibaba Cloud Linux 2 possui otimizações profundas para a infraestrutura da Alibaba Cloud, proporcionando uma experiência de execução aprimorada. Use as imagens públicas do Alibaba Cloud Linux 2 gratuitamente e receba suporte de longo prazo da Alibaba Cloud sem custo adicional.
Benefícios do uso de imagens de SO do Alibaba Cloud Linux 2
O sistema operacional Alibaba Cloud Linux 2 foi projetado para a pilha de virtualização Apsara da Alibaba Cloud. Ele oferece diversas otimizações e novos recursos adaptados ao ambiente da Alibaba Cloud, incluindo:
Distribuição Linux com a inicialização mais rápida na Alibaba Cloud.
Otimização profunda para máquinas virtuais ECS de alta especificação e instâncias Bare Metal do ECS, especialmente em cenários de multitarefa em instâncias grandes.
Pré-instalação de pacotes de software comuns da Alibaba Cloud, como Cloud Assistant CLI e cloud-init, para reduzir custos de gerenciamento de recursos na nuvem.
Sistema simplificado com superfície de ataque mínima e menor consumo de recursos do sistema.
Sistema de suporte abrangente que oferece assistência técnica multicanal na Alibaba Cloud.
Correções ágeis para vulnerabilidades de segurança de software (CVEs).
Suporte a Kernel Live Patching para garantir a continuidade dos negócios durante a aplicação de patches de vulnerabilidade.
Os benefícios de desempenho ao executar instâncias de aplicação no Alibaba Cloud Linux 2 incluem:
Velocidade de inicialização significativamente otimizada para instâncias ECS, permitindo expansão rápida de recursos computacionais quando a carga do sistema aumenta. A velocidade de inicialização é 29% superior à do CentOS 7.
Otimização para cenários de multitarefa em instâncias ECS, melhorando o desempenho multitarefa de instâncias de alta especificação em 16% para as mesmas configurações.
Chamadas de sistema mais eficientes, com melhoria de 11% no desempenho dessas chamadas.
Pilha de rede Linux otimizada, resultando em uma melhoria de 7,8% no desempenho geral da rede em comparação com o CentOS 7.
O algoritmo de controle de congestionamento Bottleneck Bandwidth and Round-trip propagation time (BBR) já vem pré-compilado no Alibaba Cloud Linux 2. Em cenários com acesso frequente à rede pública, altere o algoritmo de controle de congestionamento para BBR e aumente a estabilidade da largura de banda no acesso à rede pública.
Criptografia otimizada para o protocolo TLS.
Suporte ao novo agendador de I/O Budget Fair Queueing (BFQ) para reduzir a latência de discos na nuvem.
Otimizações baseadas em cenários no ACK com Alibaba Cloud Linux 2
Os serviços de containerização da Alibaba Cloud utilizam otimizações no nível do kernel para aumentar a densidade de tarefas de contêineres colocalizados sem afetar o tempo de resposta dos serviços online. O sistema operacional e o kernel do Alibaba Cloud Linux 2 incluem essas otimizações. O ACK aproveita esses recursos para fornecer melhorias em múltiplos cenários, ajudando os serviços containerizados a rodar de forma mais rápida e fluida.
-
IPVS optimization
-
Cenário 1: Máquinas de alta especificação (mais de 64 CPUs) com muitos IPs virtuais IPVS.
Problema: O temporizador de estimativa do IPVS calcula periodicamente a taxa atual de cada conexão. Quando há muitas conexões, essa operação ocupa a CPU por muito tempo, causando atrasos na recepção de pacotes de rede e resultando em flutuações de até 200 ms na resposta ao comando Ping.
Otimização: O temporizador de estimativa do IPVS executa no nó. Além disso, um comando sysctl desativa as estatísticas do IPVS.
Resultado: As flutuações causadas pelo temporizador de estimativa são eliminadas.
-
Cenário 2: Atualizações contínuas (rolling upgrades) de contêineres.
Problema: Durante uma atualização contínua de contêineres, se a tupla-5 não mudar, um novo pacote TCP SYN pode atingir o registro de conexão da antiga tupla-5 do IPVS. Caso o pacote precise ser agendado para um novo destino, o IPVS descarta o pacote SYN por padrão, provocando retransmissão de SYN e um atraso de 1 segundo.
Otimização: Se já existir uma entrada conntrack nova, a conexão no estado TIME_WAIT é liberada do conntrack e, em seguida, agendada e substituída pela nova conexão.
Resultado: A transição para o novo servidor real ocorre quase sem atraso.
-
-
CoreDNS optimization
Cenário 1: Muitas consultas DNS dentro de um contêiner fazem com que a tabela conntrack fique cheia.
Problema: Quando uma aplicação dentro de um contêiner consulta o DNS para um endereço ou porta fixos, a entrada conntrack correspondente entra no modo stream. Como as solicitações DNS são baseadas em UDP, sem estado, de curta duração e usam um padrão de solicitação-resposta, o conntrack mantém muitas entradas UDP inúteis. Essas entradas não são limpas prontamente, o que pode fazer a tabela conntrack crescer e degradar o desempenho da Network Address Translation (NAT).
Otimização:
Uma conexão UDP só é definida como modo stream se durar mais de 2 segundos, evitando o crescimento rápido das entradas conntrack.
O tempo de vida (TTL) padrão do conntrack UDP é reduzido de 180 s para 120 s, permitindo que as entradas expirem mais rápido e reduzindo o impacto na tabela conntrack.
Resultado: No mesmo cenário de teste, o número de entradas conntrack UDP é reduzido pela metade.
-
Container network performance optimization
Em nós com Alibaba Cloud Linux 2, o plug-in de rede Terway para o serviço de contêiner suporta o modo de rede de contêiner IPVlan. Em cenários de pacotes pequenos, isso melhora o desempenho da rede em 40% em comparação com Bridge tradicional e roteamento baseado em políticas. O algoritmo de controle de congestionamento BBR já vem pré-compilado no Alibaba Cloud Linux 2. Em cenários com acesso frequente à rede pública, altere o algoritmo de controle de congestionamento do contêiner para BBR e aumente a estabilidade da largura de banda no acesso à rede pública. Isso melhora significativamente o desempenho das conexões de rede pública do contêiner e a velocidade de pull de imagens pela rede pública.
-
Support and optimization for sandboxed containers
A Alibaba Cloud colabora com as comunidades Kata Containers e Clear Linux. Em instâncias Bare Metal do ECS, implante toda a solução Kata Containers de forma transparente. O ACK também otimiza o tempo de inicialização de imagens de contêineres sandbox (RunV), permitindo que a solução completa do Kata Containers funcione corretamente. Com base nisso, o ACK fornece clusters de contêineres sandbox que oferecem uma experiência quase idêntica à dos clusters comuns, permitindo que aplicações rodem em um ambiente sandbox de máquina virtual leve. Essa abordagem é adequada para isolamento de cargas de trabalho entre múltiplos usuários e para isolar aplicações não confiáveis, aumentando a segurança com impacto mínimo no desempenho.
-
AutoScaler optimization
O Alibaba Cloud Linux 2 otimiza a velocidade de inicialização das instâncias ECS, reduzindo o tempo de startup do nó em 60% em comparação com o CentOS 7. Combinado com o dimensionamento automático flexível e eficiente do ACK, quando a carga da aplicação aumenta, um cluster ACK cria e inicia automaticamente nós ECS para ingressar no cluster com base na carga, além de agendar e iniciar instâncias da aplicação. A capacidade rápida de expansão e inicialização do Alibaba Cloud Linux 2 garante que os recursos computacionais atendam prontamente às demandas de pico de tráfego.
-
Resource monitoring and control optimization
O kernel do Alibaba Cloud Linux 2 fornece capacidades de visualização e controle refinadas para cenários de contêineres, como Pressure Stall Information (PSI), kswapd por cgroup e Memory Priority. Em clusters ACK no Alibaba Cloud Linux 2, utilize o controlador Cgroup para aproveitar esses recursos, permitindo configuração refinada e atualizações dinâmicas de recursos como BufferIO Control, TCP, CPUSet, Mem e NUMA. Isso ajuda a aumentar gradualmente a utilização de recursos enquanto minimiza a interferência entre aplicações.
-
AI and data acceleration optimization
As otimizações no Alibaba Cloud Linux 2 para modelos de grande escala e multitarefa aumentam a velocidade de tarefas de computação de alto desempenho (HPC). A otimização de armazenamento para leituras e gravações em streaming também melhora o desempenho de leitura e gravação de arquivos de modelos grandes. Juntas, essas melhorias aceleram muito a eficiência das tarefas de IA e HPC. Veja abaixo cenários reais de teste:
Carregar 1.152 arquivos (144 GB) do OSS usando Alluxio com 64 threads leva 3 minutos e 25 segundos no CentOS. No Alibaba Cloud Linux 2, leva apenas 2 minutos e 19,037 segundos, sendo 1,6 vez mais rápido que no CentOS.
Ao executar treinamento do modelo ResNet50 Batch 128 com dados em cache no Alluxio, uma GPU V100 no CentOS atinge apenas 5.212,00 imagens/s. No Alibaba Cloud Linux 2, uma GPU V100 chega a 8.746,59 imagens/s, sendo 1,7 vez mais rápido que no CentOS.
-
Enhanced display for container resources
Em uma configuração de múltiplos contêineres em um único host, os recursos diretamente visíveis dentro de um contêiner são os do próprio host, o que não é amigável para muitas aplicações. O Alibaba Cloud Linux 2 otimiza a exibição de recursos Cgroup no kernel, permitindo que os recursos ocupados pelo contêiner sejam exibidos corretamente dentro dele. Por exemplo, as informações mostradas pelo comando TOP e pelas interfaces CPUInfo e MemInfo são corrigidas, simplificando bastante suas necessidades de monitoramento.
-
Other optimizations
Utiliza o kernel Linux 4.19. O ACK integra as melhores práticas de kernel da Alibaba Cloud e de containerização neste kernel.
Reduz a perda de desempenho do OverlayFS e minimiza o impacto da containerização no desempenho do armazenamento.
A maioria das configurações sysctl possui namespace. No kernel 4.19, é possível configurar a maioria das definições sysctl separadamente dentro de um contêiner. Por exemplo, diferentes aplicações têm requisitos distintos para timeout TCP e tempo de retransmissão. Essas configurações não podem ser modificadas no kernel do CentOS 7, mas o Alibaba Cloud Linux 2 suporta configurá-las no nível do pod.
Usar o Alibaba Cloud Linux 2 como imagem de SO para nós do cluster
Ao criar um cluster, defina Operating System como Alibaba Cloud Linux 2.1903 para usar o Alibaba Cloud Linux 2 como imagem de SO dos nós do cluster. Para mais informações, consulte Create an ACK managed cluster.
Se você selecionar o Alibaba Cloud Linux 2, o ACK verifica automaticamente se há atualizações de patches de segurança para o Alibaba Cloud Linux 2 e instala os patches quando você cria o cluster, expande nós, adiciona nós ou usa dimensionamento automático.