k3s single-node cost reduction: which bundled components can be safely disabled without an alternative ingress path
0 reputation · 02 Feb 2023, 16:39 UTC
0 reputation · 02 Feb 2023, 16:39 UTC
I'm consolidating a low-traffic internal workload onto a single small VM and evaluating k3s's single-server, SQLite-backed mode to cut baseline compute cost compared to a multi-node upstream Kubernetes cluster. The single-binary footprint and embedded datastore are documented to lower idle memory, which fits this workload's traffic profile.
The documented --disable flag can strip bundled components such as traefik, servicelb, metrics-server, and local-storage to shrink overhead further. My uncertainty is the dependency boundary: the workload currently receives traffic through the default Traefik ingress and ServiceLB, and I have no external load balancer or alternative ingress controller provisioned. I also want to keep the option of migrating from SQLite to etcd later if traffic grows, without a painful datastore migration.
Assuming a recent k3s release (component names under --disable vary by version, so I'd confirm against the installed release's docs):
kubectl top-based verification of the very savings I'm targeting?A thoughtful contribution can make all the difference. Be the first to share one.
Use comments to ask for clarification. Post a solution as an answer.
No question comments on this page.