Um Job de migração de DB pre-upgrade
Anote um Job para executá-lo antes da implantação.
Um Job de migração de DB pre-upgrade é uma aula grátis de Helm Academy no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Helm Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Helm Academy inclui 4 aulas no total.
Um caso de uso real
Antes de o novo código do aplicativo ser implantado, geralmente é necessário migrar o esquema do banco de dados. Um hook pre-upgrade é o local perfeito para executar essa migração com segurança.
Por que antes da implantação
Executá-la como pre-upgrade significa que o esquema estará pronto antes de os novos pods iniciarem. O código novo nunca falará com um banco de dados antigo e incompatível.
"helm.sh/hook": pre-upgradeComece com um Job
A migração é executada uma vez e depois termina, então modele-a como um Job do Kubernetes. O Helm aguardará a conclusão do Job antes de continuar a atualização.
apiVersion: batch/v1
kind: Job
metadata:
name: db-migrateAdicione a anotação do hook
Marque o Job como um hook nos metadados. A anotação helm.sh/hook definida como pre-upgrade é o que transforma esse Job comum em um hook.
metadata:
annotations:
"helm.sh/hook": pre-upgradeExecute o comando de migração
O contêiner do Job executa sua ferramenta de migração. Aponte-o para o mesmo banco de dados usado pelo aplicativo, para que as alterações do esquema sejam aplicadas no local correto.
spec:
containers:
- name: migrate
image: myapp:1.4
command: ["./migrate", "up"]Nunca reinicie em caso de falha
Defina a restartPolicy do Job como Never ou OnFailure. Uma migração que fique em um loop infinito bloquearia sua atualização e impediria o Helm de prosseguir.
spec:
template:
spec:
restartPolicy: NeverUse um template para a tag da imagem
Mantenha o migrador sincronizado com o aplicativo usando um template para a tag. Reutilize o mesmo .Values.image.tag lido pelo deployment, para que as versões correspondam.
image: "myapp:{{ .Values.image.tag }}"O Helm bloqueia até a conclusão
Por ser um hook pre-upgrade, o Helm pausa a atualização até que o Job informe sucesso. Se a migração falhar, a implantação nunca ocorrerá. 🛑
Faça a limpeza após o sucesso
Caso contrário, Jobs de migração antigos se acumulam. Combine o hook com uma hook-delete-policy para que um Job bem-sucedido seja removido, em vez de poluir o namespace.
"helm.sh/hook-delete-policy": hook-succeededNomes exclusivos ajudam
Os Jobs de hooks são imutáveis depois de criados, portanto um nome fixo pode colidir na próxima atualização. Incluir .Release.Revision no nome mantém cada execução distinta.
name: db-migrate-{{ .Release.Revision }}Teste com uma simulação
Antes de uma atualização real, renderize o chart para confirmar que o hook está correto. Uma dry-run mostra o manifesto do Job que o Helm criaria sem tocar no cluster.
helm upgrade myapp ./mychart --dry-runVerificação rápida
Você precisa executar uma migração de esquema antes que os novos pods do aplicativo iniciem durante uma atualização.
Recapitulação
Você modelou uma migração como um Job pre-upgrade, definiu restartPolicy como Never e fez o Helm bloquear até o sucesso antes de implantar o código novo. 🗄️
Perguntas Frequentes
A aula “Um Job de migração de DB pre-upgrade” é grátis?
Sim — o texto completo de “Um Job de migração de DB pre-upgrade” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Helm Academy, atualize para CoddyKit PRO. O curso de Helm Academy inclui 4 aulas no total.
O que vou aprender em “Um Job de migração de DB pre-upgrade”?
Anote um Job para executá-lo antes da implantação. Você pratica Helm Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Helm Academy?
Nenhuma experiência prévia é necessária. Helm Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.
Quanto tempo leva a aula “Um Job de migração de DB pre-upgrade”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Helm Academy?
Sim. Cada aula de Helm Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- O que são hooks e quando são executados
- Um Job de migração de DB pre-upgrade
- Pesos e ordenação de hooks
- Políticas de exclusão de hooks