树莓派_安装k3s集群

集群:

多台计算机可以使用k8s组成计算机集群,解决一台计算机不够用的事情。

分布式相比集群:

相比于分布式来说,集群所解决的问题是一台电脑同时做同一件事能力不够,需要多台电脑做同一件事来解决,比如网站服务器,需要很多计算机处理相同的一件事。

分布式则是用多台电脑解决多个问题,更多的用处是将一件事拆分成多个可以同步进行的事务,放在多个计算机上同时执行。所以分布式和集群相似点应该是都有多个计算机。

k8s vs k3s:

一般集群都会使用k8s对集群进行管理和控制,但是在树莓派这种arm芯片,算力和空间都不足的计算机上来说,k3s是更好的选择,因为k3s和k8s在功能上相差不多,几乎没有差异,而且也是k8s的大佬亲手操刀为arm和配置较低的计算机设计的,甚至安装包也只有几十MB,其中与k8s更多的只是细节差异,比如像集群的数据库之类的,外部使用来说几乎没有差异。

选择上,如果是大集群,使用k8s即可,性能和稳定性更好。如果像是树莓派这种集群,建议使用k3s。

k3s master下载安装:

k3s安装比较简单,正常安装好树莓派的系统之后,开启ssh,然后输入下面这个

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

等待一会,会显示下载安装成功

root@raspberrypi:/home/pi# curl -sfL https://get.k3s.io | sh -
[INFO]  Finding release for channel stable
[INFO]  Using v1.21.2+k3s1 as release
[INFO]  Downloading hash https://github.com/k3s-io/k3s/releases/download/v1.21.2+k3s1/sha256sum-arm.txt
[INFO]  Downloading binary https://github.com/k3s-io/k3s/releases/download/v1.21.2+k3s1/k3s-armhf
[INFO]  Verifying binary download
[INFO]  Installing k3s to /usr/local/bin/k3s
[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

这时使用以下命令即可看到相应的节点:

sudo kubectl get nodes

下载安装可能出现的错误:

1.下载失败:建议使用离线下载安装的方式,先下载好包,然后运行sh即可

2.下载安装成功启动失败,提示以下这种

Job for k3s.service failed because the control process exited with error code.
See "systemctl status k3s.service" and "journalctl -xe" for details.

这种的话按照提示查看日志,一般会提示在一个文件后面添加这个cgroup_memory=1 cgroup_enable=memory

打开这个文件

nano /boot/cmdline.txt

在这个文件后面添加(记得按照这个文件的格式添加,不能回车,只能在后面加空格然后加上这个提示的类似 cgroup_memory=1 cgroup_enable=memory)

然后重启,输入以下命令启动k3s,使用查看节点的命令即可看到节点

systemctl start k3s
root@raspberrypi:/home/pi# sudo kubectl get nodes
NAME          STATUS   ROLES                  AGE   VERSION
raspberrypi   Ready    control-plane,master   12h   v1.21.2+k3s1

k3s slave安装:

安装节点需要在master的机器上取下token才可以

使用如下命令直接输出token

sudo cat /var/lib/rancher/k3s/server/node-token

复制好之后替换如下命令中的token

curl -sfL http://get.k3s.io | K3S_URL=https://192.168.50.10:6443 K3S_TOKEN=刚才保存下来的连接令牌 sh -

比如这个

curl -sfL http://get.k3s.io | K3S_URL=https://192.168.50.10:6443 K3S_TOKEN=K1066f9c54c72cd03e1bd1271bc1499abd79d61e3663fce8fa275e6c4b933a679e9::server:3566ebacd35897c6f4286d1d42ab14e5 sh -

然后节点就加入到master中了

需要手动启动节点的话可以这个命令:

systemctl start k3s-agent

k3s卸载:

要从 master 节点卸载 K3s,请运行:

/usr/local/bin/k3s-uninstall.sh

要从 slave 节点卸载 K3s,请运行:

/usr/local/bin/k3s-agent-uninstall.sh

上一篇:多云搭建 K3S 集群


下一篇:硬核干货| 如何利用K3s低成本在流水线中添加测试