Manutenção de aplicações do Flink
Tópicos
As aplicações do Flink costumam ser projetadas para execuções por longos períodos, como semanas, meses ou até anos. Como acontece com todos os serviços de execução prolongada, as aplicações de streaming do Flink precisam de manutenção. Isso inclui correções de erros, melhorias e migração para um cluster do Flink de uma versão mais recente.
Quando o arquivo spec muda para os recursos FlinkDeployment
e FlinkSessionJob
, você precisa atualizar a aplicação em execução. Para isso, o operador interrompe o trabalho em execução (a menos que já esteja suspenso) e o reimplanta com o arquivo spec mais recente e, em aplicações com estado, o estado da execução anterior.
Os usuários controlam como gerenciar o estado quando aplicações com estado param e são restauradas com a configuração upgradeMode
do JobSpec
.
Modos de atualização
Introdução opcional
- Sem estado
-
Atualizações de aplicações sem estado começando do estado vazio.
- Último estado
-
Atualizações rápidas em qualquer estado da aplicação (mesmo em trabalhos com falha) não exigem um trabalho íntegro, pois sempre usam o ponto de verificação bem-sucedido mais recente. A recuperação manual pode ser necessária se os metadados de HA forem perdidos. Para limitar o tempo em que o trabalho pode efetuar fallback ao escolher o ponto de verificação mais recente, você pode configurar
kubernetes.operator.job.upgrade.last-state.max.allowed.checkpoint.age
. Se o ponto de verificação for mais antigo que o valor configurado, um ponto de salvamento será usado para trabalhos íntegros. Isso não é compatível com o modo Sessão. - Ponto de salvamento
-
Use o ponto de salvamento para atualização, fornecendo segurança máxima e a possibilidade de servir como ponto de backup ou bifurcação. O ponto de salvamento será criado durante o processo de atualização. Observe que o trabalho do Flink precisa estar em execução para permitir que o ponto de salvamento seja criado. Se o trabalho não estiver íntegro, o ponto de verificação mais recente será usado (a menos que kubernetes.operator.job.upgrade.last-state-fallback.enabled esteja definido como false). Se o ponto de verificação mais recente não estiver disponível, a atualização do trabalho falhará.