集群:
多台计算机可以使用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