Lightweight Kubernetes
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
Go to file
Darren Shepherd 470ffca5d7
Update README, fix out of date information
5 years ago
.github/ISSUE_TEMPLATE
cmd
contrib Merge pull request #1730 from geerlingguy/1729-ansible-changed 5 years ago
e2e
manifests
package
pkg Merge pull request #1664 from KnicKnic/windows-18-build 5 years ago
scripts Merge pull request #1659 from joakimr-axis/joakimr-axis_package-cli-clean 5 years ago
tests/perf
vendor update dqlite-build and kine 5 years ago
.dockerignore
.drone.yml
.gitignore
.golangci.json
BUILDING.md
Dockerfile.dapper update dqlite-build and kine 5 years ago
Dockerfile.manifest
Dockerfile.test.dapper Update sonobouy to v0.17.2 5 years ago
LICENSE
Makefile $ must be escaped in Makefile 5 years ago
README.md Update README, fix out of date information 5 years ago
Vagrantfile
channel.yaml
docker-compose.yml
go.mod update dqlite-build and kine 5 years ago
go.sum update dqlite-build and kine 5 years ago
install.sh Merge pull request #1637 from MaciejKucia/mattkucia/fix-install 5 years ago
k3s.service
main.go
vendor.go

README.md

k3s - Lightweight Kubernetes

Lightweight Kubernetes. Easy to install, half the memory, all in a binary less than 100 MB.

Great for:

  • Edge
  • IoT
  • CI
  • Development
  • ARM
  • Embeddeding k8s
  • Situations where a PhD in k8s clusterology is infeasible

What is this?

k3s is a fully compliant Kubernetes distribution with the following changes:

  1. Packaged as a single binary
  2. Lightweight storage backend based on sqlite3 as the default storage mechanism. etcd3, MySQL, Postgres also still available.
  3. Wrapped in simple launcher that handles a lot of the complexity of TLS and options.
  4. Secure by default with reasonable defaults for lightweight environments.
  5. Minimal to no OS dependencies (just a sane kernel and cgroup mounts needed). k3s packages required dependencies
    • containerd
    • Flannel
    • CoreDNS
    • CNI
    • Host utilities (iptables, socat, etc)
    • Ingress controller (traefik)
    • Embedded service loadbalancer
    • Embedded network policy controller

What's with the name?

We wanted an installation of Kubernetes that was half the size in terms of memory footprint. Kubernetes is a 10 letter word stylized as k8s. So something half as big as Kubernetes would be a 5 letter word stylized as k3s. There is no long form of k3s and no official pronunciation.

Documentation

Please see the official docs site for complete documentation on k3s.

Quick-Start - Install Script

The k3s install.sh script provides a convenient way for installing to systemd or openrc, to install k3s as a service just run:

curl -sfL https://get.k3s.io | sh -

A kubeconfig file is written to /etc/rancher/k3s/k3s.yaml and the service is automatically started or restarted. The install script will install k3s and additional utilities, such as kubectl, crictl, k3s-killall.sh, and k3s-uninstall.sh, for example:

sudo kubectl get nodes

K3S_TOKEN is created at /var/lib/rancher/k3s/server/node-token on your server. To install on worker nodes we should pass K3S_URL along with K3S_TOKEN or K3S_CLUSTER_SECRET environment variables, for example:

curl -sfL https://get.k3s.io | K3S_URL=https://myserver:6443 K3S_TOKEN=XXX sh -

Manual Download

  1. Download k3s from latest release, x86_64, armhf, and arm64 are supported.
  2. Run server.
sudo k3s server &
# Kubeconfig is written to /etc/rancher/k3s/k3s.yaml
sudo k3s kubectl get nodes

# On a different node run the below. NODE_TOKEN comes from
# /var/lib/rancher/k3s/server/node-token on your server
sudo k3s agent --server https://myserver:6443 --token ${NODE_TOKEN}