É o responsável por monitorar o estado dos ReplicaSets e por manter a quantidade desejada de réplicas. Ele é o responsável por criar, deletar, atualizar, etc, os ReplicaSets.
Para efetuar o update de um Deployment você pode editar o arquivo de manifesto e aplicar novamente. O parâmetro strategy é utilizado para definir como será feito o update.
RollingUpdate: É o padrão, ele atualiza os Pods um a um.
maxSurge: Define o número máximo de Pods que podem ser criados acima do número de Pods desejados.
maxUnavailable: Define o número máximo de Pods que podem ser indisponibilizados durante o update.
Recreate: Deleta todos os Pods e cria novos com a nova versão.
Fazendo o rollback de um Deployment e conhecendo o comando rollout#
Para exibir o histórico de alterações de um Deployment, utilize o comando rollout history.
Revisando uma versão específica
Para voltar para uma versão anterior, utilize o comando rollout undo.
Utilize kubectl rollout pause naquele deployment critico em produção que você não quer que seja atualizado sem supervisão. Assim quando for necessário atualizar, basta utilizar o comando kubectl rollout resume para voltar a atualizar o deployment.