Align 09-growing-up with actual control-plane/worker split
This commit is contained in:
+33
-14
@@ -7,24 +7,43 @@ for you; each is its own project once you're ready.
|
|||||||
|
|
||||||
## More nodes
|
## More nodes
|
||||||
|
|
||||||
Your three nodes already give you real resilience — losing any one still
|
This cluster already separates roles — three Raspberry Pi control planes
|
||||||
leaves a majority of control-plane voters (see
|
(`talos-455-i3b`, `talos-9xy-iuk`, `talos-k1b-7j5`) and two Proxmox
|
||||||
[`docs/02-talos-bootstrap.md`](02-talos-bootstrap.md#three-nodes-each-both-control-plane-and-worker))
|
workers (`talos-rss-v5l` on Gimli, `talos-vba-ood` on Titus; see
|
||||||
and, once Longhorn has real volumes, a replica of your data likely
|
[`docs/network.md`](network.md) for current addresses). Losing any one
|
||||||
survives too. Growing further is about *capacity*, not fault tolerance you
|
control plane still leaves a majority of etcd voters, and losing either
|
||||||
don't already have — so beyond this point, add plain **worker** nodes, not
|
worker still leaves one healthy Longhorn replica of any volume that had
|
||||||
more control-plane ones:
|
data on it. Growing further is about *capacity*, not fault tolerance you
|
||||||
|
don't already have — so beyond this point, add another plain **worker**,
|
||||||
|
not a fourth control plane.
|
||||||
|
|
||||||
1. Boot a new machine from the same custom Talos ISO as the first three
|
1. Boot the new machine from a Talos image matching its own architecture
|
||||||
(see [`docs/01-prerequisites.md`](01-prerequisites.md)).
|
— `rpi_generic` (arm64) for another Raspberry Pi, or the amd64 metal
|
||||||
2. Apply the **worker** config instead of the control-plane one — you
|
image for another x86 machine/VM. Both custom schematics already exist
|
||||||
already have `_out/worker.yaml` from
|
for this cluster — see [`talos/patch-controlplane.yaml`](../talos/patch-controlplane.yaml)
|
||||||
[`docs/02-talos-bootstrap.md`](02-talos-bootstrap.md), unused until now:
|
and [`talos/patch-worker.yaml`](../talos/patch-worker.yaml) for the
|
||||||
|
exact installer image references, and
|
||||||
|
[`docs/01-prerequisites.md`](01-prerequisites.md) for building a new one
|
||||||
|
if this is a genuinely new architecture/extension set.
|
||||||
|
2. Generate (or reuse, if unchanged) a worker config with both
|
||||||
|
`talos/patch-worker.yaml` and `talos/patch-longhorn.yaml` applied, then
|
||||||
|
apply it to the new node:
|
||||||
```sh
|
```sh
|
||||||
talosctl apply-config --insecure --nodes <NEW_NODE_IP> --file _out/worker.yaml
|
talosctl apply-config --insecure --nodes <NEW_NODE_IP> --file _out/worker.yaml
|
||||||
```
|
```
|
||||||
3. `kubectl get nodes` should show a fourth node shortly after, without
|
3. If this node will also provide Longhorn storage, give it its own
|
||||||
the `control-plane` role.
|
dedicated data disk sized to fit `talos/patch-longhorn.yaml`'s
|
||||||
|
`minSize`, and label it the same way
|
||||||
|
[`talos/patch-worker.yaml`](../talos/patch-worker.yaml) labels the
|
||||||
|
existing two workers — `node.longhorn.io/create-default-disk=true` —
|
||||||
|
or Longhorn will never offer it a disk.
|
||||||
|
4. `kubectl get nodes` should show the new node shortly after, without the
|
||||||
|
`control-plane` role. With a third storage-providing worker, consider
|
||||||
|
raising Longhorn's `defaultReplicaCount` and
|
||||||
|
`persistence.defaultClassReplicaCount` in
|
||||||
|
[`apps/longhorn/values.yaml`](../apps/longhorn/values.yaml) from `2` to
|
||||||
|
`3` — see [`docs/06-longhorn.md`](06-longhorn.md) for why both settings
|
||||||
|
have to move together.
|
||||||
|
|
||||||
### Why not a fourth control-plane node
|
### Why not a fourth control-plane node
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user