Newsletter

    Subscribe our newsletter

    Get new infrastructure guides, comparison reports, and migration notes in your inbox.

    Infrastructure notes, guides, and new tools. Unsubscribe anytime.

    Back to Blog
    Kubernetes
    Security
    Containers

    Kubernetes 1.37 Makes Rootless Kubelet Beta

    September 10, 2026
    8 min read

    Kubernetes 1.37 promotes KubeletInUserNamespace, commonly called rootless mode, to beta. With the feature in use, kubelet, container runtimes, CNI components, and kube-proxy can run as a non-root user on the host inside a Linux user namespace. The practical benefit is smaller blast radius when a node component or container breakout vulnerability reaches privileges that would traditionally be host root.

    I checked the Kubernetes 1.37 announcement and the official administration documentation before writing this. One detail is easy to misunderstand: the feature gate is enabled by default in 1.37, but existing clusters do not suddenly become rootless. Administrators still have to create the user namespace and satisfy the host requirements.

    What changed in Kubernetes 1.37 rootless mode?

    Kubernetes 1.37 moved KubeletInUserNamespace from alpha to beta and enabled the feature gate by default. The kubelet can now tolerate the permission differences that appear when node components run inside a user namespace, and Kubernetes reports whether a node is running that way through the runningInUserNamespace property.

    That reporting improvement matters operationally. Cluster administrators can identify rootless nodes and apply labels or taints so workloads that require real host root privileges are not scheduled onto incompatible nodes.

    The Kubernetes project also says its node conformance end to end tests now run on a rootless cluster in CI. That is an important maturity signal because the feature is being exercised continuously against the project's own test suite.

    Beta does not mean every environment should enable it immediately. It means the feature has moved into a stage where broader testing and adoption are expected, while compatibility details still deserve attention.

    What does "rootless" actually mean in Kubernetes?

    Rootless Kubernetes means the node components run as an ordinary user from the host's point of view while seeing a mapped root identity inside a Linux user namespace. UID 0 inside that namespace does not equal UID 0 on the physical host.

    That mapping is the security value.

    Traditional Kubernetes nodes run highly privileged components directly as root because they need to mount filesystems, create cgroups, configure namespaces, and manage networking. A bug in one of those components can therefore become host root execution.

    A user namespace provides a different privilege boundary. The process can perform many root-like operations inside the namespace without receiving unrestricted authority over the host.

    This does not make the node unprivileged in an absolute sense. It changes which privileges survive across the namespace boundary.

    Why is rootless kubelet a security improvement?

    Rootless kubelet is a security improvement because several classes of container and node-component breakout bugs become less damaging when the compromised process is not host root. Kubernetes' announcement lists historical vulnerabilities in CRI-O, runc, kubelet, and containerd as examples of failures where host-level root privileges increased impact.

    The project specifically notes that rootless operation can prevent an attacker from using the compromised node component to modify areas such as the kernel, boot loader, or firmware through ordinary root authority.

    That is defense in depth. It assumes another control may fail and limits what the attacker receives afterward.

    This is particularly useful for clusters running workloads that process untrusted inputs, multi-tenant environments, developer laptops, AI sandboxes, and nested Kubernetes setups.

    The AI sandbox example is timely. Coding agents and autonomous tools increasingly execute commands, install packages, and process internet content. Running the development cluster under a dedicated unprivileged host user can reduce the damage if an agent is tricked into executing malicious instructions.

    Does rootless Kubernetes protect against every container escape?

    No. The Kubernetes project explicitly says user namespaces do not mitigate vulnerabilities in the kernel itself. If the exploit attacks a kernel flaw reachable from the namespace, rootless mode is not a substitute for a patched kernel and syscall hardening.

    That limitation is important because "rootless" can sound like a complete security boundary. It is one layer.

    Use it with seccomp, AppArmor or SELinux where appropriate, patched kernels, restricted capabilities, network controls, admission policies, workload identity, and normal node hardening.

    Also remember that some workloads genuinely need host privileges. Storage and networking plugins may expect access that a rootless node cannot provide. The feature can therefore create compatibility tradeoffs that need to be tested against your CNI, CSI, device plugins, and observability agents.

    The Mr.PlanB Kubernetes page is a useful baseline for the security changes already landing in recent Kubernetes releases. Rootless mode fits into a broader direction toward smaller default privilege and stronger isolation.

    How is this different from rootless pods?

    KubeletInUserNamespace is different from pod user namespaces. Kubernetes has a separate UserNamespacesSupport capability that can run pods in user namespaces using hostUsers: false. That feature reached general availability in Kubernetes 1.36.

    Pod user namespaces isolate workload identities. KubeletInUserNamespace isolates the node components themselves from host root.

    You can use the two ideas together.

    The Kubernetes project highlights Kubernetes inside Kubernetes as one example. A rootless node can run inside a user-namespaced pod, giving the nested cluster more isolation without requiring the parent pod to run fully privileged.

    This distinction is worth teaching because teams often hear "user namespace" and assume one setting solves both pod and node privilege. It does not. The security boundaries are related but different.

    What are the host requirements for rootless Kubernetes?

    The official documentation calls for cgroup v2, a systemd user session, appropriate subordinate UID and GID mappings in /etc/subuid and /etc/subgid, and several host settings that vary by Linux distribution. The rootless user namespace is created outside Kubernetes.

    That last point explains why enabling the feature gate does not transform an existing cluster automatically.

    Tools can simplify the setup. The Kubernetes project documents rootless configurations through kind, minikube, rootless Docker or Podman, Usernetes, and k3s. Production deployment still requires more careful validation because networking, storage, and service management need to survive real operational conditions.

    If you are building a test environment first, that is a good thing. Rootless node operation should be proven with your actual CNI, CSI, monitoring, backup, and upgrade workflows before it becomes the default for production capacity.

    The Mr.PlanB comparisons hub is useful when deciding whether a Kubernetes-based platform should also absorb VM workloads. Rootless mode strengthens the Kubernetes security story, but it does not answer whether Kubernetes is the right operational model for every workload.

    Will rootless nodes break CNI or CSI plugins?

    They can. Kubernetes warns that some CNI and CSI drivers may depend on host privileges that do not map cleanly into a user namespace. That is one of the main reasons to treat the beta promotion as a testing opportunity rather than a checkbox.

    Network plugins may need to manipulate host interfaces, iptables, routes, eBPF programs, or namespaces. Storage plugins may need mount operations, device access, or host filesystem paths. User namespaces can change how those operations behave.

    The right test is not "Does the node become Ready?" The right test is whether your full platform still handles pod networking, persistent volumes, node reboot, upgrades, monitoring, backups, and failure recovery.

    A rootless cluster that passes a five-minute hello-world test but fails storage recovery is not production ready.

    Should you enable rootless kubelet in production now?

    I would start a production-shaped pilot on Kubernetes 1.37 rather than enabling it across an existing fleet immediately. The security upside is real, and beta is a strong reason to begin testing, but compatibility is workload and plugin dependent.

    Choose nodes that run lower-risk workloads first. Verify CNI and CSI behavior, monitoring, backup, node maintenance, upgrades, and any privileged DaemonSets. Use the reported rootless node property to control scheduling so incompatible workloads stay elsewhere.

    The opposite choice is right when a critical networking, storage, GPU, or observability component still needs real host root. In that case, keep the nodes conventional, document the blocker, and revisit the feature as the ecosystem catches up.

    Kubernetes 1.37 does not make root privileges disappear. It makes them more containable. For a platform that has historically trusted powerful node components, that is a meaningful security change.

    Frequently Asked Questions

    What is rootless Kubernetes in version 1.37?

    Kubernetes 1.37 promotes KubeletInUserNamespace to beta. It allows kubelet, CRI and OCI runtimes, CNI plugins, and kube-proxy to run inside a Linux user namespace as a non-root host user.

    Is KubeletInUserNamespace enabled by default in Kubernetes 1.37?

    The feature gate is enabled by default in Kubernetes 1.37, but that does not automatically make existing nodes rootless. The user namespace still has to be created and the node environment configured for rootless operation.

    Does rootless Kubernetes stop kernel vulnerabilities?

    No. User namespaces reduce the privileges available after some node-component or container breakout flaws, but they do not protect against vulnerabilities in the Linux kernel itself.