---
id: "container-orchestrator"
type: "kind"
category: "compute"
url: "https://localhost:3000/catalogue/kinds/container-orchestrator"
---

# Container orchestrator

A cluster that schedules containers across a pool of nodes.

| | |
|---|---|
| Category | Compute |
| Properties | 7 |
| Components | 36 |
| Rules | 1 |

## Properties

| property | type | values | required | default |
|---|---|---|---|---|
| `autoscaling` | boolean | — | no | false |
| `managed` | boolean | — | no | false |
| `networkPolicy` | boolean | — | no | — |
| `nodeCount` | integer | — | no | — |
| `privateControlPlane` | boolean | — | no | — |
| `rbac` | boolean | — | no | — |
| `version` | string | — | no | — |

## Rules for this kind · 1

### Stateful node without zone redundancy `stateful-node-without-zone-redundancy` (error)

- Page: https://localhost:3000/catalogue/rules/stateful-node-without-zone-redundancy.md
- Why: A stateful compute node pinned to exactly one availability zone disappears with that zone, and its state goes with it. Nodes inside a cell are exempt, because there the cell is deliberately single-zone and redundancy comes from the other cells.
- Applies to: every node in category compute
- Message: Stateful node '{{node.id}}' lives in exactly one availability zone. A zone outage takes its state with it.

It fires when:

- all of these hold:
  - the node's `stateless` is false
  - the node sits inside exactly 1 availability-zone group
  - this does not hold:
    - the node sits inside at least one cell group

## Components · 36

### vendor-neutral

- [Generic container orchestrator](https://localhost:3000/catalogue/components/container-orchestrator.md) `container-orchestrator` — the kind itself

### alibabacloud

- [Container Service for Kubernetes](https://localhost:3000/catalogue/components/alibaba-ack.md) `alibaba-ack` — 2 defaults

### aws

- [Amazon Elastic Container Service](https://localhost:3000/catalogue/components/aws-ecs.md) `aws-ecs` — 3 defaults
- [Amazon Elastic Kubernetes Service](https://localhost:3000/catalogue/components/aws-eks.md) `aws-eks` — 4 defaults
- [Red Hat OpenShift Service on AWS](https://localhost:3000/catalogue/components/aws-rosa.md) `aws-rosa` — 2 defaults

### azure

- [Azure Kubernetes Service](https://localhost:3000/catalogue/components/azure-aks.md) `azure-aks` — 4 defaults
- [Azure Kubernetes Fleet Manager](https://localhost:3000/catalogue/components/azure-kubernetes-fleet-manager.md) `azure-kubernetes-fleet-manager` — 2 defaults
- [Azure Red Hat OpenShift](https://localhost:3000/catalogue/components/azure-red-hat-openshift.md) `azure-red-hat-openshift` — 5 defaults
- [Azure Service Fabric](https://localhost:3000/catalogue/components/azure-service-fabric.md) `azure-service-fabric` — 2 defaults

### cloudflare

- [Cloudflare Containers](https://localhost:3000/catalogue/components/cloudflare-containers.md) `cloudflare-containers` — 2 defaults

### default

- [CoreWeave](https://localhost:3000/catalogue/components/coreweave.md) `coreweave` — 1 defaults
- [Docker Swarm](https://localhost:3000/catalogue/components/docker-swarm.md) `docker-swarm` — 3 defaults
- [k0s](https://localhost:3000/catalogue/components/k0s.md) `k0s` — 3 defaults
- [K3s](https://localhost:3000/catalogue/components/k3s.md) `k3s` — 4 defaults
- [Karmada](https://localhost:3000/catalogue/components/karmada.md) `karmada` — 2 defaults
- [Kubernetes](https://localhost:3000/catalogue/components/kubernetes.md) `kubernetes` — 4 defaults
- [MicroK8s](https://localhost:3000/catalogue/components/microk8s.md) `microk8s` — 3 defaults
- [HashiCorp Nomad](https://localhost:3000/catalogue/components/nomad.md) `nomad` — 3 defaults
- [Red Hat OpenShift](https://localhost:3000/catalogue/components/openshift.md) `openshift` — 4 defaults
- [Rancher](https://localhost:3000/catalogue/components/rancher.md) `rancher` — 3 defaults

### digitalocean

- [DigitalOcean Kubernetes](https://localhost:3000/catalogue/components/digitalocean-kubernetes.md) `digitalocean-kubernetes` — 5 defaults

### gcp

- [Google Distributed Cloud (software only) for bare metal](https://localhost:3000/catalogue/components/google-distributed-cloud-bare-metal.md) `google-distributed-cloud-bare-metal` — 4 defaults
- [Google Distributed Cloud (software only) for VMware](https://localhost:3000/catalogue/components/google-distributed-cloud-vmware.md) `google-distributed-cloud-vmware` — 3 defaults
- [Google Kubernetes Engine](https://localhost:3000/catalogue/components/google-gke.md) `google-gke` — 2 defaults
- [GKE Autopilot](https://localhost:3000/catalogue/components/google-gke-autopilot.md) `google-gke-autopilot` — 4 defaults
- [GKE Enterprise fleet](https://localhost:3000/catalogue/components/google-gke-enterprise.md) `google-gke-enterprise` — 1 defaults
- [GKE Multi-Cloud](https://localhost:3000/catalogue/components/google-gke-multi-cloud.md) `google-gke-multi-cloud` — 1 defaults
- [Cluster Services for OpenShift](https://localhost:3000/catalogue/components/google-openshift-cluster-services.md) `google-openshift-cluster-services` — 1 defaults

### ibm

- [IBM Cloud Kubernetes Service](https://localhost:3000/catalogue/components/ibm-kubernetes-service.md) `ibm-kubernetes-service` — 2 defaults
- [Red Hat OpenShift on IBM Cloud](https://localhost:3000/catalogue/components/ibm-openshift.md) `ibm-openshift` — 2 defaults
- [IBM Cloud Satellite](https://localhost:3000/catalogue/components/ibm-satellite.md) `ibm-satellite` — 2 defaults

### oci

- [OCI Kubernetes Engine](https://localhost:3000/catalogue/components/oci-kubernetes-engine.md) `oci-kubernetes-engine` — 2 defaults
- [OKE Virtual Node Pool](https://localhost:3000/catalogue/components/oci-oke-virtual-node-pool.md) `oci-oke-virtual-node-pool` — 2 defaults

### openstack

- [OpenStack Magnum](https://localhost:3000/catalogue/components/openstack-magnum.md) `openstack-magnum` — 2 defaults
- [OpenStack Zun](https://localhost:3000/catalogue/components/openstack-zun.md) `openstack-zun` — 1 defaults

### outscale

- [OUTSCALE Kubernetes as a Service](https://localhost:3000/catalogue/components/outscale-oks.md) `outscale-oks` — 1 defaults

## Source (`kind` YAML, verbatim)

```yaml
# yaml-language-server: $schema=../schema/kind.schema.json
# The cluster itself: control plane, node pools and cluster-wide network and access settings. privateControlPlane, rbac and networkPolicy have no default so hardening rules can flag a cluster that left them unstated.
schemaVersion: "1"
type: "kind"
id: "container-orchestrator"
category: "compute"
properties:
  nodeCount:
    type: "integer"
  version:
    type: "string"
  autoscaling:
    type: "boolean"
    default: false
  privateControlPlane:
    type: "boolean"
  rbac:
    type: "boolean"
  networkPolicy:
    type: "boolean"
  managed:
    type: "boolean"
    default: false
```

Human page: https://localhost:3000/catalogue/kinds/container-orchestrator
