<p>I have been trying to set up Knative development environment on my system. But everytime i deploy Istio , the pilot remain in pending state and i find its because of resource exhaustion.</p>

<p>I followed basic setup guide from Knative docs. i.e. serving/blob/master/DEVELOPMENT.md</p>

<p>Now if i install and deploy istio according to it, the resources get exhausted and istio-pilot remain in pending state due to no node available.</p>

<p>If i try same with the one given on installation guide i.e.
<a href="https://knative.dev/docs/install/installing-istio/" rel="nofollow noreferrer">https://knative.dev/docs/install/installing-istio/</a></p>

<p>It works fine until later when i restart the cluster the api-server get stopped which is according to what i found by searching is also due to lack of resources.</p>

<p>So What is the exact requirement for Knative set up?</p>

<p>I used system with 8 -core processor and 32GB RAM. </p>

<p>Am i allocating it wrong? as much I understood we have to give at least 8Gb memory and 6 CPU to a single node kubernetes structures(That's what i'm using). What about the resources Istio and Knative deployments use?</p>

<p>I checked for the resources and limits in node and got the limits are set to 0%. </p>

<p>I have already tried to limit the CPU and RAM in minikube config, then with --cpu and --memory on the time of starting the minikube, but the output remain the same. </p>

<p>Minikube started with : minikube start</p>

<pre><code>   🔥  Creating virtualbox VM (CPUs=6, Memory=8192MB, Disk=20000MB) ...
   🐳  Preparing Kubernetes v1.15.2 on Docker 18.09.8 ...
   🚜  Pulling images ...
</code></pre>

<p>ISTIO Deployed by:</p>

<pre><code>    kubectl apply -f ./third_party/istio-1.2-latest/istio-crds.yaml
    while [[ $(kubectl get crd gateways.networking.istio.io -o 
    jsonpath='{.status.conditions[?(@.type=="Established")].status}') != 
    'True' ]]; do
    echo "Waiting on Istio CRDs"; sleep 1
    done
    kubectl apply -f ./third_party/istio-1.2-latest/istio.yaml

</code></pre>

<p>The pilot remain pending and after describing the pod we get :</p>

<pre><code>Events:
  Type     Reason            Age                  From               Message
  ----     ------            ----                 ----               -------
  Warning  FailedScheduling  71s (x4 over 5m12s)  default-scheduler  0/1 nodes are available: 1 Insufficient cpu.
</code></pre>

<p>Output for <code>kubectl describe node nodename</code>:</p>

<pre><code>Allocated resources:
  (Total limits may be over 100 percent, i.e., overcommitted.)
  Resource           Requests          Limits
  --------           --------          ------
  cpu                5105m (85%)       13800m (229%)
  memory             3749366272 (45%)  9497290Ki (117%)
  ephemeral-storage  0 (0%)            0 (0%)
Events:
  Type    Reason                   Age                From                  Message
  ----    ------                   ----               ----                  -------
  Normal  Starting                 19m                kubelet, minikube     Starting kubelet.
  Normal  NodeHasSufficientMemory  19m (x8 over 19m)  kubelet, minikube     Node minikube status is now: NodeHasSufficientMemory
  Normal  NodeHasNoDiskPressure    19m (x8 over 19m)  kubelet, minikube     Node minikube status is now: NodeHasNoDiskPressure
  Normal  NodeHasSufficientPID     19m (x7 over 19m)  kubelet, minikube     Node minikube status is now: NodeHasSufficientPID
  Normal  NodeAllocatableEnforced  19m                kubelet, minikube     Updated Node Allocatable limit across pods
  Normal  Starting                 18m                kube-proxy, minikube  Starting kube-proxy.
</code></pre>

<p>The setup should have been successful as i did set up the limits with RequestQuotas and LimitRange too. But nothing is working. </p>

<p>what am i doing wrong here?</p>

rskcodin
<p>You definitely don't have enough resources. Only for <a href="https://istio.io/docs/setup/kubernetes/platform-setup/minikube/" rel="nofollow noreferrer"><strong>Istio</strong></a> on <strong>Minikube</strong> you need:</p>

<blockquote>
  <p>16384 MB of memory and 4 CPUs</p>
</blockquote>

<p>Add to this requirements for <a href="https://knative.dev/docs/install/knative-with-gke/#creating-a-kubernetes-cluster" rel="nofollow noreferrer"><strong>Knative</strong></a> which are not included in the above and you'll see that resources you provide are not enough.</p>
