
¿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 command
calcular 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 cpu
o 100 MB
. ¿Existe algún método/fórmula para determinar el máximo y el mínimo según top command
el 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 jenkins
usando 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 Autoscaler
con métricas de recursos para ampliar o reducir los grupos segúnconsumo de recursos(o cualquier otrométricas personalizadas, como solicitudes, etc.). HPA requieremetrics-server
que 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 --min
es el número mínimo de réplicas que se ejecutarán y --max
el número máximo de réplicas de los pods que se crearán en caso de aumento de carga.