Ferramenta para implementar recursos no cluster do kubernetes

2

Temos um conjunto bastante amplo de arquivos de configuração yaml que usamos para definir as implantações, conjuntos com estados, namespaces, serviços, etc. recursos que devem ser criados na API do kubernetes em um cluster.

Experimentamos algumas ferramentas como terraform e ansible para implantar o cluster subjacente compute e k8s, e elas funcionam bem para aplicar o gerenciamento de configuração nesse nível.

O que não encontrei é uma boa maneira de automatizar de maneira inteligente a implantação e a atualização desses recursos. Usamos o controle de origem para gerenciar alterações nessas definições de recursos e alimentar essas alterações nos clusters de teste e produção com kubectl apply -f .

Geralmente, a alteração é algo simples, como atualizar a tag de imagem de um pod em uma implantação. Nesse caso, um patch simples da propriedade image adequada na implementação é tudo o que é necessário.

Para alguns dos recursos canônicos, eu toquei um pouco com o provedor de formas de terra do kubernetes . É muito legal, pois é consciente da propriedade e pode fazer coisas como decidir entre uma desmontagem / reconstrução de uma entidade e um patch simples.

Ele cai, no entanto, em sua velocidade de desenvolvimento. É difícil fazer qualquer coisa além do lançamento do van8 k8s. Isso torna a ferramenta inútil para recursos personalizados, como os usados com os operadores. Existem provedores similares que aplicarão as definições do yaml do k8s, descascando para kubectl , mas elas não são reconhecidas pela propriedade.

Quaisquer sugestões sobre soluções seriam apreciadas antes de eu começar a aplicar algum bash-fu.

    
por joshperry 20.04.2018 / 01:57

1 resposta

1

Isso soa como um caso de uso padrão para o leme . Embora, por um lado, seja um gerenciador de pacotes útil para o kubernetes, por outro lado, minha equipe teve muito sucesso usando-o para gerenciar nossos objetos da API do Kubernetes em nosso cluster. Você gostaria de colocar seus manifestos em um ou mais "Gráficos" e o leme usará o Gráfico para instalar e / ou atualizar todas as suas Implantações, ConfigMaps etc. para você. Você pode até especificar arquivos de valores diferentes por ambiente. Temos um values.prod.yaml, values.staging.yaml e assim por diante, que contém todas as nossas configurações específicas do ambiente, para que possamos reutilizar os mesmos arquivos de manifesto em todos os ambientes.

    
por 27.04.2018 / 16:18

Tags