Compute & virtualisation¶
A workload runs on GRN.CLOUD as a container, as a virtual machine, or as a function that scales to zero. All three are scheduled by the same control plane onto the same worker nodes.
Containers are the ordinary case. A Deployment creates pods, and the scheduler places
each pod on a node with capacity for it.
Virtual machines run through KubeVirt. A VirtualMachine object describes the machine,
and KubeVirt runs its QEMU process inside a pod, so the VM is scheduled, networked and given
storage by the same primitives as any other pod. It gets an address on the cluster network,
its disks are PersistentVolumeClaims, and it is subject to the same quotas and
NetworkPolicy objects as the containers beside it.
Functions run through Knative Serving, which creates pods in response to incoming requests and removes the last one when the traffic stops.
Moving a workload between the three changes how it is packaged. The API, the scheduler and the surrounding configuration stay the same.
What this section will cover¶
- Virtual machines — creating, templating, snapshotting, live migration
- Containers — Deployments, rolling updates, autoscaling
- Serverless functions — Knative Serving and Eventing, scale to zero
- Worker node families and GPU nodes
- Dedicated and bare-metal placement