Skip to content

btwiuse/k0s

Folders and files

NameName
Last commit message
Last commit date

Latest commit

author
navigaid
Mar 20, 2025
940817d · Mar 20, 2025
Jan 17, 2024
Feb 17, 2021
Jul 7, 2022
Jul 14, 2022
Jan 13, 2025
Jan 11, 2023
Jul 14, 2022
Feb 12, 2025
Feb 3, 2020
Jul 11, 2020
Mar 1, 2023
Feb 12, 2025
Jun 21, 2022
Sep 6, 2022
Feb 8, 2023
Feb 8, 2023
Feb 8, 2023
Feb 12, 2025
Jan 25, 2024
Feb 16, 2021
Feb 12, 2025
Aug 18, 2024
Feb 12, 2025
Feb 12, 2025
Mar 20, 2025
Feb 19, 2021
Jul 13, 2021
Feb 3, 2020
Jul 3, 2024
Nov 13, 2023
Nov 13, 2023
Feb 12, 2025
Dec 27, 2024
Aug 18, 2024
Jun 21, 2022
Jan 29, 2024
Jan 2, 2025
Jan 11, 2020
Feb 12, 2025
Jan 17, 2024
Feb 12, 2025
Mar 20, 2025
Sep 3, 2022
Mar 6, 2024
Sep 6, 2022
Feb 12, 2025
Feb 12, 2025
Feb 12, 2025
Jul 14, 2022
Feb 24, 2021
Jun 21, 2022
Jul 12, 2022
Jan 30, 2024

Repository files navigation

Kubernot (k0s)

go.dev reference Go 1.18+ License DockerHub Buildkite @kubernot


Not Kubernetes

Kubernot is an experimental SSH alternative with Kubernetes-like UX, where

  • scp becomes kubectl cp
  • ssh becomes kubectl exec
  • ssh -L becomes kubectl port-forward

The name Kubernot is inspired by many.

It shortens to k0s, mimicking the spelling of k8s, because Kubernot is made to resemble Kubernetes, while not being a distro of it.

The shortened form should be pronounced as "chaos" not "kay-zero-es" in order to distinguish from Mirantis' k0s.

Unlike SSH, Kubernot adopts the client-agent-server model from Kubernetes that allows access to nodes behind a firewall.

client agent server
SSH ssh - sshd
Kubernot kubectl knot kuber
Kubernetes kubectl kubelet kube-apiserver

Kubernot has two major components: kuber and knot:

  • Kuber implements a minimal subset of The Kubernetes API, and is therefore compatible with kubectl.

    It is directly modelled after kube-apiserver.

  • Knot is the equivalent of kubelet in Kubernetes.

    It runs on targets like Windows / BSD / Android / Chrome (via WASI), since it only deals with processes, sockets and files - no container support is required.


Getting Started

k0s is the multicall binary of Kubernot.

kubectl is also bundled as a subcommand for convenience.

To install it, run:

$ go install k0s.io/cmd/k0s@latest

To start the server, run:

$ k0s kuber

then point kubectl to http://127.0.0.1:8000 and print the version:

$ k0s kubectl -s http://127.0.0.1:8000 version

Credits