Agora você tem uma imagem definida, é hora de ajudar o Kubernetes a agendar essa imagem com eficiência para os nodes apropriados e uma das melhores dicas de otimização é que você precisa ser mais específico com as restrições de recursos.
O que isso significa é que você pode definir as solicitações e colocar limites na CPU, memória e outros recursos, pois caso você decida usar um microsserviço baseado em Go como servidor de e-mail, portanto, pode designar o perfil de recurso abaixo:
resources:
requests:
memory: 1Gi
cpu: 250m
limits:
memory: 2.5Gi
cpu: 750m
Alguns pontos merecem atenção para essa definição:
Por favor não faço isso:
resources: {}
E nem isso com CPU muito baixo:
resources:
requests:
cpu: "1m"
Já viu OOMKilled?
Seria dele que estamos falando. Quer minimizar a frequência com que isso pode acontecer?
Não comprometa demais sua memória e use a solicitação de memória de configuração de QoS (Quality of Service) garantida igual ao limite.
Provável obter OOMkilled com mais frequência:
resources:
requests:
memory: "128Mi"
cpu: "500m"
limits:
memory: "256Mi"
cpu: 2
Indicado e Garantido para aplicações que usam desses valores de recursos, onde a boa prática é configurar valores iguais, tanto em requests e limits: