Como fazer a entrega contínua com o Kubernetes?

2

Estou tentando executar a instalação de namespace do Kubernetes e a implantação de aplicativos como parte de um pipeline. Normalmente, os comandos "apply" funcionam com idempotency. Agora, se eu alterar um ConfigMap, os pods precisam ser reiniciados para escolher a alteração. Mas "aplicar" - a implantação não tem nenhum efeito, pois não houve alteração detectada na própria implantação. A combinação "create" - "delete" funciona, mas é um trabalho extra e interrompe a implantação do blue green. Existe um meio dourado?

    
por user6317694 29.05.2018 / 21:43

1 resposta

2

Quando você altera ConfigMap content sem alterar seu nome, Deployment não detecta alterações e não cria novos pods.

O problema já foi corrigido e mesclado, confira aqui . No entanto, isso aconteceu relativamente recentemente (14 de março de 2018) e talvez sua versão do Kubernetes não contenha esse código.

Você pode usar a seguinte solução alternativa para empurrar o Deployment para recriar novos pods com ConfigMap atualizado - apenas adicione ou atualize a anotação de pods. Isso fará com que o Deployment crie uma nova versão dos pods:

kubectl patch deployment $DEPLOYMENT_NAME -p \
"{\"spec\":{\"template\":{\"metadata\":{\"annotations\":{\"date\":\"'date +'%s''\"}}}}}"
    
por 30.05.2018 / 11:26