From 0d1bf8e2e5e8e8ab8700520e0d83c0685e6be737 Mon Sep 17 00:00:00 2001 From: Alexandra Aldershaab Date: Mon, 17 Mar 2025 10:21:06 +0100 Subject: [PATCH] added adr for virtualisation, and moved previous stuff from main guide page --- docs/hardware_ready/ADRs/virtualisation.md | 37 ++++++++++++++++++++++ docs/hardware_ready/_index.md | 10 +----- 2 files changed, 38 insertions(+), 9 deletions(-) create mode 100644 docs/hardware_ready/ADRs/virtualisation.md diff --git a/docs/hardware_ready/ADRs/virtualisation.md b/docs/hardware_ready/ADRs/virtualisation.md new file mode 100644 index 0000000..5ab3f4b --- /dev/null +++ b/docs/hardware_ready/ADRs/virtualisation.md @@ -0,0 +1,37 @@ +--- +title: "Virtualisation" +date: "2025-03-17" +--- + + +| status: | date: | decision-makers: | +| --- | --- | --- | +| proposed | 2025-03-17 | Alexandra Aldershaab | + + +## Context and Problem Statement + +One important aspect is to determine whether the clusters should run on an OS directly on the machines, or if it makes sense to add a virtualisation layer. + +Running directly on the hardware gives you a 1-1 relationship between the machines and the nodes. This is not always advised if the machines are particularly beefy. Running directly on the hardware will of course have lower latency than when adding a virtualisation layer. + +A virtualisation layer can benefit via abstracting the actual hardware, and enable simple zero downtime hardware maintenance. + +For larger companies, it is usually possible to provision VM's from the IT department, and in that case the clear recommendation would alway be to just use what is available. + +## Considered Options + +* KubeVirt +* Incus +* Proxmox + +## Decision Outcome + +Chosen option: "{title of option 1}", because {justification. e.g., only option, which meets k.o. criterion decision driver | which resolves force {force} | … | comes out best (see below)}. + + +### Consequences + +* Good, because {positive consequence, e.g., improvement of one or more desired qualities, …} +* Bad, because {negative consequence, e.g., compromising one or more desired qualities, …} +* … \ No newline at end of file diff --git a/docs/hardware_ready/_index.md b/docs/hardware_ready/_index.md index a9d6dea..d2f525d 100644 --- a/docs/hardware_ready/_index.md +++ b/docs/hardware_ready/_index.md @@ -1,15 +1,6 @@ --- title: Getting your hardware ready --- -## Virtualisation or bare metal -One important aspect is to determine whether the clusters should run on an OS directly on the machines, or if it makes sense to add a virtualisation layer. - -Running directly on the hardware gives you a 1-1 relationship between the machines and the nodes. This is not always advised if the machines are particularly beefy. Running directly on the hardware will of course have lower latency than when adding a virtualisation layer. - -A virtualisation layer can benefit via abstracting the actual hardware, and enable simple zero downtime hardware maintenance. - -In case virtualisation is chosen, the below recommendations are what you would run in your VM. For setting up your VM’s we recommend Talos with KubeVirt. - ## Decision Matrix | Problem domain | Description | Reason for importance | Tool recommendation | |:---:|:---:|:---:|:---:| @@ -17,3 +8,4 @@ In case virtualisation is chosen, the below recommendations are what you would r | Storage solution | The underlying storage capabilities which Kubernetes will leverage to provide persistence for stateful workloads | Choosing the right storage solution for your clusters needs is important as there is a lot of balance tradeoffs associated with it, e.g redundancy vs. complexity | | | Container Runtime (CRI) | The software that is responsible for running containers | You need a working container runtime on each node in your cluster, so that the kubelet can launch pods and their containers | | | Network plugin (CNI) | Plugin used for cluster networking | A CNI plugin is required to implement the Kubernetes network model | [Cilium](Cilium_as_network_plugin.md) | +| Virtualisation | An optional layer between your hardware and your Kubernetes tech stack | In some scenarioes it might be benefitial to abstract the underlying hardeware away, and have everything running in virtual machines | [KubeVirt??](virtualisation.md) | \ No newline at end of file