使用树莓派部署k3s集群

使用树莓派部署 k3s 集群,需要至少 3 台树莓派,并安装好 rpios lite 64bit

介绍

  1. 完美适配边缘环境

k3s 是一个高可用的、经过 CNCF 认证的 Kubernetes 发行版,专为无人值守、资源受限、偏远地区或物联网设备内部的生产工作负载而设计。

  1. 简单且安全

k3s 被打包成单个小于 60MB 的二进制文件,从而减少了运行安装、运行和自动更新生产 Kubernetes 集群所需的依赖性和步骤。

  1. 针对 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`