Implantação do Kubernetes – não reinicie os pods se a soma de verificação da imagem não tiver mudado

Implantação do Kubernetes – não reinicie os pods se a soma de verificação da imagem não tiver mudado

Temos um sistema que utilizamos atualmente docker-composepara 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.

informação relacionada