This section outlines the core elements of the K3s solution, along with the suggested target platforms and components.
The figure below illustrates the high-level architecture of K3s:
Containerd & runc
Kine as a datastore shim that allows etcd
to be replaced with other databases
Flannel for CNI
Kube-router for network policy
CoreDNS
Metrics Server
Traefik for ingress
Klipper-lb as an embedded service load balancer provider
Local-path-provisioner for provisioning volumes using local storage
Helm-controller to allow for CRD-driven deployment of helm manifests
iptables/nftables, ebtables, ethtool, and socat
When this is set up, users can interact with K3s via
kubectl
directly on the K3s host or
remotely, leveraging the KUBECONFIG file of the K3s cluster’s deployment (/etc/rancher/k3s/k3s.yaml
)
manual or automatic, manifest or Helm Chart based, workload deployments