
Olhando para meu cluster 1.23 do GKE em "observabilidade", vejo um uso de memória de 200% ou mais. A análise mostra que a maior parte é pelo v2k-system
namespace, que AFAIK é interno do GKE. Por que ele usa mais de 2x memória do que realmente solicita? Eu tenho meus próprios pods tentando obter memória e falhando - suspeito que seja porque os pods do sistema v2k ocupam toda a memória
Responder1
Sim, você está correto, é mais de 100% e interno do GKE.
O uso de memória para todos os contêineres no cluster é dividido pelo total de solicitações de memória para esses contêineres. Isso pode ser superior a 100% se o uso total exceder a solicitação total.
Utilização de memória: A utilização de memória de contêineres que pode ser atribuída a um recurso dentro do intervalo de tempo selecionado.
A métrica usada ékubernetes.io/container/memory/request_utilization. Esta API de métricas oferece um conjunto básico de métricas para oferecer suporte ao escalonamento automático e casos de uso semelhantes. Esta API disponibiliza informações sobre o uso de recursos para nós e pods, incluindo métricas de CPU e memória. Se você implantar oAPI de métricasem seu cluster, os clientes da API Kubernetes podem consultar essas informações.
Existem 2 tipos de memória disponíveis conforme abaixo:
1)Memória evitávelé a memória que será removida do recurso se o uso se tornar muito alto.
2)Memória não despejávelo uso exceder os limites, o contêiner poderá ser encerrado. Para obter mais informações sobre limites de recursos, consulte e use Solicitações e limitesisso pode ajudar a resolver seu problema.
É garantido que um contêiner tenha tanta memória quanto solicitar, mas não é permitido usar mais memória do que seu limite.Atribuir recursos de memória a contêineres e podsPara maiores informações.