Skip to main content

Linux Root-Level Changes

This document summarizes the system-level changes made to a Linux host when installing a NetBox Enterprise Embedded Cluster, particularly in relation to directories, files, and runtime configurations affected under /.

Key Directories Created

During installation, the Embedded Cluster creates several directories for container runtimes, network configuration, logging, and Kubernetes internals. These directories may be used for binary placement, socket communication, runtime data, or logging.

PathDescription
/etc/cniCNI (Container Network Interface) configuration
/etc/k0sConfiguration for the k0s Kubernetes distribution
/opt/cniOptional location for CNI plugin binaries
/opt/containerdData and binaries for containerd runtime
/run/calicoCalico's runtime data and state
/run/containerdRuntime socket and process management for containerd
/run/k0sRuntime files and PID info for k0s
/sys/fs/cgroup/kubepodscgroup hierarchy for Kubernetes pods
/sys/fs/cgroup/system.slice/containerd.servicecgroup slice for the containerd system service
/sys/fs/cgroup/system.slice/k0scontroller.servicecgroup slice for the k0scontroller service
/usr/libexec/k0sExecutables used by k0s, potentially for internal service components
/usr/local/bin/k0sThe k0s binary, typically symlinked or copied here
/var/lib/calicoPersistent data for the Calico network plugin
/var/lib/cniCNI state and cache
/var/lib/containersOCI container storage (may contain container images and layers)
/var/lib/kubeletState for the kubelet, pod manifests, volumes, etc.
/var/log/calicoLogs generated by Calico agents
/var/log/containersLogs for individual containers, typically symlinked from journald
/var/log/embedded-clusterLogs specific to Embedded Cluster installation and runtime
/var/log/podsLogs organized by pod name/namespace

Runtime & Kernel Modifications

cgroups are used extensively to isolate resources:

  • kubepods cgroup under /sys/fs/cgroup
  • Systemd slices for services like containerd and k0scontroller
  • These modifications may impact systems with strict lockdowns or non-standard cgroup hierarchies.

Binaries and Services

  • The k0s binary is located at /usr/local/bin/k0s.
  • Services for k0scontroller, containerd, and possibly calico will be active post-install.
  • Services will install unit files in /etc/systemd/system/.

Firewall Requirements

To allow proper operation of the Embedded Cluster, the following network ports must be open:

PortProtocolPurpose
6443TCPKubernetes API server (used by kubelets, kubectl, etc.)
2379-2380TCPetcd (Kubernetes backing store – internal traffic)
10250TCPKubelet API for health checks and logs
4789UDPVXLAN overlay (used by Calico)
8472UDPVXLAN (alternative port for Calico)
51820UDPWireGuard (if enabled for Calico networking)
179TCPBGP (used if Calico is in BGP mode)
443TCPNetBox Enterprise UI and API access
8800TCPAdmin Console (legacy or diagnostic use)

Note: Ingress/egress rules must permit internal pod-to-pod communication. For systems in restricted environments, please refer to the Special Cases for Restricted Environments section in the requirements documentation. This provides detailed guidance on configuring firewalls and network policies to ensure proper operation of the Embedded Cluster.