btwiuse / k0s

Kubernot is not Kubernetes

Home Page:https://k0s.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

About

Kubernot is not Kubernetes

https://k0s.io

License:MIT License


Languages

Language:Starlark 54.5%Language:Go 36.4%Language:Python 2.9%Language:Rust 2.2%Language:Shell 1.5%Language:Makefile 1.3%Language:TypeScript 0.7%Language:JavaScript 0.2%Language:Dockerfile 0.1%Language:Ruby 0.1%Language:HTML 0.0%