Kubernetes without the root privileges
Full Changelog: https://github.com/rootless-containers/usernetes/compare/gen2-v20240404.1...gen2-v20240410.0
ip addr add "${U7S_HOST_IP}" dev eth0
by @AkihiroSuda in https://github.com/rootless-containers/usernetes/pull/323
Full Changelog: https://github.com/rootless-containers/usernetes/compare/gen2-v20240203.0...gen2-v20240404.1
Full Changelog: https://github.com/rootless-containers/usernetes/compare/gen2-v20231218.0...gen2-v20240203.0
Full Changelog: https://github.com/rootless-containers/usernetes/compare/gen2-v20230919.0...gen2-v20231218.0
CONTAINER_ENGINE=(podman|nerdctl)
in addition to docker (#305)init-host
scripts out of the hack
directory (#302)make kubectl
(#303)This is the first release of "Usernetes Generation 2" (https://github.com/rootless-containers/usernetes/pull/287)
Usernetes (Gen2) deploys a Kubernetes cluster inside Rootless Docker, so as to mitigate potential container-breakout vulnerabilities.
Note
Usernetes (Gen2) has significantly diverged from the original Usernetes (Gen1), which did not require Rootless Docker to be installed on hosts.
See the
gen1
branch for the original Usernetes (Gen1).
Usernetes (Gen2) is similar to Rootless kind
and Rootless minikube,
but Usernetes (Gen 2) supports creating a cluster with multiple hosts.
Note
Using Ubuntu 22.04 hosts is recommended.
curl -o install.sh -fsSL https://get.docker.com
sudo sh install.sh
dockerd-rootless-setuptool.sh install
sudo loginctl enable-linger $(whoami)
sudo mkdir -p /etc/systemd/system/[email protected]
cat <<EOF | sudo tee /etc/systemd/system/[email protected]/delegate.conf
[Service]
Delegate=cpu cpuset io memory pids
EOF
sudo systemctl daemon-reload
sudo modprobe vxlan
See make help
.
# Bootstrap a cluster
make up
make kubeadm-init
make install-flannel
# Enable kubectl
make kubeconfig
export KUBECONFIG=$(pwd)/kubeconfig
kubectl get pods -A
# Multi-host
make join-command
scp join-command another-host:~/usernetes
ssh another-host make -C ~/usernetes up kubeadm-join
# Debug
make logs
make shell
make down-v
kubectl taint nodes --all node-role.kubernetes.io/control-plane-
docker-compose.yaml
for exposing additional node ports.hostPath
mounts. Edit docker-compose.yaml
for mounting additional files.nfs
do not work.kind
and minikube.~ (Support for "rootful" is currently broken: https://github.com/rootless-containers/usernetes/issues/297)Kubernetes version: v1.28.0
Build logs (available for 90 days): https://github.com/rootless-containers/usernetes/actions/runs/5874550853/job/15929481770
Kubernetes version: v1.27.2
Thanks to @cloud-66 for #279
Build logs (available for 90 days): https://github.com/rootless-containers/usernetes/actions/runs/5009284196/jobs/8978057689
Kubernetes version: v1.25.2
Build logs (available for 90 days): https://github.com/rootless-containers/usernetes/actions/runs/3204008677/jobs/5234781877