> For the complete documentation index, see [llms.txt](https://docs.ionos.com/cloud/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.ionos.com/cloud/containers/managed-kubernetes/overview/limitations.md).

# Limitations

Managed Kubernetes limitations: technical constraints, resource quotas, and known constraints.

Following are a few limitations that you can encounter while using both **Public** and **Private Node Pools**:

* The maximum number of pods supported per node is **110**. It is a Kubernetes default value.
* The recommended maximum number of nodes per node pool is **20**.
* The maximum number of nodes in a node pool is **100**.
* A total of **500** node pools per cluster is supported.
* The recommended maximum number of node pools per cluster are **50**.
* The maximum number of supported nodes per cluster is **5000**.
* While a node can theoretically support a maximum of **20** volumes, the practical limit can be lower because each node has only 24 Peripheral Component Interconnect (PCI) slots shared among all peripherals.
* Managed Kubernetes clusters use [<mark style="color:blue;">**Block Storage**</mark>](/cloud/backup-and-storage/block-storage.md) as the underlying storage system. As a result, Block Storage volume limits and performance thresholds apply to your cluster nodes. Before provisioning persistent volumes, see [<mark style="color:blue;">Limitations</mark>](/cloud/backup-and-storage/block-storage/overview/limitations.md).

## Control plane

The control plane is subject to the following resource limits:

* Each `kube-apiserver` replica is limited to **8 GiB** of memory.
* Each cluster runs two `kube-apiserver` replicas, resulting in a maximum of 16 GiB of memory for the API server across the cluster. This memory is not shared between replicas; a single replica cannot exceed 8 GiB.

If the API server's memory consumption reaches this limit, the affected replica is restarted. This can cause temporary interruptions in API availability, for example, failing `kubectl` commands or delayed reconciliation. Workloads running on your nodes are not directly affected, but controllers and operators that depend on the Kubernetes API may be.

To stay within the limit, avoid patterns that increase API server memory consumption:

* A very high number of objects in the cluster.
* Frequent full `LIST` requests without pagination or field selectors.
* A large number of concurrent watch clients.

## Private Node Pools

Following are a few limitations that you can encounter while using **Private Node Pools**:

* Managed Kubernetes clusters for Private Node Pools are bound to **one region**. When you create a node pool, you need to provide a data center, which has to be in the same location as defined in the **cluster**. You can create Private Node Pools only in a [<mark style="color:blue;">Virtual Data Center (VDC)</mark>](https://docs.ionos.com/cloud/support/general-information/glossary-of-terms#virtual-data-center-vdc) that shares the region with the managed Kubernetes cluster.
* Kubernetes services of type **LoadBalancer** are currently not supported.
* The **static node Internet Protocol (IP)** addresses are not supported.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.ionos.com/cloud/containers/managed-kubernetes/overview/limitations.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
