Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

HA K8s Docs #392

Merged
merged 4 commits into from
Feb 27, 2025
Merged

HA K8s Docs #392

merged 4 commits into from
Feb 27, 2025

Conversation

reavessm
Copy link
Contributor

Documentation for running a highly available kubernetes cluster

This doc runs through a complex example using the kubernetes sysext. It involves multiple kubernetes configurations like swapping container runtimes and CNIs, as well as more advanced ignition configurations like running static pods via Quadlet and creating a hierarchy of configs. This also demonstrates how to use a make file to spin up multiple distinct flatcar VMs in a controlled manner.

This doc may need to be updated once flatcar/sysext-bakery#114 gets merged.

Also, this is my first time writing technical documentation of this nature so please feel free to critique this technically, grammatically, or in any other manner I may have missed.

Copy link
Collaborator

@tormath1 tormath1 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks a lot for documenting this setup - I left some comments but it globally looks really good.

Copy link
Collaborator

@tormath1 tormath1 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I ran the tutorial until the Ignition generation and it went fine. I think it's worth to mention again Typhoon project: https://github.com/poseidon/typhoon for folks into Terraform deployments.


### Control Plane

Each control plane node will be responsible for running the regular Kubernetes
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wow, great documentation, I am sure it will be extremely helpful for people who want to know what happening under the hood.

One question, kube-vip or metallb/cilium is usually the preferred way to have HA deployments. Any reason in particular for having HAProxy and KeepAlived?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks! I hope so!

Yes and no. It's mostly for educational purposes because I haven't seen a lot of documentation on running podman/quadlet with k8s. On the technical side of things, as far as I understand it, Cilium does kind of overlap with metallb with it's L2 aware stuff that's currently in beta, so this doc only installs the stuff that Cilium can't do. Also, it is documented in the kubeadm docs

Copy link
Collaborator

@tormath1 tormath1 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Feel free to squash the fixup! commits and we're good to go.

Signed-off-by: Stephen Reaves <reaves735@gmail.com>
Thanks @tormath1 !

Signed-off-by: Stephen Reaves <reaves735@gmail.com>
Signed-off-by: Stephen Reaves <reaves735@gmail.com>
Signed-off-by: Stephen Reaves <reaves735@gmail.com>
@tormath1 tormath1 merged commit 9f88f39 into flatcar:master Feb 27, 2025
@tormath1
Copy link
Collaborator

Thanks again @reavessm for this PR. Changes are live here: https://www.flatcar.org/docs/latest/container-runtimes/high-availability-kubernetes/ 🎉

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants