A escada rolante é um autoscaler horizontal otimizado para lote ou trabalho para Kubernetes
Ele foi projetado para grandes cargas de trabalho com base em lote que não podem ser drenadas à força e movidas quando o cluster precisa diminuir - a escada rolante garantirá que as vagens tenham sido concluídas nos nós antes de encerrá -los. Também é otimizado para aumentar o cluster o mais rápido possível para garantir que as vagens não sejam deixadas em um estado pendente.
Calcule solicitações e capacidade para determinar se devem aumentar, diminuir ou permanecer na escala atual
Aguarda até que não-danonset pods nos nós tenham sido concluídos antes de encerrar o nó
Projetado para trabalhar em grupos de escala automática selecionados para permitir que o automóvel Kubernetes padrão continue a escalar cargas de trabalho baseadas em serviços
Encerrar automaticamente os nós mais antigos primeiro
Suporte ao espaço do Slack para garantir um espaço extra em caso de um pico de vagens programadas
Não termina ou fatora nós conectados em cálculos - permite que os nós do Cordoados persistam para a depuração
Suporte para diferentes fornecedores de nuvem - AWS apenas no momento
Métricas de escala e utilização
Eleição líder para que você possa executar uma implantação de HA dentro de um cluster.
Suporte básico para vários tipos diferentes de instâncias em um grupo de nós.
A necessidade desse autoscaler é derivado de nossas próprias experiências, com cargas de trabalho em lote muito grandes sendo agendadas e o autocaler padrão não escalando o cluster rápido o suficiente. Essas cargas de trabalho não podem ser dadas pelo automóvel padrão e devem ser concluídas antes que o nó possa ser encerrado.
Veja documentos
Kubernetes versão 1.24+. A escada rolante foi testada e implantada em 1,24+ e mais recente. As versões mais antigas do Kubernetes podem ter erros ou problemas que impedirão que ele funcione corretamente.
GO Versão 1.20+
As dependências e suas versões trancadas podem ser encontradas em go.mod
e go.sum
.
# Buscar dependências e construir o escalatormake construir
GO RUN CMD/MAIN.GO --KUBECONFIG = ~/.KUBE/config -nodeGroups = nodeGroups_config.yaml
Consulte a implantação para documentação completa de implantação.
# Construa o docker imeragedocker Build -t Atlassian/Escala. # Criar implantaçãokubectl Create -f Docs/implantação/escala de escala-Deployment.yaml
Veja a configuração
faça o teste
Por exemplo, para testar o pacote do controlador:
vá testar ./pkg/controller
Puxe solicitações, problemas e comentários bem -vindos. Para solicitações de tração:
Adicione testes para novos recursos e correções de bugs
Siga o estilo existente (estamos usando o GORETURNS para formatar e escada rolante de fiapos)
Separe mudanças não relacionadas em várias solicitações de tração
Veja os problemas existentes para que as coisas comecem a contribuir.
Para mudanças maiores, inicie uma discussão primeiro criando um problema e explicando a alteração pretendida.
A Atlassian exige que os colaboradores assinem um contrato de licença de colaborador, conhecido como CLA. Isso serve como um registro informando que o colaborador tem o direito de contribuir com o código/documentação/tradução para o projeto e está disposto a usá -lo em distribuições e obras derivadas (ou está disposto a transferir a propriedade).
Antes de aceitar suas contribuições, pedimos que você siga o link apropriado abaixo para assinar digitalmente o CLA. O CLA corporativo é para aqueles que estão contribuindo como membro de uma organização e o CLA individual é para aqueles que contribuem como indivíduo.
CLA para colaboradores corporativos
CLA para indivíduos
Copyright (c) 2018 Atlassian e outros. Apache 2.0 Licenciado, consulte o arquivo de licença.