Answers: <p>Just want to throw out an example of it not being the CPU / mem.</p>
  
  <p>I remade a cluster, which included a new node pool, nodes, etc. Then tried re-deploying some of the pods that were on the previous cluster. 3 of them were working, and one kept showing "Does not have minimum availability".</p>
  
  <p>It turns out, the pod in question's deployment file had <code>spec.template.spec.nodeName</code> hard-coded to one of the nodes from the previous cluster. In the new cluster, that node does not exist, so it failed.</p>
  
  <p>Review your k8s deployment file (.yaml or .json) if you are running into this issue and the other solutions don't work. Maybe even service files as well.</p>
  
Answers: CC BY-SA 4.0
Answers: 2020-04-13T18:04:21.740Z
Answers: 2020-04-13T18:04:21.740Z
Answers: Jake Conniff
Answers: <p>I have faced a similar error for my Gitlab runner deployment on the GKE cluster. As you can see from the error, something is wrong with our pods. Why shouldn't we go and check the pod status?</p>
  <pre><code>kubectl describe pods -n namespace 
  </code></pre>
  <p>You will get a fair idea about what's the real issue behind the error “<em>Does not have minimum availability</em>”.</p>
  <p>In my case, the node was unable to pull the image for my deployment from the google container registry (GCR). I checked the permission for the service account used for k8s-cluster to pull the images from GCR.</p>
  <p>I provided the correct roles and then it worked. Roles:</p>
  <ul>
  <li>storage</li>
  <li>object</li>
  <li>viewer</li>
  </ul>
  
Answers: CC BY-SA 4.0
Answers: 2021-03-17T18:09:08.347Z
Answers: 2021-03-18T13:44:40.593Z
Answers: 2021-03-18T13:44:40.593Z
Answers: chinmay mandal
Answers: <p>If your persistent volumes aren't creating, it'll cause this error. So add DISK to CPU/Mem/NodeSpec requirements.</p>
  
Answers: CC BY-SA 4.0
Answers: 2020-05-13T08:16:52.270Z
Answers: 2020-05-13T08:30:22.840Z
Answers: 2020-05-13T08:30:22.840Z
Answers: Chris Godwin
Answers: <p>I installed a helm chart ok.
  Then uninstalled it and installed it again. Then I got this error on some nodes.
  For me the solution was to delete the cluster and recreated it. It's not a great solution but could be worth a try.</p>
  
Answers: CC BY-SA 4.0
Answers: 2022-07-07T09:25:53.507Z
Answers: 2022-07-07T09:25:53.507Z
Answers: intotecho
Answers: <p>Chinmay Mandal answer is legend. Basically this saved me a lot of time <code>kubectl describe pods -n namespace</code>. Just read through the file and in my case I had the k8s &quot;taints&quot; wrong, and for some reason was impacting on how the pods gather resources from node.</p>
  
Answers: CC BY-SA 4.0
Answers: 2021-12-20T06:58:09.763Z
Answers: 2021-12-20T06:58:09.763Z
Answers: Juan Monge
Answers: <p>As @Tensibai indicated in one the comments, this could be caused as there is insufficient CPU or memory, but that is not always the case.</p>
  <p>For example, a helm chart was just deployed, it failed and the workload in GCP indicated that:</p>
  <blockquote>
  <p>Pod errors: CrashLoopBackOff</p>
  </blockquote>
  <p>Based on the comment of @Tensibai the first impression was that there were insufficient resources, but further analysis using <code>kubectl describe pod &lt;pod-name&gt;</code> indicated that in this case the livenessProbe check failed:</p>
  <pre><code>Liveness probe failed: Get http://10.16.0.13:80/: dial 
  tcp 10.16.0.13:80: getsockopt: connection refused
  </code></pre>
  <p>In summary, the <code>Does not have minimum availability</code> message is generic. Multiple issues could trigger this and more in dept analysis is required to find the actual error.</p>
  
Answers: CC BY-SA 4.0
Answers: 2018-07-05T05:37:35.030Z
Answers: Hi @030, what is the solution?
Answers: Abdul Rehman
Answers: CC BY-SA 4.0
Answers: 2018-07-05T16:47:40.020Z
Answers: @AbdulRehman the `livenessProbe` failed
Answers: 030
Answers: CC BY-SA 4.0
Answers: 2019-10-03T17:59:29.023Z
Answers: `Does not have minimum availability` simply means that not enough pods are running to meet the required replicasets then?
Answers: Alexej Magura
Answers: CC BY-SA 4.0
Answers: 2020-08-26T06:34:49.853Z
Answers: Kubernetes declarative approach works well but is hell to debug. your answer revealed more information! I wonder why the error doesn't appear in the forefront
Answers: Rubber Duck
Answers: CC BY-SA 4.0
Answers: 2018-04-30T08:42:53.277Z
Answers: 2021-03-06T00:13:39.640Z
Answers: 2021-03-06T00:13:39.640Z
Answers: 030
Body: <p><a href="https://i.sstatic.net/JhblC.png" rel="noreferrer"><img src="https://i.sstatic.net/JhblC.png" alt="enter image description here"></a></p>
  
  <p>What does "Does not have minimum availability" mean? </p>
  
  <p><a href="https://github.com/kubernetes/kubernetes/issues/39785" rel="noreferrer">A GitHub discussion</a> was found, but it is not clear to me what the error message means.</p>
  
