Kubernetes: ¿Cómo calcular los recursos que necesitamos para cada contenedor?

Kubernetes: ¿Cómo calcular los recursos que necesitamos para cada contenedor?

¿Cómo calcular cuántos recursos mínimos y máximos asignar para cada implementación de aplicación? Estoy configurando un clúster y no he configurado ningún recurso ni lo dejo funcionar libremente.

Supongo que me vendría bien top commandcalcular la carga durante el tiempo pico y trabajar en eso, pero aún así el máximo dice 6% o 10%, pero no estoy seguro de cómo calcularlos para producir algo como 0.5 cpuo 100 MB. ¿Existe algún método/fórmula para determinar el máximo y el mínimo según top commandel uso?

Estoy ejecutando dos nodos t3.medium y tengo los siguientes pods httpd and tomcat in namespace1, mysql in namepsace2. jenkins and gitlab in namespace3¿Existe alguna guía sobre los recursos mínimos que necesita? ¿O tengo que calcularlo según la parte superior o algún otro método?

Respuesta1

Los recursos que se asignarán al pod dependen del uso de su aplicación. Por ejemplo, al instalar jenkinsusando helm, se especifica lo siguientesolicitudes y límites de recursos:

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

Pero para evitar la terminación del pod debido a recursos insuficientes, puede utilizarHorizontal Pod Autoscalercon métricas de recursos para ampliar o reducir los grupos segúnconsumo de recursos(o cualquier otrométricas personalizadas, como solicitudes, etc.). HPA requieremetrics-serverque se esté ejecutando en su clúster.

Se puede crear fácilmente usandokubectl autoscale, Por ejemplo:

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

Donde --mines el número mínimo de réplicas que se ejecutarán y --maxel número máximo de réplicas de los pods que se crearán en caso de aumento de carga.

información relacionada