
Temos um sistema que utilizamos atualmente docker-compose
para implantação de containers (efetivamente docker-compose pull && docker-compose up
) e estamos em processo de conversão do sistema para Kubernetes.
Temos CI/CD que é implantado na produção automaticamente com base nas tags git enviadas para o repositório git. Para a preparação, continuamos avançando em um ramo. As imagens do docker são construídas e marcadas com a tag de produção git ou com o nome do branch de preparação do git.
Na implantação, docker-compose
é inteligente o suficiente para não reiniciar o contêiner se a imagem for realmente a mesma, ou seja, duas tags de produção apontam para a mesma imagem.
Estou procurando uma maneira de fazer a mesma coisa no Kubernetes - se na implantação a imagem real usada para o contêiner do pod for a mesma que já está em execução (com base na soma de verificação da imagem, não apenas na tag da imagem), então não deveria ser necessário reiniciar o pod. Isso é possível?
Obrigado
Responder1
Como mencionei nos comentários, deve funcionar imediatamente com imagePullPolicy:Always
.
De acordo comdocumentação
Imagens de contêiner
A imagePullPolicy e a tag da imagem afetam quando o kubelet tenta extrair a imagem especificada.
Política de imagemPull:Sempre: sempre que o kubelet inicia um contêiner, o kubelet consulta o registro de imagem do contêiner para resolver o nome em um resumo da imagem. Se o kubelet tiver uma imagem de contêiner com esse resumo exato armazenado em cache localmente, o kubelet usará sua imagem em cache; caso contrário, o kubelet baixa (extrai) a imagem com o resumo resolvido e usa essa imagem para iniciar o contêiner.
Observação: para garantir que o contêiner sempre use a mesma versão da imagem, você pode especificar seu resumo; substitua: por @ (por exemplo, image@sha256:45b23dee08af5e43a7fea6c4cf9c25ccf269ee113168c19722f87876677c5cb2). O resumo identifica exclusivamente uma versão específica da imagem, portanto, nunca é atualizado pelo Kubernetes, a menos que você altere o valor do resumo.
Também existe uma ferramenta chamadaimago, vale a pena dar uma olhada nisso. Imago verifica os pods sha256 em execução e apenas reinicia os recursos que precisam usar imagens mais recentes.