Comments: CC BY-SA 4.0
Comments: 2021-10-01T00:28:14.583Z
Comments: In my case I had only 2 t2.micro EC2 instances :) Adding more resolved the issue.
Comments: x-yuri
Comments: CC BY-SA 3.0
Comments: 2018-04-27T13:32:58.110Z
Comments: Not enough cpu share or memory exhausted...
Comments: Tensibai
Comments: CC BY-SA 4.0
Comments: 2018-07-05T06:25:17.900Z
Comments: Hi @030, how you have fixed this issue? please!
Comments: Abdul Rehman
Comments: CC BY-SA 4.0
Comments: 2018-07-05T16:36:50.763Z
Comments: @AbdulRehman Please check the accepted answer
Comments: 030
Tags: <kubernetes>
Title: What does "Does not have minimum availability" in k8s mean?
UserDisplayName: 030
ThreadText: # What does "Does not have minimum availability" in k8s mean?
  
  (Asked by: username_0 on 2018-04-27)
  
  [![enter image description here](https://i.sstatic.net/JhblC.png)](https://i.sstatic.net/JhblC.png)
  
  What does "Does not have minimum availability" mean?
  
  [A GitHub discussion](https://github.com/kubernetes/kubernetes/issues/39785) was found, but it is not clear to me what the error message means.
  
  **Tags:** kubernetes
  
  > **Comments:**
  > **username_2**: Not enough cpu share or memory exhausted...  
  > **username_3**: Hi @username_0, how you have fixed this issue? please!  
  > **username_0**: @username_3 Please check the accepted answer  
  > **username_1**: In my case I had only 2 t2.micro EC2 instances :) Adding more resolved the issue.  
  
  ---
  
  ## 6 answers
  
  ### Answer by username_0 on 2018-04-30. Score: 28 | Accepted answer
  
  As @username_2 indicated in one the comments, this could be caused as there is insufficient CPU or memory, but that is not always the case.
  
  For example, a helm chart was just deployed, it failed and the workload in GCP indicated that:
  
  > Pod errors: CrashLoopBackOff
  
  Based on the comment of @username_2 the first impression was that there were insufficient resources, but further analysis using `kubectl describe pod <pod-name>` indicated that in this case the livenessProbe check failed:
  
  ```
  Liveness probe failed: Get http://10.16.0.13:80/: dial 
  tcp 10.16.0.13:80: getsockopt: connection refused
  
  ```
  
  In summary, the `Does not have minimum availability` message is generic. Multiple issues could trigger this and more in dept analysis is required to find the actual error.
  
  > **Comments:**
  > **username_3**: Hi @username_0, what is the solution?  
  > **username_0**: @username_3 the `livenessProbe` failed  
  > **username_9**: `Does not have minimum availability` simply means that not enough pods are running to meet the required replicasets then?  
  > **username_10**: Kubernetes declarative approach works well but is hell to debug. your answer revealed more information! I wonder why the error doesn't appear in the forefront  
  
  ---
  
  ### Answer by username_4 on 2020-04-13. Score: 4
  
  Just want to throw out an example of it not being the CPU / mem.
  
  I remade a cluster, which included a new node pool, nodes, etc. Then tried re-deploying some of the pods that were on the previous cluster. 3 of them were working, and one kept showing "Does not have minimum availability".
  
  It turns out, the pod in question's deployment file had `spec.template.spec.nodeName` hard-coded to one of the nodes from the previous cluster. In the new cluster, that node does not exist, so it failed.
  
  Review your k8s deployment file (.yaml or .json) if you are running into this issue and the other solutions don't work. Maybe even service files as well.
  
  
  ---
  
  ### Answer by username_5 on 2021-03-17. Score: 3
  
  I have faced a similar error for my Gitlab runner deployment on the GKE cluster. As you can see from the error, something is wrong with our pods. Why shouldn't we go and check the pod status?
  
  ```
  kubectl describe pods -n namespace 
  
  ```
  
  You will get a fair idea about what's the real issue behind the error “*Does not have minimum availability*”.
  
  In my case, the node was unable to pull the image for my deployment from the google container registry (GCR). I checked the permission for the service account used for k8s-cluster to pull the images from GCR.
  
  I provided the correct roles and then it worked. Roles:
  
  * storage
  * object
  * viewer
  
  
  ---
  
  ### Answer by username_6 on 2020-05-13. Score: 1
  
  If your persistent volumes aren't creating, it'll cause this error. So add DISK to CPU/Mem/NodeSpec requirements.
  
  
  ---
  
  ### Answer by username_7 on 2022-07-07. Score: 0
  
  I installed a helm chart ok.
  Then uninstalled it and installed it again. Then I got this error on some nodes.
  For me the solution was to delete the cluster and recreated it. It's not a great solution but could be worth a try.
  
  
  ---
  
  ### Answer by username_8 on 2021-12-20. Score: 0
  
  username_5 answer is legend. Basically this saved me a lot of time `kubectl describe pods -n namespace`. Just read through the file and in my case I had the k8s "taints" wrong, and for some reason was impacting on how the pods gather resources from node.
  
  
  ---
  
  