// Module included in the following assemblies:
//
// * osd_architecture/osd_policy/osd-service-definition.adoc
:_mod-docs-content-type: CONCEPT
[id="instance-types_{context}"]
= Instance types

[role="_abstract"]
Single availability zone clusters require a minimum of 2 worker nodes for Customer Cloud Subscription (CCS) clusters deployed to a single availability zone. A minimum of 4 worker nodes is required for non-CCS clusters. These 4 worker nodes are included in the base subscription.

Multiple availability zone clusters require a minimum of 3 worker nodes for Customer Cloud Subscription (CCS) clusters, 1 deployed to each of 3 availability zones. A minimum of 9 worker nodes are required for non-CCS clusters. These 9 worker nodes are included in the base subscription, and additional nodes must be purchased in multiples of 3 to maintain proper node distribution.

[NOTE]
====
All worker nodes within a single {product-title} machine pool must be of the same type and size. However, worker nodes across multiple machine pools within an {product-title} cluster can be of different types and sizes.
====

Control plane and infrastructure nodes are deployed and managed by Red{nbsp}Hat. There are at least 3 control plane nodes that handle etcd and API-related workloads. There are at least 2 infrastructure nodes that handle metrics, routing, the web console, and other workloads. You must not run any workloads on the control plane and infrastructure nodes. Any workloads you intend to run must be deployed on worker nodes.
[IMPORTANT]
====
Shutting down the underlying infrastructure through the cloud provider console is unsupported and can lead to data loss.
====

For more information about Red{nbsp}Hat workloads that must be deployed on worker nodes, see the _Red{nbsp}Hat Operator support_ section below.

[NOTE]
====
Approximately 1 vCPU core and 1 GiB of memory are reserved on each worker node and removed from allocatable resources. This is necessary to run link:https://kubernetes.io/docs/tasks/administer-cluster/reserve-compute-resources/#system-reserved[processes required by the underlying platform]. This includes system daemons such as udev, kubelet, container runtime, and so on, and also accounts for kernel reservations. {OCP} core systems such as audit log aggregation, metrics collection, DNS, image registry, SDN, and so on might consume additional allocatable resources to maintain the stability and maintainability of the cluster. The additional resources consumed might vary based on usage.
====