一句话介绍:
k3s - 轻量级的 Kubernetes,易于安装,占用内存少,安装包小于100MB。
它非常适合于以下场景:
- Edge
- IoT
- CI
- Development
- ARM
- Embedding k8s
- Situations where a PhD in k8s clusterology is infeasible
k3s 在发布以充分作出以下改变:
-
打包为单个二进制文件.
-
后端存储默认使用轻量级的sqlite3。etcd3, MySQL, Postgres 这些也可以.
-
包装简单的启动器去处理大量复杂的TLS和选项.
-
在轻量级的使用场景下对其合理的配置和安全加固.
-
缩小OS的依赖(仅仅内核和cgroup是需要的). k3s 包必须的依赖有:
- containerd
- Flannel
- CoreDNS
- CNI
- Host utilities (iptables, socat, etc)
- Ingress controller (traefik)
- Embedded service loadbalancer
- Embedded network policy controller
工作原理
为什么要起这个名字
初衷是希望Kubernetes的安装能减小一半内存使用。Kubernetes用了10个字母简写为k8s. 所以如果要小于一半 Kubernetes,那么就要5个字母,简写为k3s. 这个没有正式形式及非官方的发音。
文档地址
可以查看这里 https://rancher.com/docs/k3s/latest/en/
快速开始 - 安装脚本
k3s install.sh 脚本提供便捷方式安装k3s为服务:
curl -sfL https://get.k3s.io | sh -
kubeconfig 写到这里/etc/rancher/k3s/k3s.yaml
,这个服务也是自动启动或重启。这个安装脚本也会安装附加组件,如 kubectl, crictl, k3s-killall.sh, and k3s-uninstall.sh, 如:
sudo kubectl get nodes
K3S_TOKEN 写到了这里 /var/lib/rancher/k3s/server/node-token。在worker nodes 工作结点上安装要传递 K3S_URL along 及 K3S_TOKEN 或者在环境变量加上 K3S_CLUSTER_SECRET, 如:
curl -sfL https://get.k3s.io | K3S_URL=https://myserver:6443 K3S_TOKEN=XXX sh -
手工下载
- 下载最新的k3s 发行包, x86_64, armhf, 和 arm64 都是支持的。
- 运行
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}
更多信息可以查看:https://k3s.io/