使用树莓派部署k3s集群
使用树莓派部署 k3s 集群,需要至少 3 台树莓派,并安装好 rpios lite 64bit
介绍
- 完美适配边缘环境
k3s 是一个高可用的、经过 CNCF 认证的 Kubernetes 发行版,专为无人值守、资源受限、偏远地区或物联网设备内部的生产工作负载而设计。
- 简单且安全
k3s 被打包成单个小于 60MB 的二进制文件,从而减少了运行安装、运行和自动更新生产 Kubernetes 集群所需的依赖性和步骤。
- 针对 ARM 进行优化
ARM64 和 ARMv7 都支持二进制文件和多源镜像。k3s 在小到树莓派或大到 AWS a1.4xlarge 32GiB 服务器的环境中均能出色工作。 使用树莓派部署 k3s 集群,需要至少 3 台树莓派,并安装好 rpios lite 64bit
配置
vim /boot/cmdline.txt
add
cgroup_memory=1 cgroup_enable=memory
安装
curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -
查看 node
sudo kubectl get nodes
查看 token
sudo cat /var/lib/rancher/k3s/server/node-token
集群
1 更改主机名
sudo vim /etc/hostname
sudo vim /etc/hosts
主机名不允许重复,否则无法加入集群
2 加入集群
sudo k3s agent --server https://192.168.0.181:6443 --token K109cbe8fc731b4ddec123b4140b137d3dbfacd021a23ba57753d8f6265f309a3b3::server:dc9044bd6a39b4aa9222675cad8b1877 sh -
3 删除节点
关闭调度
sudo kubectl cordon raspberrypi
清空节点
sudo kubectl drain --delete-emptydir-data
删除节点
sudo kubectl delete raspberrypi
4 恢复节点
恢复调度
sudo kubectl uncordon raspberrypi
重新执行 2
仪表盘
1 获取版本
https://github.com/kubernetes/dashboard/releases
2 保存文件
https://raw.githubusercontent.com/kubernetes/dashboard/v2.5.1/aio/deploy/recommended.yaml
3 开启端口
替换命令
vim recommended.yaml
kind: Service
apiVersion: v1
metadata:
labels:
k8s-app: kubernetes-dashboard
name: kubernetes-dashboard
namespace: kubernetes-dashboard
spec:
type: NodePort # 新增
ports:
- port: 443
targetPort: 8443
nodePort: 30443 # 新增
selector:
k8s-app: kubernetes-dashboard
4 设置用户
vim dashboard.admin-user.yml
apiVersion: v1
kind: ServiceAccount
metadata:
name: admin-user
namespace: kubernetes-dashboard
5 设置权限
vim dashboard.admin-user-role.yml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: admin-user
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: admin-user
namespace: kubernetes-dashboard
6 部署命令
sudo k3s kubectl create -f recommended.yaml -f dashboard.admin-user.yml -f dashboard.admin-user-role.yml
7 获取 token
sudo k3s kubectl -n kubernetes-dashboard describe secret admin-user-token | grep '^token'
8 启动仪表盘
sudo k3s kubectl proxy
9 访问仪表盘
https://192.168.0.181:30443/
使用chrome浏览器,请单击空白处然后盲打输入`thisisunsafe`