Control Plane
apiServer (Object) β Requiredβ
Descriptionβ
The apiServer is the central component of the Kubernetes control plane.
It manages all requests to the Kubernetes API and ensures communication between internal cluster components.
Internal fieldsβ
| Field | Type | Required | Description |
|---|---|---|---|
resources | Object | β | Defines CPU and memory resources allocated to the API Server |
resources.cpu | string | β | Number of vCPUs assigned (ex: 2) |
resources.memory | string | β | Amount of memory allocated (ex: 4Gi) |
resourcesPreset | string | β | Predefined resource profile to simplify configuration |
Possible values: nano, micro, small, medium, large, ... |
Exampleβ
apiServer:
resources:
cpu: 2
memory: 4Gi
resourcesPreset: small
controllerManager (Object) β Requiredβ
Descriptionβ
The controllerManager runs Kubernetes control loops (reconciliation loops).
It ensures the creation, update, and deletion of resources (pods, services, etc.) based on the desired cluster state.
Internal fieldsβ
| Field | Type | Required | Description |
|---|---|---|---|
resources | Object | β | Specifies CPU/memory resources for the Controller Manager |
resources.cpu | string | β | Number of vCPUs reserved |
resources.memory | string | β | Amount of memory allocated |
resourcesPreset | string | β | Predefined size (nano, micro, small, medium, etc.) |
Exampleβ
controllerManager:
resources:
cpu: 2
memory: 2Gi
resourcesPreset: small
konnectivity (Object) β Requiredβ
Descriptionβ
The Konnectivity service manages secure communication between the control plane and nodes.
It replaces the old kube-proxy for outbound node connections and optimizes network connectivity.
Sub-field: serverβ
Defines the configuration of the Konnectivity server responsible for multiplexed connections between the control plane and nodes.
Internal fieldsβ
| Field | Type | Required | Description |
|---|---|---|---|
resources | Object | β | Specifies CPU/memory resources for the Konnectivity server |
resources.cpu | string | β | Number of vCPUs |
resources.memory | string | β | Amount of memory |
resourcesPreset | string | β | Predefined profile (nano, micro, small, medium, etc.) |
Exampleβ
konnectivity:
server:
resources:
cpu: 1
memory: 1Gi
resourcesPreset: nano
scheduler (Object) β Requiredβ
Descriptionβ
The scheduler determines on which node each pod should run based on resource constraints, affinity rules, and topology.
It is essential for cluster performance and workload balancing.
Internal fieldsβ
| Field | Type | Required | Description |
|---|---|---|---|
resources | Object | β | Defines resources allocated to the Scheduler |
resources.cpu | string | β | Number of vCPUs |
resources.memory | string | β | Amount of memory |
resourcesPreset | string | β | Predefined size (nano, micro, small, medium, etc.) |
Exampleβ
scheduler:
resources:
cpu: 1
memory: 512Mi
resourcesPreset: micro
replicas (integer) β Requiredβ
Descriptionβ
The replicas field defines the number of control plane instances.
An odd number of replicas (usually 3) is recommended to ensure high availability and quorum for etcd.
Exampleβ
replicas: 3
Types of resourcesPresetβ
# Available presets
resourcesPreset: "nano" # 0.1 CPU, 128 MiB RAM
resourcesPreset: "micro" # 0.25 CPU, 256 MiB RAM
resourcesPreset: "small" # 0.5 CPU, 512 MiB RAM
resourcesPreset: "medium" # 0.5 CPU, 1 GiB RAM
resourcesPreset: "large" # 1 CPU, 2 GiB RAM
resourcesPreset: "xlarge" # 2 CPU, 4 GiB RAM
resourcesPreset: "2xlarge" # 4 CPU, 8 GiB RAM
π‘ Best Practicesβ
- Always set
replicas: 3for redundancy. - Use consistent
resourcesPresetvalues across components. - Adjust resources based on workload (production clusters β
mediumorlarge). - Do not under-size the
apiServer, as it is the most heavily used component.