Skip links

DevOps com Kubernetes no Apache CloudStack: como estruturar

Criar um cluster Kubernetes envolve mais do que iniciar máquinas virtuais e instalar componentes manualmente. Para MSPs, cada decisão tomada na criação do ambiente impacta diretamente a operação, a manutenção, as atualizações e a escalabilidade ao longo do tempo. Nesse contexto, estruturar DevOps com Kubernetes exige processos bem definidos desde o provisionamento do cluster até sua gestão contínua. Além disso, o modelo de clusters do Kubernetes organiza aplicações em contêineres, enquanto a forma como esse cluster é criado determina o nível de controle e previsibilidade da operação.

Quando esse processo ocorre no Apache CloudStack, a estrutura do cluster passa a seguir fluxos padronizados e suportados pela plataforma. Dessa forma, o ambiente deixa de depender de configurações manuais isoladas e passa a operar de maneira mais consistente. A partir disso, este artigo mostra como estruturar DevOps com Kubernetes no Apache CloudStack com base nos mecanismos reais de criação, acesso, atualização e escalabilidade do cluster.

Kubernetes como serviço integrado à plataforma para DevOps

No CloudStack, o Kubernetes é disponibilizado por meio do plugin Kubernetes Service, responsável por integrar a orquestração de contêineres à infraestrutura de nuvem. Esse plugin não vem habilitado por padrão e requer ativação administrativa, o que garante controle sobre o uso do serviço. A partir dessa ativação, a plataforma passa a permitir a criação e a gestão de clusters Kubernetes como recursos nativos do ambiente.

Além disso, o uso do Kubernetes deixa de depender de instalações manuais em máquinas virtuais isoladas. Em vez disso, o cluster passa a existir como uma entidade gerenciada, o que favorece a padronização exigida pelas práticas DevOps. Assim, a operação se ancora em um serviço integrado à infraestrutura, mantendo governança e previsibilidade.

Estrutura de clusters Kubernetes no CloudStack

Um cluster Kubernetes criado no CloudStack é composto por dois elementos principais: o nó de controle e os nós de trabalho. O nó de controle é responsável por organizar e manter o funcionamento do cluster, podendo contar com réplicas para aumentar a robustez. Por outro lado, os nós de trabalho executam as aplicações e hospedam os pods, que representam a menor unidade de execução do Kubernetes.

Além disso, esses nós podem ser provisionados como máquinas virtuais ou físicas, conforme a infraestrutura disponível. Dessa maneira, a plataforma permite estruturar clusters de forma compatível com diferentes cenários operacionais, mantendo a separação clara entre controle e execução.

Criação de clusters Kubernetes 

A criação de clusters Kubernetes no CloudStack pode ocorrer tanto pela interface gráfica quanto por meio de API. Pela interface, o processo ocorre no menu Kubernetes, onde o usuário define parâmetros como nome do cluster, zona, versão do Kubernetes, oferta de computação, rede, chaves SSH e número de nós de trabalho. Pela API, o método createKubernetesCluster permite executar o mesmo processo de forma programática.

Durante a criação, o serviço provisiona automaticamente as máquinas virtuais necessárias de acordo com o tamanho do cluster definido. Assim, não há necessidade de configurar manualmente cada nó, o que reduz erros operacionais e garante alinhamento com o modelo DevOps. Além disso, o cluster já nasce associado a um escopo específico dentro da plataforma.

Controle de versões do Kubernetes em ambientes DevOps

O CloudStack permite manter múltiplas versões do Kubernetes disponíveis no ambiente. Para isso, é necessário criar e fazer upload de ISOs específicas, contendo os binários do Kubernetes, do CNI, do CRICTL e os arquivos de configuração necessários. Cada versão do Kubernetes exige uma ISO correspondente, garantindo compatibilidade entre cluster e infraestrutura.

Além disso, a plataforma permite adicionar ou remover versões do Kubernetes tanto pela interface quanto por API. No entanto, apenas usuários administradores podem realizar essas operações. Dessa forma, o controle de versões permanece centralizado, evitando inconsistências entre ambientes.

Implantação do cluster e kubeadm

Para implantar e configurar o Kubernetes nos nós do cluster, o CloudStack utiliza a ferramenta kubeadm. Nesse processo, o nó de controle inicia o cluster e gera um token customizado. Em seguida, os nós de trabalho ingressam no cluster utilizando o comando kubeadm join com esse mesmo token. Esse mecanismo garante que todos os nós façam parte do mesmo cluster de forma controlada. Além disso, a partir da versão 4.16 do CloudStack o processo utiliza o template padrão de SystemVM (Debian), reforçando a padronização da implantação.

Acesso ao cluster Kubernetes em operações DevOps

Após a criação do cluster, o CloudStack disponibiliza o arquivo kubeconfig, que permite acesso administrativo ao Kubernetes por meio de ferramentas como kubectl. Entretanto, por questões de segurança, o acesso ao dashboard do Kubernetes não permite login direto com base no kubeconfig.

Nesse cenário, é necessário gerar um token específico para o usuário kubernetes-dashboard, no namespace correspondente. Além disso, o acesso ao dashboard exige a execução de um proxy local via kubectl. Dessa maneira, a plataforma mantém uma separação clara entre o acesso administrativo ao cluster e o acesso visual ao painel.

Upgrade e escalabilidade do cluster

O CloudStack permite atualizar a versão do Kubernetes de um cluster em execução por meio da API upgradeKubernetesCluster ou pela interface gráfica. No entanto, a plataforma impõe regras específicas para atualizações: ela permite apenas upgrades entre versões patch da mesma versão minor ou para a próxima versão minor, sem permitir pular versões.

Além disso, o cluster pode ser escalado por meio da API scaleKubernetesCluster ou pela interface. Esse processo permite aumentar ou reduzir o número de nós de trabalho, mantendo controle sobre os recursos utilizados. Entretanto, a oferta de computação associada ao cluster só pode ser ampliada, não reduzida.

Considerações importantes

Ao estruturar clusters Kubernetes no CloudStack, o administrador precisa considerar algumas restrições. Atualmente, a plataforma permite apenas um cluster Kubernetes por rede. Além disso, as ISOs do Kubernetes possuem requisitos mínimos de CPU e memória, exigindo que a compute offering selecionada atenda a esses parâmetros.

Ao criar um cluster, a plataforma provisiona no mínimo duas máquinas virtuais: uma para o nó de controle e outra para o nó de trabalho. O número de máquinas cresce conforme o tamanho do cluster definido. Além disso, para acesso via SSH aos nós, é necessário informar um par de chaves SSH na criação do cluster, sendo o usuário padrão de acesso o usuário cloud.

Conclusão: DevOps com Kubernetes no Apache CloudStack

Em resumo, estruturar DevOps com Kubernetes no Apache CloudStack significa tratar o cluster como um serviço gerenciado, integrado à plataforma desde a criação até a operação. Além disso, essa abordagem garante controle de versões, acesso seguro, escalabilidade suportada e previsibilidade operacional. Dessa maneira, MSPs conseguem alinhar infraestrutura e DevOps desde o início, operando Kubernetes de forma consistente, padronizada e dentro dos limites suportados pela plataforma.

A SC Clouds atua apoiando MSPs na implantação e na operação dessa arquitetura, sempre com foco em estabilidade, controle e boas práticas de nuvem. Fale conosco e conheça as possibilidades para o seu ambiente.

This website uses cookies to improve your web experience.