Como migrar de aplicativos Kubernetes gerenciados pelo GitLab
GitLab Managed Apps era um recurso de integração do Kubernetes da plataforma que fornecia a instalação com um clique de aplicativos de cluster comuns. Essa iteração do recurso foi descontinuada durante o ciclo de lançamento do GitLab 13 e totalmente removida na versão 14.0 de junho. Veja como migrar seus aplicativos gerenciados para um modelo de implantação compatível.
Afastando-se dos aplicativos gerenciados
Os aplicativos gerenciados foram desenvolvidos como uma forma de simplificar a operação com um novo cluster Kubernetes. O GitLab forneceu modelos para aplicativos como NGINX Ingress, Cert Manager e Prometheus.
Dois métodos de instalação diferentes foram oferecidos: um clique e CI / CD. O método de um clique fornecia uma IU dentro do GitLab que listava os aplicativos disponíveis e permitia que você clique para instalar. Alguns aplicativos também expuseram configurações básicas. O método CI / CD ofereceu um modelo GitLab CI para adicionar aplicativos a um cluster como parte de um pipeline.
As instalações com um clique acabaram de vez. O método CI permanece funcional, mas está obsoleto e será removido no GitLab 15.0. Embora os aplicativos gerenciados tenham simplificado drasticamente a instalação, eles atendem apenas a este estágio do ciclo de vida do cluster. Os aplicativos foram instalados ou desinstalados, então você precisaria migrar rapidamente para as ferramentas normais de gerenciamento do Kubernetes para realizar manutenção e personalização.
Apesar da remoção do recurso, as instalações existentes do aplicativo gerenciado continuarão a funcionar no GitLab 14.0. Você pode atualizar o GitLab com segurança, sem se preocupar com o tempo de inatividade em seu cluster. A atualização removerá a IU de aplicativos gerenciados, portanto, você não conseguirá visualizar ou desinstalar aplicativos de dentro do GitLab.
Obtendo o controle de seus aplicativos
A migração de aplicativos gerenciados não requer necessariamente qualquer ação imediata de sua parte. Como seus aplicativos permanecerão operacionais, você pode deixá-los como estão se estiver satisfeito com eles permanecendo no namespace gitlab-managed-apps.
Publicidade
Como os aplicativos são simplesmente implantações do Helm em seu cluster, você pode gerenciá-los usando os binários de linha de comando kubectl e Helm. Eles aparecerão como recursos regulares do Kubernetes.
Você pode listar os recursos do cluster que foram instalados pelo GitLab usando este comando Kubectl:
kubectl get all -n gitlab-managed-apps
Isso permite que você verifique o que está sendo executado em seu cluster na ausência dos antigos “ Aplicativos ” do GitLab; página.
Você pode encontrar problemas com aplicativos instalados por versões antigas do GitLab. Eles podem ter sido adicionados usando o Helm v2, que não é compatível com clientes Helm v3 modernos. Se você não tiver certeza se tem aplicativos v2 instalados, use o seguinte comando para verificar:
kubectl get all -n gitlab-managed-apps | grep 'helm. sh/release'
Os aplicativos mostrados na saída deste comando foram instalados pelo Helm v3. Compare a lista com o comando get all anterior para identificar os aplicativos adicionados pelo Helm v2.
Publicidade
Se seus aplicativos estiverem usando o Helm v2, você precisará percorrer manualmente o guia de migração do Helm para atualizá-los. É recomendável que você mude para o Helm v3 se for manter os aplicativos por muito tempo. Como alternativa, instalar o Helm v2 em sua máquina permitirá que você interaja com os aplicativos para aplicar correções e manutenção imediatas.
Atualização para o novo modelo de aplicativos de cluster do GitLab
O objetivo principal dos aplicativos gerenciados – simplificando a configuração do cluster – não foi completamente descartado pelo GitLab. O GitLab 14.0 se concentra em “ projetos de gerenciamento de cluster ” como um novo modelo de implantação para provisionamento de cluster.
O GitLab fornece um modelo de projeto que você pode usar para instalar aplicativos em clusters Kubernetes. Isso resolve os problemas originais com aplicativos gerenciados, garantindo que você tenha controle total sobre os gráficos do Helm que são implantados. Você clona o modelo, conecta o projeto ao cluster e, em seguida, edita e exclui os gráficos de aplicativos individuais conforme necessário. Executar um pipeline de CI implantará os aplicativos selecionados em seu cluster.
Você pode migrar os aplicativos gerenciados existentes para o formato de projeto de gerenciamento. Isso permite que você continue operando-os usando uma abordagem endossada pelo GitLab. Assumiremos que você já tem um cluster Kubernetes conectado à sua instância GitLab, em virtude de suas implantações existentes.
Comece criando um novo projeto GitLab usando o botão de adição no canto superior direito. Clique em “ Criar a partir do modelo ” e role para baixo até a página “ GitLab Cluster Management ” modelo. Clique no link “ Usar modelo ” botão. Na próxima tela, dê um nome ao seu projeto e pressione “ Criar projeto. ”
O modelo fornece uma série de gráficos Helm para implantar aplicativos em seu cluster. Os gráficos de aplicativos individuais são armazenados no diretório de aplicativos. Cada aplicativo tem seu próprio subdiretório. #
Publicidade
Comece editando helmfile. yaml na raiz do seu projeto, no GitLab Web IDE ou clonando o repositório usando Git. Este arquivo faz referência aos modelos de aplicativos individuais. Habilite os aplicativos que você está usando, removendo o comentário das linhas relevantes. Neste exemplo, instalamos anteriormente o Ingress e o Cert Manager como GitLab Managed Apps, portanto, estamos ativando-os no projeto de gerenciamento de cluster.
Em seguida, você precisa descobrir qual versão do gráfico já está implantada em seu cluster. Esta etapa é importante para que você não substitua acidentalmente seu aplicativo por uma versão diferente.
Você pode obter a versão de um aplicativo executando helm ls -n gitlab-managed-apps. Procure o aplicativo na tabela de saída e anote a versão exibida na coluna GRÁFICO. Isso terá o formato app-name-X.Y.Z; você só precisa da parte X.Y.Z.
Retorne ao seu novo projeto GitLab e abra o helmfile. yaml associado ao aplicativo, como applications / ingress / helmfile. yaml. Altere o campo da versão para corresponder à versão que você anotou.
Finalmente, substitua o default values. yaml por seu conjunto existente de valores Helm. Use o Helm para carregar a representação YAML do arquivo de valores do seu aplicativo:
leme obtém valores ingress -n gitlab-managed-apps -a --output yaml
Substitua ingress pelo nome da implantação do seu aplicativo. Copie toda a saída YAML e use-a para substituir o arquivo applications / ingress / values. yaml. Certifique-se de ajustar o caminho do arquivo para corresponder ao seu aplicativo. Agora você está pronto para executar a implantação do projeto de gerenciamento de cluster.
Publicidade
Um pipeline de implantação começará automaticamente quando você mesclar suas alterações no branch padrão (que geralmente é o principal para novos projetos no GitLab 14.0). Use o Git para confirmar suas alterações e mesclá-las em:
git checkout -b my-branch git add. git commit -m "Migrar aplicativos gerenciados GitLab existentes" git checkout main git merge my-branch git push -u origin main
O pipeline será executado. Se as alterações do modelo estiverem corretas, não deve haver impacto nos aplicativos em execução. Alguns metadados inofensivos podem ser modificados conforme o mecanismo de implantação muda.
Agora você está pronto para usar o projeto de gerenciamento de cluster para a manutenção contínua de seus aplicativos. Como exemplo, você pode atualizar para uma nova versão de um aplicativo editando o campo de versão em seu helmfile. yaml. Mesclar a mudança no principal faria com que o Helm aplicasse as mudanças dentro do seu cluster.
Conclusão
Os aplicativos gerenciados do GitLab ajudaram muitos usuários a dar os primeiros passos com o Kubernetes. A simplicidade do recurso acabou se mostrando muito limitante, por isso agora está sendo removido em um processo de várias etapas.
Felizmente, é bastante simples concluir sua migração de aplicativos gerenciados. Não há nada de especial neles – eles são simplesmente implantações regulares do Helm que vivem no namespace gitlab-managed-apps do seu cluster. Isso significa que suas cargas de trabalho permanecerão disponíveis mesmo se você atualizar para o GitLab 14.0, deixando-o livre para fazer a transição em seu próprio ritmo.
Seguindo em frente, os projetos de gerenciamento de cluster são a abordagem preferencial para usar o GitLab para instalar aplicativos populares no Kubernetes. Embora seja um pouco mais exigente tecnicamente, este modelo oferece muito mais controle e ajuda a gerenciar sua infraestrutura como código.
Nenhum comentário