Kubernetes – Como calcular os recursos necessários para cada contêiner?

Kubernetes – Como calcular os recursos necessários para cada contêiner?

Como descobrir quantos recursos mínimos e máximos devem ser alocados para cada implantação de aplicativo? Estou configurando um cluster e não configurei nenhum recurso e deixei ele rodar livremente.

Acho que poderia usar top commandpara descobrir a carga durante o horário de pico e trabalhar nisso, mas ainda assim o máximo diz 6% ou 10%, mas não tenho certeza de como calculá-los para produzir algo como 0.5 cpuou 100 MB. Existe um método/fórmula para determinar o máximo e o mínimo com base no top commanduso?

Estou executando dois nós t3.medium e tenho os seguintes pods httpd and tomcat in namespace1,,, mysql in namepsace2. jenkins and gitlab in namespace3Existe algum guia sobre os recursos mínimos necessários? ou preciso descobrir isso com base no topo ou em algum outro método?

Responder1

Os recursos a serem atribuídos ao pod dependem do uso do seu aplicativo. Por exemplo, ao instalar jenkinsusando o helm, ele especificou o seguintesolicitações e limites de recursos:

  resources:
    requests:
      cpu: "50m"
      memory: "256Mi"
    limits:
      cpu: "2000m"
      memory: "4096Mi"

Mas para evitar o encerramento do pod devido a recursos insuficientes, você pode usarHorizontal Pod Autoscalercom métricas de recursos para aumentar ou diminuir os pods com base emconsumo de recursos(ou qualquer outrométricas personalizadas, como solicitações etc.). HPA requermetrics-serverpara estar em execução em seu cluster.

Pode ser facilmente criado usandokubectl autoscale, por exemplo:

kubectl autoscale deployment <deployment-name> --cpu-percent=50 --min=1 --max=10

Onde --miné o número mínimo de réplicas a serem executadas e --maxé o máximo de réplicas dos pods que serão criados em caso de aumento de carga.

informação relacionada