kubernetes: Manage worker nodes

So far, I have been managing Kubernetes worker nodes with Fedora CoreOS
Ignition, but I have decided to move everything back to Fedora and
Ansible.  I like the idea of an immutable operating system, but the FCOS
implementation is not really what I want.  I like the automated updates,
but that can be accomplished with _dnf-automatic_.  I do _not_ like
giving up control of when to upgrade to the next Fedora release.
Mostly, I never did come up with a good way to manage application-level
configuration on FCOS machines.  None of my experiments (Cue+tmpl,
KCL+etcd+Luci) were successful, which mostly resulted in my manually
managing configuration on nodes individually.  Managing OS-level
configuration is also rather cumbersome, since it requires redeploying
the machine entirely.  Altogether, I just don't think FCOS fits with my
model of managing systems.

This commit introduces a new playbook, `kubernetes.yml`, and a handful of
new roles to manage Kubernetes worker nodes running Fedora Linux.  It
also adds two new deploy scripts, `k8s-worker.sh` and `k8s-longhorn.sh`,
which fully automate the process of bringing up worker nodes.
This commit is contained in:
2024-11-21 06:24:53 -06:00
parent 164f3b5e0f
commit 0f600b9e6e
18 changed files with 377 additions and 1 deletions

12
hosts
View File

@@ -11,6 +11,9 @@ bw0.pyrocufflink.blue
[btop]
chromie.pyrocufflink.blue
[btop:children]
kubelet
[burp-client]
bw0.pyrocufflink.blue
cloud0.pyrocufflink.blue
@@ -24,6 +27,7 @@ git0.pyrocufflink.blue
[collectd]
[collectd:children]
kubelet
pyrocufflink
[collectd-prometheus:children]
@@ -84,8 +88,13 @@ burp-server
[k8s-controller]
k8s-ctrl0.pyrocufflink.blue
[k8s-longhorn]
[k8s-node]
[k8s-node:children]
k8s-longhorn
[kubelet:children]
k8s-controller
k8s-node
@@ -105,6 +114,9 @@ minio-backups
[nfs-client:children]
k8s-node
[no-firewalld:children]
kubelet
[needproxy]
nvr2.pyrocufflink.blue