-
Notifications
You must be signed in to change notification settings - Fork 13
Gestão de Recursos em Flow Runs
Vocabulário:
-
namespaces no Kubernetes: Consistem num mecanimos que "permite isolar grupos de recursos dentro do cluster". Isto facilita o controle de gastos e possibilita uma visão fina do consumo de recursos. Na BD temos o namespace prefect-agent-basedosdados, responsável pelo computo dos recursos alocados para as runs de pipelines com agent basedosdados.
-
Agents do prefect e Kubernetes: O Prefect utiliza um componente chamado agent, que é responsável por observar os flow runs pendentes e iniciar a criação dos jobs no cluster Kubernetes. O agent é configurado para funcionar dentro de um namespace específico, e sempre que ele detecta um novo flow run, ele aciona o Kubernetes para criar o job e, consequentemente, o pod onde o flow será executado.
-
Flow runs e jobs: Para cada flow run, um job é criado dentro do namespace especificado. Quando o job é deployado no cluster kubernetes, o Kubernetes aloca um pod fazer a execução.
Para modificar a alocação de recursos, basta alterar os parâmetros de configuração das runs com a classe KubernetesRun
Os limites modificados são válidos somente para este Flow
from prefect.run_configs import KubernetesRun
flow_siasus.run_config = KubernetesRun(
image=constants.DOCKER_IMAGE.value,
memory_limit = '12Gi',
memory_request = '4Gi',
cpu_limit = 1,
)
Link para o flow
- memory_limit = limite de memória alocado no pod para a Run;
- memory_request = valor de memória alocado no início da Run;
- cpu_limit = quantidade de CPUs alocados