From e0cf05aa4ec1da95453b99dacedb80f73e209536 Mon Sep 17 00:00:00 2001 From: Stefan Majer Date: Mon, 9 Dec 2024 15:39:14 +0100 Subject: [PATCH 1/9] Update docs/src/installation/autonomous-control-plane.md Co-authored-by: Gerrit --- docs/src/installation/autonomous-control-plane.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/src/installation/autonomous-control-plane.md b/docs/src/installation/autonomous-control-plane.md index 5561bf8f0a..f0db871031 100644 --- a/docs/src/installation/autonomous-control-plane.md +++ b/docs/src/installation/autonomous-control-plane.md @@ -10,7 +10,7 @@ The control plane must be running in a kubernetes cluster, which offers at least - Access to a DNS provider which is supported by one of the dns extensions in use. This cluster must also be highly available to prevent complete loss of control over the managed resources in the datacenter. -Regular kubernetes updates to apply security fixes and feature updates must be possible in a automated manner. +Regular kubernetes updates to apply security fixes and feature updates must be possible in an automated manner. The most obvious and simple solution is to use one of the managed kubernetes offerings from another cloud provider. From ba46f8dfa83302b2074943781391ea27962e8a85 Mon Sep 17 00:00:00 2001 From: Stefan Majer Date: Mon, 9 Dec 2024 15:39:22 +0100 Subject: [PATCH 2/9] Update docs/src/installation/autonomous-control-plane.md Co-authored-by: Gerrit --- docs/src/installation/autonomous-control-plane.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/src/installation/autonomous-control-plane.md b/docs/src/installation/autonomous-control-plane.md index f0db871031..53215a9d78 100644 --- a/docs/src/installation/autonomous-control-plane.md +++ b/docs/src/installation/autonomous-control-plane.md @@ -14,7 +14,7 @@ Regular kubernetes updates to apply security fixes and feature updates must be p The most obvious and simple solution is to use one of the managed kubernetes offerings from another cloud provider. -But there are use cases, where it is not possible because of network restrictions, or because the company compliances does forbidd the usage of external datacenter products. +But there are use cases, where it is not possible because of network restrictions, or because the company compliances forbid the usage of external datacenter products. For such cases a solution must be found which produces the control plane inside the own datacenter but with reasonable day two operational effort. ```@contents From 82b15bf19beada11128f82e7c726c3e136e8bd9f Mon Sep 17 00:00:00 2001 From: Stefan Majer Date: Mon, 9 Dec 2024 15:39:30 +0100 Subject: [PATCH 3/9] Update docs/src/installation/autonomous-control-plane.md Co-authored-by: Gerrit --- docs/src/installation/autonomous-control-plane.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/src/installation/autonomous-control-plane.md b/docs/src/installation/autonomous-control-plane.md index 53215a9d78..cf0ca13ef4 100644 --- a/docs/src/installation/autonomous-control-plane.md +++ b/docs/src/installation/autonomous-control-plane.md @@ -41,7 +41,7 @@ With metal-stack.io we already have the possibility to create an manage kubernet Use this stack to create the control plane clusters only. Do not try to create more clusters for other purposes than metal-stack control planes. If this restriction applies, the requirement for a control plane for this metal-stack setup can be minimal. -This metal-stack setup also requires a control plane to host metal-api and gardener, but this control plane does not have huge resource requirements in terms of cpu, memore and storage. +This metal-stack setup also requires a control plane to host metal-api and gardener, but this control plane does not have huge resource requirements in terms of cpu, memory and storage. For this initial control plane cluster we could use [kind](https://kind.sigs.k8s.io/) running on a single server which manages the initial metal-stack partitin to host the control plane for the real setup. This is a chain of two metal-stack environments. From 2595acf7e1a6819e4b1982c2942038bea04285c7 Mon Sep 17 00:00:00 2001 From: Stefan Majer Date: Mon, 9 Dec 2024 15:39:37 +0100 Subject: [PATCH 4/9] Update docs/src/installation/autonomous-control-plane.md Co-authored-by: Gerrit --- docs/src/installation/autonomous-control-plane.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/src/installation/autonomous-control-plane.md b/docs/src/installation/autonomous-control-plane.md index cf0ca13ef4..b87790312e 100644 --- a/docs/src/installation/autonomous-control-plane.md +++ b/docs/src/installation/autonomous-control-plane.md @@ -46,7 +46,7 @@ For this initial control plane cluster we could use [kind](https://kind.sigs.k8s This is a chain of two metal-stack environments. -### Architekture +### Architecture A high-level architecture consists of two metal-stack.io environments, one for the control plane, the second one for the production or real environment. It might also be possible to call the initial metal-stack.io environment the metal-stack `seed`, and the actual production environment the metal-stack `shoot`. From 2a12e9cc4359cd8ae4a834219c7c622dd67f08f0 Mon Sep 17 00:00:00 2001 From: Stefan Majer Date: Mon, 9 Dec 2024 15:39:48 +0100 Subject: [PATCH 5/9] Update docs/src/installation/autonomous-control-plane.md Co-authored-by: Gerrit --- docs/src/installation/autonomous-control-plane.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/src/installation/autonomous-control-plane.md b/docs/src/installation/autonomous-control-plane.md index b87790312e..229c548141 100644 --- a/docs/src/installation/autonomous-control-plane.md +++ b/docs/src/installation/autonomous-control-plane.md @@ -65,7 +65,7 @@ The `needle` control plane is kept very small and running inside a `kind` cluste In the most simple case the `needle` control plane is based on `kind` which is running on a machine which was setup manually/partly automated with a debian:12 operating system. This machine provides a decent amount of cpu, memory and storage locally to store all persistent data. The amount of cpus and memory depends on the required size of the expected `nail` control plane. A typical single socket server with 8-16 cores and 64GB of RAM and two NVMe drives of 1TB would be a good starting point. -In a typical `kind` setup, a stateful set would loose the data once the `kind` cluster was terminated and started again. But there is a possibility to define parts of the local storage of the server to be provided to the `kind` cluster for the PVCs. With that, `kind` could be terminated and started again, for example to update and reboot the host os, or update `kind` itself and the data will persist. +In a typical `kind` setup, a stateful set would lose the data once the `kind` cluster was terminated and started again. But there is a possibility to define parts of the local storage of the server to be provided to the `kind` cluster for the PVCs. With that, `kind` could be terminated and started again, for example to update and reboot the host os, or update `kind` itself and the data will persist. Example `kind` configuration for persistent storage on the hosts os: From e82c567f79fa4caf45e8f3b359a1c22883c5d569 Mon Sep 17 00:00:00 2001 From: Stefan Majer Date: Mon, 9 Dec 2024 15:39:54 +0100 Subject: [PATCH 6/9] Update docs/src/installation/autonomous-control-plane.md Co-authored-by: Gerrit --- docs/src/installation/autonomous-control-plane.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/src/installation/autonomous-control-plane.md b/docs/src/installation/autonomous-control-plane.md index 229c548141..9676ea130e 100644 --- a/docs/src/installation/autonomous-control-plane.md +++ b/docs/src/installation/autonomous-control-plane.md @@ -104,7 +104,7 @@ Setting up a second server with the same software components is an option, but t Given that we provide part of the local storage of the server as backing storage for the stateful sets in the `kind` cluster, the data stored on the server itself must be synced to a second server in some way. -Her comes [DRBD](https://github.com/LINBIT/drbd) into play, this is a linux kernel module which can be configured to mirror one or more local block devices to another server connected over tcp. With the help of [pacemaker](https://clusterlabs.org/projects/pacemaker/) a coordinated failover of resources running on top of filesystems created on such replicated drbd devices, a high available statefule server pair is possible. It is also possible to prevent split brain if both servers have a out-of-band management build in with power off capability. +Her comes [DRBD](https://github.com/LINBIT/drbd) into play, this is a linux kernel module which can be configured to mirror one or more local block devices to another server connected over tcp. With the help of [pacemaker](https://clusterlabs.org/projects/pacemaker/) a coordinated failover of resources running on top of filesystems created on such replicated drbd devices, a high available stateful server pair is possible. It is also possible to prevent split brain if both servers have a out-of-band management build in with power off capability. DRBD can also be configured to sync storage between WAN links with a higher latency by using a async mechanism. Sample drbd configuration: From b415c4b77cacbf1cedcd4e60555e78ce00b16926 Mon Sep 17 00:00:00 2001 From: Stefan Majer Date: Wed, 11 Dec 2024 15:25:26 +0100 Subject: [PATCH 7/9] Update docs/src/installation/autonomous-control-plane.md Co-authored-by: Valentin Knabel --- docs/src/installation/autonomous-control-plane.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/src/installation/autonomous-control-plane.md b/docs/src/installation/autonomous-control-plane.md index 9676ea130e..b984d7c75c 100644 --- a/docs/src/installation/autonomous-control-plane.md +++ b/docs/src/installation/autonomous-control-plane.md @@ -104,7 +104,7 @@ Setting up a second server with the same software components is an option, but t Given that we provide part of the local storage of the server as backing storage for the stateful sets in the `kind` cluster, the data stored on the server itself must be synced to a second server in some way. -Her comes [DRBD](https://github.com/LINBIT/drbd) into play, this is a linux kernel module which can be configured to mirror one or more local block devices to another server connected over tcp. With the help of [pacemaker](https://clusterlabs.org/projects/pacemaker/) a coordinated failover of resources running on top of filesystems created on such replicated drbd devices, a high available stateful server pair is possible. It is also possible to prevent split brain if both servers have a out-of-band management build in with power off capability. +Here comes [DRBD](https://github.com/LINBIT/drbd) into play, this is a linux kernel module which can be configured to mirror one or more local block devices to another server connected over tcp. With the help of [pacemaker](https://clusterlabs.org/projects/pacemaker/) a coordinated failover of resources running on top of filesystems created on such replicated drbd devices, a high available stateful server pair is possible. It is also possible to prevent split brain if both servers have a out-of-band management build in with power off capability. DRBD can also be configured to sync storage between WAN links with a higher latency by using a async mechanism. Sample drbd configuration: From 7763856e11ae9b713d8f1124d793eb67c865bc8a Mon Sep 17 00:00:00 2001 From: Stefan Majer Date: Wed, 11 Dec 2024 15:25:43 +0100 Subject: [PATCH 8/9] Update docs/src/installation/autonomous-control-plane.md Co-authored-by: Valentin Knabel --- docs/src/installation/autonomous-control-plane.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/src/installation/autonomous-control-plane.md b/docs/src/installation/autonomous-control-plane.md index b984d7c75c..8b90a1594b 100644 --- a/docs/src/installation/autonomous-control-plane.md +++ b/docs/src/installation/autonomous-control-plane.md @@ -37,7 +37,7 @@ TODO: can we provide a list which of the requirements can be solved with all of ## Use your own dogfood -With metal-stack.io we already have the possibility to create an manage kubernetes cluster with the help of gardener.cloud. +With metal-stack.io we already have the possibility to create and manage kubernetes clusters with the help of [Gardener](https://gardener.cloud). Use this stack to create the control plane clusters only. Do not try to create more clusters for other purposes than metal-stack control planes. If this restriction applies, the requirement for a control plane for this metal-stack setup can be minimal. From 61e6092853efd88b662d343a1a1f8e819a76752a Mon Sep 17 00:00:00 2001 From: Stefan Majer Date: Wed, 11 Dec 2024 15:25:50 +0100 Subject: [PATCH 9/9] Update docs/src/installation/autonomous-control-plane.md Co-authored-by: Valentin Knabel --- docs/src/installation/autonomous-control-plane.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/src/installation/autonomous-control-plane.md b/docs/src/installation/autonomous-control-plane.md index 8b90a1594b..7d39b4d929 100644 --- a/docs/src/installation/autonomous-control-plane.md +++ b/docs/src/installation/autonomous-control-plane.md @@ -42,7 +42,7 @@ Use this stack to create the control plane clusters only. Do not try to create m If this restriction applies, the requirement for a control plane for this metal-stack setup can be minimal. This metal-stack setup also requires a control plane to host metal-api and gardener, but this control plane does not have huge resource requirements in terms of cpu, memory and storage. -For this initial control plane cluster we could use [kind](https://kind.sigs.k8s.io/) running on a single server which manages the initial metal-stack partitin to host the control plane for the real setup. +For this initial control plane cluster we could use [kind](https://kind.sigs.k8s.io/) running on a single server which manages the initial metal-stack partition to host the control plane for the real setup. This is a chain of two metal-stack environments.