官网参考:https://rancher.com/docs/k3s/latest/en/quick-start/
K8S非常消耗资源,在性能一般的机器上不适合部署。K8S的精简版K3S就是为了针对这种情况,将很多性能一般的机器(例如树莓派)加入到集群
1 安装raspberry操作系统
默认用户名/密码:pi/raspberry
1.1 修改主机名
sudo hostnamectl set-hostname node1
1.2 设置root密码
sudo passwd root
1.3 启用root进行远程连接
sudo vi /etc/ssh/sshd_config 增加一行: PermitRootLogin yes
设置开启自启ssh+重启:systemctl enable ssh && systemctl restart ssh
1.4 调整主机时间为最新时间
集群的所有主机的时间必须保证不能差太多,否则https会出现证书错误等等异常
date -s "2019-11-25 15:21:21"
1.5 修改默认的vi配置(上下左右和backspace键混乱)
vi /etc/vim/vimrc.tiny 修改set compatible,将其改为set nocompatible 再添加一行:set backspace=2
1.6(可选) 以root用户登录
由于我是用HDMI和键盘连接了树莓派,开通ssh后可以远程连接控制
2 下载docker
注意不同的操作系统下载的方式不一样
2.1 下载
curl -fsSL get.docker.com -o get-docker.sh
sudo sh get-docker.sh
2.2 验证
docker run arm32v7/hello-world
3 下载k3s
需要注意:针对arm32位的,例如armv7l,需要查找对应的镜像,K3S是支持该架构的,但是很多镜像都没有arm版本,X86_64和arm64架构的镜像会多一点
3.1 下载k8s.gcr.io/pause镜像
我的树莓派是armv7l架构的,如何查看CPU架构:
uname -m
由于国内墙的问题,k3s依赖的该镜像无法pull下来,所以要提前准备该镜像:
docker pull mirrorgooglecontainers/pause-arm:3.1
docker tag mirrorgooglecontainers/pause-arm:3.1 k8s.gcr.io/pause:3.1
不同CPU架构对应的该镜像:https://hub.docker.com/search?q=mirrorgooglecontainers%2Fpause&type=image
3.2 搭建master端
注意需要用到6443端口
下载(没反应就重试一次):
curl -sfL https://get.k3s.io | sh -
修改默认容器引擎为docker : vi /etc/systemd/system/k3s.service 修改ExecStart的值:/usr/local/bin/k3s server --docker --no-deploy traefik :
重启:
systemctl daemon-reload && systemctl restart k3s
3.3 搭建node端
在master节点拿到K3S_TOKEN 和master的IP
下载:
curl -sfL https://get.k3s.io | K3S_URL=https://master的IP:6443 K3S_TOKEN=K10e44a6fae9ad713a5e76f2fa94a93d898c1fe24520156c9f471ceb17b14c203c3::server:bda159824648de58d84ad9b62b1d0062 sh -
最终IP和TOKEN的信息会在/etc/systemd/system/k3s-agent.service.env里
修改默认容器引擎为docker:vi /etc/systemd/system/k3s-agent.service 修改ExecStart的值:/usr/local/bin/k3s server --docker
重启:
systemctl daemon-reload && systemctl restart k3s-agent
3.4 在master上验证
kubectl get nodes -o wide
到这里K3S集群已经部署好,可以直接部署服务了
如果想集成到rancher(如何部署rancher),需要在master节点上(必须是X86或者arm64架构)执行rancher导入命令:
复制该命令,在master节点执行后,过一会rancher里就会有该集群的信息:
由于arm架构的没有对应的rancher-agent镜像,我们需要准备该镜像(例如我的rancher是2.3.2版本的):
docker pull ags131/rancher-agent:v2.0.4_arm
docker tag ags131/rancher-agent:v2.0.4_arm rancher/rancher-agent:v2.3.2
最终可以查看结果:
来源:CSDN
作者:懒的去其
链接:https://blog.csdn.net/qq_35720307/article/details/103245416