One or more containers do not have resource limits - warning in VS Code Kubernetes tools

9/26/2020

After creating the pod-definition.yml file.

apiVersion: v1
kind: Pod
metadata:
    name: myapp-pod
    labels: 
      app: myapp
      type: server
spec:
    containers:
        - name: nginx-container
          image: nginx

The linter is giving this warning.

One or more containers do not have resource limits - this could starve other processes

-- Rushikesh Sabde
kubernetes
visual-studio-code

3 Answers

9/26/2020

It is a good practice to declare resource requests and limits for both memory and cpu for each container. This helps to schedule the container to a node that has available resources for your Pod, and also so that your Pod does not use resources that other Pods needs - therefore the "this could starve other processes" message.

E.g. to add resource requests and limits to your example

apiVersion: v1
kind: Pod
metadata:
  name: myapp-pod
  labels: 
    app: myapp
    type: server
spec:
  containers:
  - name: nginx-container
    image: nginx
    resources:
      limits:
        memory: 512Mi
        cpu: "1"
      requests:
        memory: 256Mi
        cpu: "0.2"
-- Jonas
Source: StackOverflow

11/11/2020

As you know, that warning comes from the linter in VS Code Extension ms-kubernetes-tools.vscode-kubernetes-tools. If you want the linter to disable the warning

One or more containers do not have resource limits - this could starve other processes

then edit VS Code setting.json to look like this:

{
    "vs-kubernetes": {
        "disable-linters": ["resource-limits"],
        ...
    },
    ...
}
-- Vincent Yin
Source: StackOverflow

9/26/2020

I was working with my YAML object files and previously I have every single object in a separated file and I recently noticed that for a "Deployment" object file I have the following linting warning:

One or more containers do not have resource limits - this could starve other processes

Before fixing that issue, I decided to refactor my object definition a bit and define more than one object in a single file if they are related. So now I have the same Deployment as before along with a Volume Claim and a Service, everything in the same file.

But then I noted that the linting warning doesn't show up for the Deployment, but it does show up if I delete the Service and Volume Claim from the file, leaving the Deployment alone.

So I suppose the linting code is not taking into account the possibility of having many objects definition per file.

Thanks!

-- coolcoder
Source: StackOverflow