Erik Wilson
c900a251a2
|
5 years ago | |
---|---|---|
.github/ISSUE_TEMPLATE | ||
cmd | ||
contrib | 5 years ago | |
e2e | ||
manifests | 5 years ago | |
package | 5 years ago | |
pkg | 5 years ago | |
scripts | 5 years ago | |
tests/perf | 5 years ago | |
vendor | 5 years ago | |
.dockerignore | ||
.drone.yml | 5 years ago | |
.gitignore | ||
.golangci.json | ||
BUILDING.md | ||
Dockerfile.dapper | 5 years ago | |
Dockerfile.manifest | ||
Dockerfile.test.dapper | 5 years ago | |
LICENSE | ||
Makefile | 5 years ago | |
README.md | 5 years ago | |
Vagrantfile | 5 years ago | |
channel.yaml | 5 years ago | |
docker-compose.yml | ||
go.mod | 5 years ago | |
go.sum | 5 years ago | |
install.sh | 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
- Embedding k8s
- Situations where a PhD in k8s clusterology is infeasible
What is this?
k3s is a fully compliant Kubernetes distribution with the following changes:
- Packaged as a single binary.
- Lightweight storage backend based on sqlite3 as the default storage mechanism. etcd3, MySQL, Postgres also still available.
- Wrapped in simple launcher that handles a lot of the complexity of TLS and options.
- Secure by default with reasonable defaults for lightweight environments.
- 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
- Download
k3s
from latest release, x86_64, armhf, and arm64 are supported. - 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}