<p>Kubernetes on Google Cloud Platform configures a default CPU request and limit.</p>

<p>I make use of deamonsets and deamonset pods should use as much CPU as possible. </p>

<p>Manually increasing the upper limit is possible but the upper bound must be reconfigured in case of new nodes and the upper bound must be set much lower than what is available on the node in order to have rolling updates allowing pods scheduling.</p>

<p>This requires a lot of manual actions and some resources are just not used most of the time. Is there a way to completely remove the default CPU limit so that pods can use all available CPUs?</p>

<p>GKE, by default, creates a <a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.15/#limitrange-v1-core" rel="nofollow noreferrer">LimitRange</a> object named <code>limits</code> in the <code>default</code> namespace looking like this:</p>

<pre><code>apiVersion: v1
kind: LimitRange
metadata:
  name: limits
spec:
  limits:
  - defaultRequest:
      cpu: 100m
    type: Container
</code></pre>

<p>So, if you want to change this, you can either edit it:</p>

<pre><code>kubectl edit limitrange limits
</code></pre>

<p>Or you can delete it altogether:</p>

<pre><code>kubectl delete limitrange limits
</code></pre>

<p><em>Note: the policies in the LimitRange objects are enforced by the <a href="https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/#limitranger" rel="nofollow noreferrer">LimitRanger admission controller</a> which is enabled by default in GKE.</em></p>
