夜深了,忙碌的一天终于结束。在这个万籁俱寂的时刻,让我们放下所有的烦恼与疲惫,给自己一个温柔的拥抱。
无论今天发生了什么,都让它随风而去吧。明天是全新的开始,充满着无限的可能。愿你带着微笑入睡,在梦里遇见所有美好的事物。
星星在天空中闪烁着,就像每一个平凡日子里的温暖光芒。愿这些光芒照亮你的夜晚,带给你安宁与幸福。
晚安。愿你的梦里,有阳光,有花香,有所有你爱的人和事。
明天醒来,又是元气满满的一天。
夜深了,忙碌的一天终于结束。在这个万籁俱寂的时刻,让我们放下所有的烦恼与疲惫,给自己一个温柔的拥抱。
无论今天发生了什么,都让它随风而去吧。明天是全新的开始,充满着无限的可能。愿你带着微笑入睡,在梦里遇见所有美好的事物。
星星在天空中闪烁着,就像每一个平凡日子里的温暖光芒。愿这些光芒照亮你的夜晚,带给你安宁与幸福。
晚安。愿你的梦里,有阳光,有花香,有所有你爱的人和事。
明天醒来,又是元气满满的一天。
2026年3月10日,科技圈依然热闹非凡。Apple发布了全新的M5 Max芯片,为近三年未升级笔记本电脑的用户带来了重大升级体验。与此同时,OpenAI和Google的员工公开支持Anthropic起诉美国国防部的诉讼,引发业界广泛关注。
在AI领域,Anthropic最新发布的Claude Code更新加入了Code Review功能,可以自动发现代码中的bug。而OpenAI则宣布将收购AI安全平台Promptfoo,进一步强化其AI安全体系。
民调显示,美国选民对AI的好感度仅为26%,甚至低于对移民执法机构ICE的印象。AI技术的公众接受度仍面临挑战。
硬件方面,iPhone 17E正式发布,但评测建议普通用户可以等待更合适的时机升级。Apple智能家居显示器HomePad预计将在秋季随iOS 27一同亮相。
三星宣布其Odyssey 3D显示器到年底将支持超过120款游戏,无需佩戴3D眼镜即可体验沉浸式游戏。高通与Arduino合作推出Ventuno Q单板电脑,搭载40 TOPS NPU,专为机器人和AI应用设计。
6G技术也传来新消息,业界预测可能在2030年商用,将带来更多创新应用。
清晨的阳光透过窗帘洒在书桌上,我突然意识到,我们总是太执着于过去的遗憾和未来的焦虑,却忘了好好感受当下的每一刻。
昨天已经过去,无论多么辉煌或暗淡,都无法重来。明天还未到来,再多的担忧也只是徒劳。只有今天,才是真正握在手中的礼物。
活在当下,不是消极度日,而是认真做好眼前的事,用心感受眼前的风景,珍惜眼前的人。工作时全情投入,放松时尽情享受,与人相处时真诚相待。
今天中午的阳光很温暖,一杯咖啡的时光也很惬意。这些看似平凡的小确幸,正是生活最真实的模样。
人生没有标准答案,每个人的当下都是独一无二的。与其仰望别人的星空,不如脚踏实地走好自己的路。
从今天起,让我们都学会活在当下。不念过往,不畏将来,只争朝夕。
作为一名开发者,我一直在寻找一个能够真正提升工作效率的 AI 助手框架。直到我遇到了 OpenClaw,它彻底改变了我的工作方式。今天我来分享一下这个强大的工具。
OpenClaw 是一个开源的 AI 助手框架,它不仅仅是一个聊天机器人,而是一个可编程的工作自动化平台。它能够:
|
1 2 3 4 5 6 7 8 9 10 11 12 |
┌─────────────────────────────────────────────────────────────┐ │ OpenClaw Gateway │ ├─────────────┬─────────────┬─────────────┬──────────────────┤ │ 消息路由 │ 会话管理 │ 技能系统 │ 代理引擎 │ │ (Router) │ (Session) │ (Skills) │ (Agents) │ └──────┬──────┴──────┬──────┴──────┬──────┴────────┬─────────┘ │ │ │ │ ▼ ▼ ▼ ▼ ┌──────┐ ┌──────┐ ┌──────────┐ ┌──────────┐ │ Web │ │ TG │ │ 浏览器 │ │ 子代理 │ │ Chat │ │ Discord│ │ 控制 │ │ SRE │ └──────┘ └──────┘ └──────────┘ └──────────┘ |
OpenClaw 可以完全控制浏览器,完成各种自动化任务:
|
1 2 3 4 5 6 7 8 9 |
// 打开网页 browser action=open url=“https://example.com” // 截图 browser action=screenshot // 自动化操作 browser action=act request={“kind”:“click”,“ref”:“button”} |
实际应用场景:
|
1 2 3 4 5 6 |
// 读取文件 read path=“/path/to/file” // 执行命令 exec command=“npm run build” |
基于 Cron 表达式的定时任务,可以设置每日健康检查、数据备份等自动化任务。
这是我最喜欢的功能!可以创建专业领域的代理:
接收部署请求 → 拉取代码 → 编译 → 测试 → 备份 → 部署 → 验证 → 通知,整个流程完全自动化。
配合 WordPress API,OpenClaw 可以:搜集技术资料 → 生成博客草稿 → 自动排版 → 发布
服务器监控 → 问题分析 → 告警通知,全链路自动化。
OpenClaw 采用 Skills 机制来扩展功能,每个 Skill 都是一个独立的工具包:
| 技能 | 功能 |
|---|---|
| healthcheck | 安全审计与健康检查 |
| weather | 天气查询 |
| feishu-* | 飞书文档/云空间/wiki 操作 |
| multi-search-engine | 多引擎搜索 |
| security-auditor | 代码安全审计 |
OpenClaw 不是一个普通的 AI 聊天机器人,而是一个可编程的工作自动化平台。它让 AI 从”能说会道”进化到”能说会做”。
如果你是一名:
OpenClaw 就是你的第二个大脑!
📢 了解更多:https://docs.openclaw.ai
💬 社区交流:https://discord.com/invite/clawd
本文由 OpenClaw 辅助编写,发布于 zuole.net
又是一个清晨六点醒来,发现窗外天刚蒙蒙亮。这个时间点,城市还在沉睡,没有了白天的喧嚣,格外安静。
突然想到,人这一辈子,有多少个这样的清晨呢?每个清晨都是全新的开始,就像一张白纸,等着我们去书写。有人选择睡个回笼觉,逃避现实;有人选择早起,为梦想奋斗。
早起的好处太多了。最直观的,就是感觉一天的时间变长了。可以悠闲地泡杯咖啡,看看书,或者 simplemente 发发呆。更重要的是,这段时间完全属于自己,没有人会打扰。
最近在尝试养成早起的习惯,发现最难的不是早起本身,而是说服自己从温暖的被窝里爬起来。每当这时,我就会想:如果现在不起来,这辈子可能就这样了。于是,一咬牙,一翻身,也就起来了。
生活不需要太多轰轰烈烈,平平淡淡才是真。在清晨的安静时光里,给自己一个思考的空间,想想今天要做什么,想想人生的目标是什么。这种感觉,很踏实。
如果你也经常熬夜到很晚,不妨试试早起吧。相信我,你会发现一个不一样的世界。
今年怎么事情这么不顺呢
你那是追星吗?你那是追偶像吗?你他娘是馋ta的身子
现在的大地主六十那些中介平台,他们现在成了最大的地主,去过再来一场革命首先要打倒的就是他们
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
┌─────────────────────────────────────────────────────┐ │ 负载均衡器 (可选) │ │ 80/443 → Nginx Ingress │ └─────────────────────────────────────────────────────┘ ↓ ┌─────────────────────────────────────────────────────┐ │ RKE2 Server 节点 (Master) │ │ – etcd │ │ – kube–apiserver │ │ – kube–controller–manager │ │ – kube–scheduler │ │ – Cilium CNI │ │ – Rancher (管理界面) │ └─────────────────────────────────────────────────────┘ ↓ ┌─────────────────────────────────────────────────────┐ │ RKE2 Agent 节点 (Worker) │ │ – kubelet │ │ – Cilium Agent │ │ – 应用 Pod │ │ – Longhorn 存储 (推荐) │ └─────────────────────────────────────────────────────┘ |
| 资源 | 最低配置 | 推荐配置 |
|---|---|---|
| CPU | 2 核 | 4 核 |
| 内存 | 4 GB | 8 GB |
| 磁盘 | 50 GB | 100 GB |
| 网络 | 1 Gbps | 10 Gbps |
| 资源 | 最低配置 | 推荐配置 |
|---|---|---|
| CPU | 2 核 | 8 核 |
| 内存 | 4 GB | 16 GB |
| 磁盘 | 50 GB | 200 GB |
| 网络 | 1 Gbps | 10 Gbps |
| 角色 | 主机名 | IP 地址 | 说明 |
|---|---|---|---|
| Server | k8s-server-1 | 192.168.1.10 | Master 节点 |
| Agent | k8s-node-1 | 192.168.1.11 | Worker 节点 1 |
| Agent | k8s-node-2 | 192.168.1.12 | Worker 节点 2 (可选) |
|
1 2 3 4 5 6 7 8 |
# Pod 网络 cluster-cidr: 172.16.0.0/16 # Service 网络 service-cidr: 172.17.0.0/16 # DNS 服务器 cluster-dns: 172.17.0.10 |
| 端口 | 协议 | 用途 |
|---|---|---|
| 6443 | TCP | Kubernetes API |
| 9345 | TCP | RKE2 Agent 通信 |
| 2379-2380 | TCP | etcd (Server 间) |
| 10250 | TCP | kubelet |
| 80, 443 | TCP | Ingress |
| 端口 | 协议 | 用途 |
|---|---|---|
| 10250 | TCP | kubelet |
| 30000-32767 | TCP | NodePort 服务 |
在有网络的环境中下载以下文件:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
# 设置版本 export RKE2_VERSION=“v1.31.4+rke2r1” export RANCHER_VERSION=“2.12.2” export CERT_MANAGER_VERSION=“v1.18.2” # 1. 下载 RKE2 离线包 wget https://github.com/rancher/rke2/releases/download/${RKE2_VERSION}/rke2–images.linux–amd64.tar.zst wget https://github.com/rancher/rke2/releases/download/${RKE2_VERSION}/rke2.linux–amd64.tar.gz wget https://github.com/rancher/rke2/releases/download/${RKE2_VERSION}/sha256sum–amd64.txt wget https://get.rke2.io –O install.sh # 2. 下载 Rancher 相关文件 wget https://github.com/rancher/rancher/releases/download/v${RANCHER_VERSION}/rancher–images.txt wget https://github.com/rancher/rancher/releases/download/v${RANCHER_VERSION}/rancher–save–images.sh wget https://github.com/rancher/rancher/releases/download/v${RANCHER_VERSION}/rancher–load–images.sh # 3. 下载 cert-manager wget https://github.com/cert–manager/cert–manager/releases/download/${CERT_MANAGER_VERSION}/cert–manager.crds.yaml |
将所有文件传输到离线环境的 /data/rke2-artifacts/ 目录。
|
1 2 3 4 5 6 |
# 创建数据目录 mkdir –p /data/rancher/rke2/agent/images mkdir –p /etc/rancher/rke2 # 创建软链接(保持兼容性) ln –sf /data/rancher /var/lib/rancher |
|
1 2 3 |
# 复制镜像到指定位置(RKE2 会自动加载) cp /data/rke2–artifacts/rke2–images.linux–amd64.tar.zst \ /data/rancher/rke2/agent/images/ |
|
1 2 3 4 5 6 |
cd /data/rke2–artifacts chmod +x install.sh INSTALL_RKE2_ARTIFACT_PATH=/data/rke2–artifacts \ INSTALL_RKE2_TYPE=server \ ./install.sh |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
cat > /etc/rancher/rke2/config.yaml <<EOF # 节点配置 node–name: “k8s-server-1” node–ip: 192.168.1.10 # 数据目录 data–dir: /data/rancher/rke2 write–kubeconfig: /etc/rancher/rke2/rke2.yaml write–kubeconfig–mode: “0644” # TLS SAN(添加域名和 IP) tls–san: – “rancher.example.com” – “192.168.1.10” # CNI 配置 – 使用 Cilium cni: cilium # 网络配置 cluster–cidr: 172.16.0.0/16 service–cidr: 172.17.0.0/16 cluster–dns: 172.17.0.10 cluster–domain: cluster.local # Cilium 配置 cni–config: cilium: kubeProxyReplacement: strict enablePolicy: true policyEnforcementMode: always EOF |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
cat > /etc/rancher/rke2/registries.yaml <<EOF # 镜像代理配置 mirrors: docker.io: endpoint: – “https://registry.example.com” quay.io: endpoint: – “https://quay.example.com” # 私有仓库认证 configs: “registry.example.com”: auth: username: your–username password: your–password tls: insecure_skip_verify: false EOF |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
mkdir –p /data/rancher/rke2/server/manifests cat > /data/rancher/rke2/server/manifests/rke2–ingress–nginx–config.yaml <<EOF —– apiVersion: helm.cattle.io/v1 kind: HelmChartConfig metadata: name: rke2–ingress–nginx namespace: kube–system spec: valuesContent: |– controller: # 使用 hostNetwork 模式 hostNetwork: true kind: DaemonSet # 监听主机端口 service: type: ClusterIP # 容忍度配置 tolerations: – key: “node-role.kubernetes.io/control-plane” operator: “Exists” effect: “NoSchedule” # 配置 config: use–forwarded–headers: “true” compute–full–forwarded–for: “true” # 资源限制 resources: limits: cpu: 1000m memory: 512Mi requests: cpu: 100m memory: 128Mi EOF |
|
1 2 3 4 5 6 |
# 启用并启动服务 systemctl enable rke2–server.service systemctl start rke2–server.service # 查看启动日志 journalctl –u rke2–server –f |
|
1 2 3 4 5 6 7 8 9 10 11 |
# 设置环境变量 export KUBECONFIG=/etc/rancher/rke2/rke2.yaml export PATH=$PATH:/var/lib/rancher/rke2/bin # 添加到 bashrc cat >> ~/.bashrc <<EOF export KUBECONFIG=/etc/rancher/rke2/rke2.yaml export PATH=\$PATH:/var/lib/rancher/rke2/bin EOF source ~/.bashrc |
|
1 2 3 4 5 6 7 8 9 |
# 检查节点状态 kubectl get nodes # 预期输出 NAME STATUS ROLES AGE VERSION k8s–server–1 Ready control–plane,etcd,master 2m v1.31.4+rke2r1 # 检查系统 Pod kubectl get pods –A |
|
1 2 3 4 5 |
# 查看 token cat /data/rancher/rke2/server/node–token # 输出示例: # K10xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx::server:xxxxxxxxxxxxxxxx |
|
1 2 3 4 5 6 7 8 9 10 |
# 创建目录 mkdir –p /data/rancher/rke2/agent/images mkdir –p /etc/rancher/rke2 # 创建软链接 ln –sf /data/rancher /var/lib/rancher # 复制镜像文件 cp /data/rke2–artifacts/rke2–images.linux–amd64.tar.zst \ /data/rancher/rke2/agent/images/ |
|
1 2 3 4 5 6 |
cd /data/rke2–artifacts chmod +x install.sh INSTALL_RKE2_ARTIFACT_PATH=/data/rke2–artifacts \ INSTALL_RKE2_TYPE=agent \ ./install.sh |
|
1 2 3 4 5 6 7 8 9 10 11 12 |
cat > /etc/rancher/rke2/config.yaml <<EOF # 加入集群配置 server: https://192.168.1.10:9345 token: <从 Server 节点获取的 token> # 节点配置 node–name: “k8s-node-1” node–ip: 192.168.1.11 # 数据目录 data–dir: /data/rancher/rke2 EOF |
|
1 2 3 4 5 6 7 |
cat > /etc/rancher/rke2/registries.yaml <<EOF # 与 Server 节点保持一致 mirrors: docker.io: endpoint: – “https://registry.example.com” EOF |
|
1 2 3 4 5 |
systemctl enable rke2–agent.service systemctl start rke2–agent.service # 查看日志 journalctl –u rke2–agent –f |
在 Server 节点上执行:
|
1 2 3 4 5 6 |
kubectl get nodes # 预期输出 NAME STATUS ROLES AGE VERSION k8s–server–1 Ready control–plane,etcd,master 10m v1.31.4+rke2r1 k8s–node–1 Ready <none> 2m v1.31.4+rke2r1 |
|
1 2 3 4 5 6 7 8 9 |
# 检查所有系统组件 kubectl get pods –A # 等待所有 Pod 运行 kubectl wait —for=condition=ready pod \ –l k8s–app=cilium –n kube–system —timeout=300s # 检查 Ingress Controller kubectl get pods –n kube–system | grep nginx |
|
1 2 3 4 5 |
# 下载 Helm 安装脚本 curl –fsSL https://raw.githubusercontent.com/helm/helm/main/scripts/get–helm–3 | bash # 验证安装 helm version |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# 创建 namespace kubectl create namespace cert–manager # 安装 CRDs kubectl apply –f /data/rke2–artifacts/cert–manager.crds.yaml # 添加 Helm 仓库 helm repo add jetstack https://charts.jetstack.io helm repo update # 安装 cert-manager helm install cert–manager jetstack/cert–manager \ —namespace cert–manager \ —version v1.18.2 # 验证安装 kubectl get pods –n cert–manager # 等待就绪 kubectl wait —for=condition=ready pod \ –l app.kubernetes.io/instance=cert–manager \ –n cert–manager —timeout=300s |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# 创建 namespace kubectl create namespace cattle–system # 添加 Rancher Helm 仓库 helm repo add rancher–stable https://releases.rancher.com/server–charts/stable helm repo update # 安装 Rancher helm install rancher rancher–stable/rancher \ —namespace cattle–system \ —set hostname=rancher.example.com \ —set replicas=1 \ —set bootstrapPassword=admin # 等待 Rancher 启动 kubectl –n cattle–system rollout status deploy/rancher # 查看 Rancher Pod kubectl get pods –n cattle–system |
|
1 2 3 4 5 6 |
# 查看 Ingress kubectl get ingress –n cattle–system # 预期输出 NAME CLASS HOSTS ADDRESS PORTS AGE rancher nginx rancher.example.com 80, 443 2m |
在客户端机器的 /etc/hosts 文件中添加:
|
1 |
192.168.1.10 rancher.example.com |
在浏览器中打开:
|
1 |
https://rancher.example.com |
初始登录:
adminadmin(首次登录需要修改)
登录 Rancher 后,检查:
ActiveActive 状态Healthy
问题:ImagePullBackOff 错误
解决方案:
|
1 2 3 4 5 6 7 8 9 |
# 检查 registries.yaml 配置 cat /etc/rancher/rke2/registries.yaml # 检查 containerd 是否识别配置 grep –A 10 “registry.example.com” \ /var/lib/rancher/rke2/agent/etc/containerd/config.toml # 测试镜像拉取 crictl pull registry.example.com/rancher/rancher:v2.12.2 |
问题:Agent 无法连接到 Server
排查步骤:
|
1 2 3 4 5 6 7 8 9 10 11 |
# 1. 测试网络连接 curl –k https://192.168.1.10:9345/ping # 2. 检查防火墙 firewall–cmd —list–ports # 3. 检查 token 是否正确 cat /etc/rancher/rke2/config.yaml # 4. 查看 Agent 日志 journalctl –u rke2–agent –f |
问题:浏览器无法访问 Rancher
排查步骤:
|
1 2 3 4 5 6 7 8 9 10 11 |
# 1. 检查 Ingress Controller kubectl get pods –n kube–system | grep nginx # 2. 检查 Rancher Pod kubectl get pods –n cattle–system # 3. 检查 Ingress 配置 kubectl get ingress –n cattle–system –o yaml # 4. 检查端口监听 netstat –tlnp | grep –E ’80|443′ |
问题:Pod 之间无法通信
解决方案:
|
1 2 3 4 5 6 7 8 9 10 11 |
# 检查 Cilium 状态 kubectl get pods –n kube–system –l k8s–app=cilium # 安装 Cilium CLI(可选) CILIUM_CLI_VERSION=v0.16.21 wget https://github.com/cilium/cilium–cli/releases/download/${CILIUM_CLI_VERSION}/cilium–linux–amd64.tar.gz tar xzvf cilium–linux–amd64.tar.gz mv cilium /usr/local/bin/ # 检查连通性 cilium connectivity test |
生产环境建议:
定期备份关键数据:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
#!/bin/bash # 备份脚本示例 BACKUP_DIR=“/backup/rke2/$(date +%Y%m%d_%H%M%S)” mkdir –p ${BACKUP_DIR} # 备份 etcd tar czf ${BACKUP_DIR}/etcd.tar.gz \ –C /data/rancher/rke2/server db/ # 备份证书 tar czf ${BACKUP_DIR}/tls.tar.gz \ –C /data/rancher/rke2/server tls/ # 备份配置 tar czf ${BACKUP_DIR}/config.tar.gz \ –C /etc/rancher rke2/ echo “备份完成: ${BACKUP_DIR}” |
建议安装:
配置日志轮转:
|
1 2 3 |
# 编辑 /etc/systemd/journald.conf SystemMaxUse=1G SystemMaxFileSize=100M |
使用 Longhorn 时,避免在 Master 节点运行:
|
1 2 3 4 5 |
# 给 Master 节点添加 taint kubectl taint nodes k8s–server–1 \ node–role.kubernetes.io/master=:NoSchedule # Longhorn 会自动调度到 Worker 节点 |
本文介绍了 RKE2 和 Rancher 的完整离线安装流程,主要步骤包括:
通过本指南,您应该能够在离线环境中成功部署一个生产级别的 Kubernetes 集群和 Rancher 管理平台。
有点困,严重需要补觉