介绍
k3s 是轻量级 Kubernetes,专为物联网和边缘计算构建的经过认证的 Kubernetes 发行版。
架构图:
![](http://mg.meiflower.top/mb/images/k8s/k3s.png)
优点
- 适合边缘计算
K3s 是一种高度可用、经过认证的 Kubernetes 发行版,专为无人值守、资源受限、远程位置或物联网设备内部的生产工作负载而设计。 - 简化和安全
K3s 打包为一个 <50MB 的二进制文件,可减少安装、运行和自动更新生产 Kubernetes 集群所需的依赖项和步骤。 - 针对 ARM 进行了优化
ARM64 和 ARMv7 都支持二进制文件和多架构映像。从 Raspberry Pi 到 AWS a1.4xlarge 32GiB 服务器,K3s 都能很好地工作。
快速开始
- 一条命令安装server
curl -sfL https://get.k3s.io | sh -
- 下载 K3s -最新版本,支持 x86_64、ARMv7 和 ARM64
- 运行服务器
# 在master节点运行k3s服务器
sudo k3s server &
# k3s的Kubeconfig配置文件保存到/etc/rancher/k3s/k3s.yaml
sudo k3s kubectl get node
# 在不同的工作节点上运行agent服务
# cat /var/lib/rancher/k3s/server/node-token 来查看token
sudo k3s agent --server https://myserver:6443 --token ${NODE_TOKEN}
利用multipass模拟安装
在mac
上通过multipass
来安装,multipass能快速得到Ubuntu VM
。
- 思路步骤
- 先创建2个VM,一个master,一个node1。
- 在master里安装k3s server。
- 在node1里安装k3s agent。
实践
- 创建k3s的VM
mango@mangodeMacBook-Pro ~ % multipass launch --name k3s --mem 2G --disk 5G
Launched: k3s
- 创建node1的VM
mango@mangodeMacBook-Pro ~ % multipass launch --name node1 --mem 1G --disk 5G
Launched: node1
- 进入k3s节点,安装k3s server
# 进入k3s节点
multipass shell k3s
# 设置代理,如果没设置,下载k3s的文件会很慢,或者使用其他方式下载
ubuntu@k3s:~$ export https\_proxy=http://192.168.3.22:9999
# 一条命令安装k3s server
ubuntu@k3s:~$ curl -sfL https://get.k3s.io | sh -
[INFO] Finding release for channel stable
[INFO] Using v1.21.5+k3s2 as release
[INFO] Downloading hash https://github.com/k3s-io/k3s/releases/download/v1.21.5+k3s2/sha256sum-amd64.txt
[INFO] Downloading binary https://github.com/k3s-io/k3s/releases/download/v1.21.5+k3s2/k3s
[INFO] Verifying binary download
[INFO] Installing k3s to /usr/local/bin/k3s
[INFO] Skipping installation of SELinux RPM
[INFO] Creating /usr/local/bin/kubectl symlink to k3s
[INFO] Creating /usr/local/bin/crictl symlink to k3s
[INFO] Creating /usr/local/bin/ctr symlink to k3s
[INFO] Creating killall script /usr/local/bin/k3s-killall.sh
[INFO] Creating uninstall script /usr/local/bin/k3s-uninstall.sh
[INFO] env: Creating environment file /etc/systemd/system/k3s.service.env
[INFO] systemd: Creating service file /etc/systemd/system/k3s.service
[INFO] systemd: Enabling k3s unit
Created symlink /etc/systemd/system/multi-user.target.wants/k3s.service → /etc/systemd/system/k3s.service.
[INFO] systemd: Starting k3s
- 查看k3s集群节点和token
ubuntu@k3s:$ sudo kubectl get nodes
NAME STATUS ROLES AGE VERSION
k3s Ready control-plane,master 6m9s v1.21.5+k3s2
# 查看token,工作节点加入时需要使用
ubuntu@k3s:$ sudo cat /var/lib/rancher/k3s/server/node-token
K103588fd616ce143858b27ba24f10d0495d1f65d5427bda0f0083cb457dc191936::server:13e222641179e204ce76e2a57ca6af04
- 进入node1节点,安装k3s agent工作节点
# 进入node1节点
multipass shell node1
# 设置代理
export https_proxy=http://192.168.3.22:9999
# 并下载k3s命令
wget https://github.com/k3s-io/k3s/releases/download/v1.22.3%2Bk3s1/k3s
# 赋权
sudo chmod 777 k3s
# 将命令移动到 /usr/bin/ 下
sudo mv k3s /usr/bin/
# node1节点上启动k3s agent,利用nohup & 后端运行
sudo nohup k3s agent --server https://192.168.64.2:6443 --token K103588fd616ce143858b27ba24f10d0495d1f65d5427bda0f0083cb457dc191936::server:13e222641179e204ce76e2a57ca6af04 &
- 验证集群
# k3s(master)节点上查看集群节点,能看到node1成功ready
ubuntu@k3s:$ sudo kubectl get nodes
NAME STATUS ROLES AGE VERSION
k3s Ready control-plane,master 23m v1.21.5+k3s2
node1 Ready 35s v1.22.3+k3s1
至此,恭喜你已经通过multipass
模拟安装k3s cluster
成功。