失败!在树莓派2B上搭建OpenClaw
听一个朋友说在树莓派上用OpenClaw搭建AI个人助理也想试试,结果悲剧,搞了一天发现我的2B内存太小,程序都起不来!
后续:
果断下单Mac mini!
听一个朋友说在树莓派上用OpenClaw搭建AI个人助理也想试试,结果悲剧,搞了一天发现我的2B内存太小,程序都起不来!
后续:
果断下单Mac mini!
本文记录了在自己的工作站上部署一个测试集群的过程 参考文档
采用ubuntu 24.04 server amd64 已经将用户ubuntu加入到sudo组
1 | # 先更新一下包 |
1 | # Add Docker's official GPG key: |
配置
/etc/containerd/config.toml
1 | disabled_plugins = ["cri"] |
1 |
|
1 |
|
1 |
|
1 |
|
把上面做好的ubuntu模版clone 3份备用
如果你从软件包(例如,RPM 或者 .deb)中安装 containerd,你可能会发现其中默认禁止了 CRI 集成插件。 你需要启用 CRI 支持才能在 Kubernetes 集群中使用 containerd。 要确保 cri 没有出现在 /etc/containerd/config.toml 文件中 disabled_plugins 列表内。如果你更改了这个文件,也请记得要重启 containerd。 相关文档
重置containerd配置
1 | sudo containerd config default > /etc/containerd/config.toml |
配置 systemd cgroup 驱动
1 | # 编辑 /etc/containerd/config.toml |
重载沙箱(pause)镜像 我用的kubeadm 是1.30 需要修改默认的沙箱镜像不然会有警告
1 | # 编辑 /etc/containerd/config.toml |
一旦你更新了这个配置文件,可能就同样需要重启 containerd:
1 | sudo systemctl restart containerd |
GFW
1 | #1 编辑 /etc/environment |
1 | sudo kubeadm init --control-plane-endpoint=172.17.0.220 --pod-network-cidr=10.244.0.0/16 |
记住上面的token和证书hash后面加入节点用
1 |
|
1 |
|
前一篇《搭建Kubernetes集群》里说到kubekey+podman。那是因为新版本docker 抽风影响默认路由。后来重装了老版本docker desktop后解决了,我装的是v4.23.0。 于是像试试docker 自带的kubernetes
进入Settings > Kubernetes ,钩上然后点Apply & restart
看到这个变绿就装好了,对,就是那么简单
1 | kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml |
装好后长这样
admin-user.yaml
1 | # https://github.com/kubernetes/dashboard/blob/master/docs/user/access-control/creating-sample-user.md |
apply上面这个manifests
用这个命令获取登录token
kubectl get secret admin-user -n kubernetes-dashboard -o jsonpath={".data.token"} | base64 -d
kubectl patch svc kubernetes-dashboard -n kubernetes-dashboard -p '{"spec": {"type": "NodePort"}}'
这里要提到docker k8s的好处,它不用ingress 或者LoadBalancer 只要绑个节点端口,本地就可以访问了。

https://localhost:30324 这就是dashboard的访问地址了。
输入刚才获得的token 就可以登录了。
《 新版Docker desktop会起一个def 路由,导致宿主机不能上网 》 上面这篇提到了新版本的问题,于是用了podman,实际上podman真不怎么好用。于是研究了一下。
新版本 2.6.X 的问题是docker起来后会新添加一个默认路由,把流量路由到bridge100这个设备上导致上网问题。 在网上找到一个issue Strange network routes after upgrading to 4.24.x 里面提到了和我一样的问题,但是人家是linux。他的解决方案也比较简单
1 | Downgrading again to version 4.23.0 completely solves that issue - routes are gone. |
于是我试了一下,装了docker desktop 4.23 确实有效。
我在公司内网的PVE上安装了3个VM,k[1:3] 虚拟机的os 是ubuntu 22.04.3 装了docker-ce,ubuntu 上的containerd 是docker 提供的。
1 | # 记得把swap关了 |
这个东西真的蛮复杂的,按照官方的教程我确实跑起了一个,但是因为我起的时候没有安装网络组件(cni)搞了2天各种问题,所以放弃了。下面是步骤:
1 | # https://kubernetes.io/zh-cn/docs/setup/production-environment/container-runtimes/#containerd |
祝君好运~
发现自己手挫不成后就找找别的工具。看了一下kops和rancher都是基于云的,我的目标是本地裸机不符合 于是我看了最早的kubesphere的一个工具kubekey。
这货也是坑,不过比kubeadm好多了。 kubekey可以只用来部署k8s 不安装kubesphere,参照这个文章 How to Install Kubernetes the Easy Way Using KubeKey 确实是可以跑起一个集群的。
k8s版本问题,我贴一下我的config,这里的版本是我从1.29.0一点一点试下去的!因为用的registry是kubesphere团队自己维护的并不是registry.k8s.io所以有坑。倒是可以试试把registy切换到google,但是我没有精力折腾了,有缘人如果有心可以给我留言。
1 | apiVersion: kubekey.kubesphere.io/v1alpha2 |
我是在我本机执行的kk create cluster 。其实完全可以在节点里找一台做主控来开集群。但是kk 本来就是个远程的playbook,他核心是ansible 只要有ssh权限就ok。在集群起来后需要把集群的管理配置拉到本地和本机的配置合并一下然。
1 | # k1 是control-plane,看我上面的配置 |
列出所有可控集群
1 | $ kubectl config get-contexts |
切换上下文
1 | $ kubectl config use-context [email protected] |
一开始以为是minikube 搭建的k8s导致的
后来发现系统里有两条def 路由

没有时间深入研究Y。不能忍,于是卸载了docker desktop换了别的方案 Podman
因为要测试一个grpc的服务,我需要压力测试。协作单位有专门的压测部门我就直接用他们的技术栈了。
新建个python项目
grpc_user.py
1 | import time |
1 | from locust import task, constant |
python -m locust
在webui上设定用户数和创建频率,就可以上路了。

今天开始采用Github Actions 作为本Blog的CI,之前那个收费了。

从剪切板粘贴文本到vscode 的terminal里会贴2次。
原因是我在 .zprofile里用了set -a 解决方案也很简单,在文件最后加 set +a 就好了。
本地环境是Mac