Recommendation for resources requests and limits

Hi,

Could you recommend Kubernetes resources requests/limits settings for the control plane components of Istio? I cannot find anything about it in the official documentation.

I installed the control plane by istioctl. As I can see the default resources requests/limits settings look as follow:

$ kubectl get pod istio-sidecar-injector-fdb999d79-hwg2b -o json | jq '.spec.containers[] | .resources'
{
  "requests": {
    "cpu": "10m"
  }
}

$ kubectl get pod istio-citadel-58475847c7-lwvp4 -o json | jq '.spec.containers[] | .resources'
{
  "requests": {
    "cpu": "10m"
  }
}

$ kubectl get pod istio-galley-7546c89cc5-wvkzj -o json | jq '.spec.containers[] | .resources'
{
  "requests": {
    "cpu": "100m"
  }
}

$ kubectl get pod istio-pilot-67567f5b44-6dblv -o json | jq '.spec.containers[] | .resources'
{
  "requests": {
    "cpu": "500m",
    "memory": "2Gi"
  }
}

$ kubectl get pod istio-telemetry-75c9df8b6c-pn29n -o json | jq '.spec.containers[] | .resources'
{
  "limits": {
    "cpu": "4800m",
    "memory": "4G"
  },
  "requests": {
    "cpu": "1",
    "memory": "1G"
  }
}

Thank you in advance!

Cheers,
Pawel

Hi Pawel,
if you installed using say “istioctl manifest apply” you’d get the default profile which includes reasonable starting points for the control plane resources. You can explore the different profile resource settings using istioctl profile dump e.g.

istioctl profile dump default --config-path trafficManagement.components.pilot.k8s
...
resources:
  requests:
    cpu: 500m
    memory: 2048Mi

...

Hi @ostromart,

Thank you for the response. I was able to retrieve resource requests for pilot, galley (in this case only CPU) and also requests/limits for mixer. However, I wasn’t able to gather resources limits and resources requests/limits are missing for the injector and citadel.

Could you tell me what are recommended settings by the Istio community?

Cheers,
Pawel

These are very low resource usage so the k8s defaults should be fine.