O Kubernetes é complexo e, uma vez em produção, sua depuração é cara. Se ao menos houvesse uma maneira de testar uma nova implantação do Kubernetes de maneira realista antes de realmente pagar as contas do provedor de nuvem?
SimKube é um esforço para oferecer esse tipo de capacidade. Ele pode registrar algum comportamento em um cluster real e depois reproduzi-lo em um cluster simulado para que o comportamento possa ser inspecionado detalhadamente. No futuro, tal tecnologia poderá ir além da reprodução simulada e até mesmo ajudar o usuário a experimentar diferentes cenários,
É ideia de David Morrison, fundador do Applied Computing Research Labs, uma empresa de pesquisa e desenvolvimento com foco em modelagem, agendamento e otimização para sistemas distribuídos. Ele discutiu o SimKube e a necessidade de tal tecnologia em uma sessão na KubeCon + CloudNativeCon North America, realizada no início deste ano em Chicago.
Embora funcional, o SimKube ainda está nos estágios iniciais de desenvolvimento, mas à medida que o Kubernetes avança para mais configurações de produção, mais análises comportamentais e ferramentas de monitoramento como esta serão necessárias, não apenas para reproduzir cenários problemáticos, mas para esboçar e tentar novos uns, argumentou Morrison.
Qual é o tempo médio para configurar um cluster ou iniciar um nó? Podemos comparar duas simulações diferentes para ver qual delas é mais eficiente?
“Ser capaz de responder a essas perguntas é muito importante, e eu diria que no ecossistema Kubernetes não temos esse tipo de ferramenta agora”, disse Morrison.
Imagine o possível
De forma útil, Morrison esboçou como uma ferramenta de simulação Kubernetes pode ser usada em uma variedade de cenários.
Um caso de uso óbvio é a solução de problemas: um cluster pode sofrer uma interrupção, mas a causa raiz não é conhecida. Um administrador poderia reproduzir em seu laptop um rastro do incidente ocorrido naquele momento. E quando uma solução potencial é formulada, ela pode ser testada primeiro no cluster simulado.
Também pode ser usado para evitar possíveis problemas.
Um engenheiro de CI/CD responsável por todos os pipelines que levam aos clusters pode querer garantir que os usuários não adicionem regressões às novas configurações do K8s. Eles poderiam fazer isso exigindo que executassem uma simulação como parte do processo de integração.
O software de simulação também pode ser um aliado poderoso para extrair o máximo valor de suas implantações do Kubernetes.
O agendador kube do Kubernetes tem muitos botões para girar, em termos de definição de prioridades para atribuição de carga de trabalho aos nós, embora deixe alguém adivinhando qual seria o agendamento ideal. Imagine executar diferentes cenários em um laptop, usando dados reais de produção e vendo alguns números sobre qual configuração funciona melhor. Você pode até alimentar os dados de operações em uma máquina de ML para ajuste de “hiperparâmetros”.
Em termos de agendamento, a programação em lote tem sido um desafio particular com o Kubernetes, que não possui um conjunto robusto de primitivos em lote para trabalhar. Mas grandes trabalhos de processamento em lote estão se tornando mais predominantes, graças aos MLOps, que devem lidar com grandes cargas de trabalho de modelos de linguagem ou modelos de difusão. Isso levou a agendadores alternativos, como o Volcano, que também podem ser facilmente testados antes de se comprometer.
Conheça o SimKube
SimKube, criado por Morrison e escrito principalmente em Rust, é um pacote de seis ferramentas para simular o agendamento e o comportamento de escalonamento automático do Kubernetes.
Um utilitário de linha de comando, sk-ctrlfornece a maneira de exportar dados operacionais dos clusters de produção e, em seguida, reproduzir esses dados em um cluster simulado, simulando, na verdade, o mesmo comportamento.
Como funciona o SimKube.
Colocado no ambiente de produçãorastreador sk coleta dados do servidor API. Ele pode observar e criar uma linha do tempo (chamada de rastreamento) de recursos e pods sendo ativados ou desativados em um cluster e anotar quaisquer eventos especiais predefinidos que ocorram. Se você tiver um controlador personalizado, ele também poderá assisti-lo.
Quando solicitado por um usuário, sk-tracer salva o rastreamento em um arquivo. O objeto de rastreamento em si é principalmente uma série de objetos de linha do tempo (serializados em um formato binário semelhante a JSON).
Quando o usuário deseja executar novamente um rastreamento, motorista sk baixa o objeto de rastreamento e o executa por meio do servidor API no cluster simulado (em dev ou KIND em execução em um laptop).
Nós Virtuais
Fornecer os bits imaginários de um cluster simulado são sk-vnode e sk-cloudprov. sk-vnode é basicamente um Kubelet Virtual fingindo ser um nó. Ele responde com um status quando faz ping, mas não há nenhum contêiner lá.
“Você pode rodar centenas e milhares dessas coisas apenas em um laptop local. É realmente leve”, disse Morrison entusiasmado.
Para imitar seu cluster de produção, exporte o arquivo de configuração de produção usando kubectlusando as definições de nó para configurar nós simulados idênticos.
Você implanta o cluster simulado como faria com um cluster normal, usando o Kubernetes Cluster Autoscaler. Este software oferece ao usuário a capacidade de provisionar e desprovisionar nós em todos os principais provedores de serviços em nuvem, embora também forneça a capacidade de fazer isso por meio de uma interface personalizada. Morrison construiu sk-cloudprov para imitar um provedor de serviços em nuvem baseado em gRPC, embora, na realidade, apenas despache as solicitações para sk-vnodesque por sua vez implanta nós virtuais no cluster simulado.
Traços Hipotéticos
No momento, você pode reproduzir os resultados no SimKube e assistir ao desenrolar (de novo) no Grafana e no Prometheus,
Mas, além de reexecutar rastros de eventos reais, a tecnologia poderia preparar o terreno para responder a cenários hipotéticos. Os objetos de rastreamento podem ser modificados ou até mesmo criados do zero. Rastreamentos hipotéticos poderiam ser aplicados em clusters simulados para responder perguntas como “E se tivéssemos uma implantação que escalasse até 10.000 pods?”
“Isso pode ser algo realmente poderoso”, disse Morrison.
Mais Sims Kubernetes
KWOK é a abreviação de Kubernetes sem Kubelet.
SimKube não é o único simulador Kubernetes da cidade. Na KubeCon, dois pesquisadores da Apple também discutiram um esforço semelhante, chamado KWOK, abreviação de Kubernetes Without Kubelet.
KWOK “é um kit de ferramentas que permite configurar um cluster de milhares de nós em segundos. Sob a cena, todos os nós são simulados para se comportarem como reais, então a abordagem geral emprega uma pegada de recursos bastante baixa que você pode facilmente brincar em seu laptop”, explica a documentação.
Kubemark, o Virtual Kubelet e o KCP (Kubernetes Control Plane) são outros esforços nesse sentido.
“Portanto, há uma tonelada de trabalho duplicado acontecendo aqui. Vamos parar de duplicar tudo isso e focar em uma coisa”, disse Morrison, acrescentando que espera que o SimKube possa fazer parte deste trabalho.
Veja a apresentação completa de Morrison aqui:
YOUTUBE.COM/THENEWSTACK
A tecnologia avança rápido, não perca um episódio. Inscreva-se em nosso canal no YouTube para transmitir todos os nossos podcasts, entrevistas, demonstrações e muito mais.
SE INSCREVER
Joab Jackson é editor sênior do The New Stack, cobrindo computação nativa em nuvem e operações de sistema. Ele faz reportagens sobre infraestrutura e desenvolvimento de TI há mais de 25 anos, incluindo passagens pela IDG e pela Government Computer News. Antes disso, ele…
Este site utiliza cookies para melhorar sua experiência de navegação. Ao continuar, você concorda com o uso de cookies. Para mais informações, consulte nossa Política de Privacidade.
Funcional
Sempre ativo
O armazenamento ou acesso técnico é estritamente necessário para a finalidade legítima de permitir a utilização de um serviço específico explicitamente solicitado pelo assinante ou utilizador, ou com a finalidade exclusiva de efetuar a transmissão de uma comunicação através de uma rede de comunicações eletrónicas.
Preferências
O armazenamento ou acesso técnico é necessário para o propósito legítimo de armazenar preferências que não são solicitadas pelo assinante ou usuário.
Estatísticas
O armazenamento ou acesso técnico que é usado exclusivamente para fins estatísticos.O armazenamento técnico ou acesso que é usado exclusivamente para fins estatísticos anônimos. Sem uma intimação, conformidade voluntária por parte de seu provedor de serviços de Internet ou registros adicionais de terceiros, as informações armazenadas ou recuperadas apenas para esse fim geralmente não podem ser usadas para identificá-lo.
Marketing
O armazenamento ou acesso técnico é necessário para criar perfis de usuário para enviar publicidade ou para rastrear o usuário em um site ou em vários sites para fins de marketing semelhantes.