Automating k3s Deployments Using k3OS Immutable Configuration
Learn how k3OS uses an immutable root filesystem and a dedicated config partition to automate k3s cluster deployments and eliminate configuration drift.
ReadMeFeed / Community knowledge
Real questions. Useful conversations. Find the people who know your stack.
Learn how k3OS uses an immutable root filesystem and a dedicated config partition to automate k3s cluster deployments and eliminate configuration drift.
Learn how K3s uses SQLite and the Kine shim to replace etcd, reducing memory overhead for edge and single-node Kubernetes deployments.
Goal: Determine whether to standardize on K3s for all downstream clusters managed by Rancher or to adopt a mixed approach that runs RKE2 in core/regulated workloads and K3s at the edge, while respecting limited CPU and memory budgets on branch hardware. Constraints: K3s delivers a small footprint with a single binary and SQLite datastore, fitting tightly con
k3s forwards API requests to the underlying datastore without a de-duplication layer for POST operations. In HA mode with etcd, client libraries retry on transient errors and kubectl --retry repeats the HTTP request. The current configuration lacks an explicit idempotency guarantee for create operations. The goal is a consistent behavior for retries that avo
Symptom A cloud-init-style config.yaml that provisions SSH keys, network settings, and a k3s token works when iteratively rebooted on a local VM, yet the same configuration causes k3s agent nodes to join with an outdated token on first production cold boot. Context k3os processes /var/lib/rancher/k3os/config.yaml (or a boot-time datasource) during early boot
Where the components meet k3s runs an embedded API server in the server process; each agent watches it through a standard client-go client. They meet at the watch stream: the server side honors context cancellation and closes the stream, while the agent side reconnects using client-go's default exponential backoff, commonly capped near 30 seconds, with the i
Repeatable dev environment on k3os I am setting up a repeatable development environment on k3os (v0.21.x-era releases, k3s v1.21+ assumed) and want host-level state to survive reboots the same way the OS configuration does. My understanding is that k3os keeps its declarative config on a dedicated partition mounted at /k3os/config , so kernel parameters, the
The goal is to decide whether k3s should enable the NodeLocalTimeZone feature gate by default, allowing pods to inherit the host’s time zone settings. As of k3s v1.23.0+k3s1 the feature gate exists but is disabled, leaving containers in UTC unless explicitly turned on. Enabling it simplifies time‑sensitive workloads but raises concerns about security, multi‑
k3s delegates image garbage collection to containerd, which by default prunes unused images on a fixed 10-minute interval across recent k3s releases. When images are re-tagged frequently, this default timing may create an upper bound on how long stale cache entries remain before removal. The default GC settings are fixed across k3s releases, though the timeo