Kubernetes - 如何计算每个容器所需的资源?

Kubernetes - 如何计算每个容器所需的资源?

如何确定为每个应用程序部署分配多少最小和最大资源?我正在设置一个集群,但我还没有设置任何资源并让它自由运行。

我想我可以用它top command计算出高峰时段的负载并进行处理,但最高值仍然显示为 6% 或 10%,但我不知道如何计算它们以产生类似0.5 cpu或的结果100 MB。是否有方法/公式可以根据使用情况确定最大值和最小值top command

我正在运行两个 t3.medium 节点,并且有以下 pod httpd and tomcat in namespace1、、mysql in namepsace2jenkins and gitlab in namespace3是否有关于其所需最少资源的指南?或者我必须根据 top 或其他方法来计算吗?

答案1

分配给 pod 的资源取决于你的应用程序使用情况。例如,jenkins使用 helm 安装时,它会指定以下内容资源请求和限制

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

但为了避免由于资源不足而导致 Pod 终止,你可以使用Horizontal Pod Autoscaler根据资源指标来扩大或缩小 Pod 规模资源消耗(或任何其他自定义指标,如请求等)。HPA 要求metrics-server在您的集群中运行。

可以使用以下方式轻松创建kubectl autoscale, 例如:

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

其中--min,运行的最小副本数为,--max负载增加时将创建的 pod 的最大副本数为。

相关内容