Escala automática

O Kf tira partido do Kubernetes Horizontal Pod Autoscaler (HPA) para dimensionar automaticamente o número de pods numa app. Quando o dimensionamento automático está ativado para uma app, é criado um objeto HPA e associado ao objeto da app. Em seguida, calcula dinamicamente a escala de destino e define-a para a app.

Como funciona o ajuste de escala de Kf

O número de pods implementados para uma app Kf é controlado pelo campo replica do respetivo objeto de implementação subjacente. O número alvo de réplicas de implementação é definido através do campo replicas da app.

O ajuste de escala pode ser feito manualmente com o comando kf scale. Este comando está desativado quando o ajuste de escala automático está ativado para evitar segmentações em conflito.

Como funciona o redimensionador automático horizontal de pods do Kubernetes

O Horizontal Pod Autoscaler (HPA) é implementado como um recurso da API Kubernetes (o objeto HPA) e um ciclo de controlo (o controlador HPA) que calcula periodicamente o número de réplicas desejadas com base na utilização atual de recursos. Em seguida, o controlador HPA transmite o número ao objeto de destino que implementa o subrecurso Scale. A escala real é delegada no objeto subjacente e no respetivo controlador. Pode encontrar mais informações na documentação do Kubernetes.

Como o escalador automático determina quando dimensionar

Periodicamente, o controlador HPA consulta a utilização de recursos em relação às métricas especificadas em cada definição de HorizontalPodAutoscaler. O controlador obtém as métricas da API de métricas de recursos para cada Pod. Em seguida, o controlador calcula o valor de utilização como uma percentagem do pedido de recursos equivalente. O número desejado de réplicas é calculado com base na proporção da percentagem atual e da percentagem desejada. Pode ler mais acerca do algoritmo de redimensionamento automático na documentação do Kubernetes.

Métrica

O Kf usa o HPA v1, que só suporta a CPU como métrica de destino.

Como funciona o escalador automático horizontal do Kubernetes com o Kf

Quando o dimensionamento automático está ativado para uma app do Kf, o controlador do Kf cria um objeto HPA com base nos limites e nas regras de dimensionamento especificados na app. Em seguida, o controlador do HPA obtém as especificações do objeto HPA e dimensiona a app em conformidade.

O objeto HPA é eliminado se o dimensionamento automático estiver desativado ou se a app correspondente for eliminada.