Um Pod é destinado a operação continua de uma aplicação. Você implanta a aplicação com uma versão específica e mantem ela em execução sem interrupções até que ocorra uma possível atualização.
O Job é uma primitiva do Kubernetes com um objetivo diferente. Ele executa uma funcionalidade até que um número determinado de conclusões seja atingindo, tornando-o uma boa escolha para operações como importação/exportação de dados ou processos I/O finitos.
The actual work managed by a Job is still running inside of a Pod. Therefore, you can think of a Job as a higher-level coordination instance for Pods executing the workload.
Após a conclusão do Job e seus Pods, o Kubernetes não exclui os objetos automaticamente, eles serão mantidos até que sejam explicitamente deletados.
Keeping those objects helps with debugging the command run inside of the Pod and gives you a chance to inspect the logs
O Kubernetes suporta um mecanismo de limpeza automático para Jobs e Pods controlados por eles através do atributo spec.ttlSecondsAfterFinished
. Seja consciente, esta feature ainda em alpha e precisa ser habilitada explicitamente no cluster pela flag feature.