news 2026/7/11 9:43:51

VPP 生产 Kubernetes 高可用集群 — 部署过程笔记

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
VPP 生产 Kubernetes 高可用集群 — 部署过程笔记

VPP 生产 Kubernetes 高可用集群 — 部署过程笔记

文档性质:真实服务器实操记录(非模拟),所有命令输出均为实际执行结果
部署工具:Sealos v5.1.1(build 2025-11-17,gitCommit 1e312ad2c)
Kubernetes 版本:v1.30.7
CNI:Calico v3.28.1 |Helm:v3.19.2 |容器运行时:Containerd v1.7.27 |etcd:3.5.15-0 |CoreDNS:v1.11.3
操作系统:Ubuntu 24.04.4 LTS(内核 6.8.0-106-generic)
集群规模:3 控制面(其中 2 台计算节点兼任 master + worker)+ 1 台独立 Kuboard 管理机
部署日期:2026-07-10
验证状态:✅ 全部通过(节点 Ready、etcd 3 成员健康、组件全 Running、业务可调度、Kuboard 可访问)


目录

  1. 服务器清单与角色规划
  2. 架构图
  3. 连通性与环境预检
  4. 出网能力探测与安装通道决策
  5. 系统初始化预置
  6. 安装 Sealos
  7. 集群部署
  8. 计算节点去污点(master 兼 worker)
  9. 集群验证
  10. 部署 Kuboard v3 管理面板
  11. 离线部署包导出
  12. 踩坑与排障记录
  13. 访问信息汇总
  14. 生产加固建议
  15. 附录:全部脚本清单

一、服务器清单与角色规划

华为云 FlexusX 实例,可用区 3,规格 8vCPUs | 16GiB(实测可用内存 14Gi),系统盘 40G,Ubuntu 24.04.4 Server 64bit。

主机名ECS 名称公网 IP(弹性 BGP 5Mbit/s)私网 IP集群角色
vpp-prod-k8s-master-01ecs-f5b7-000127.106.122.167192.168.0.94Master(控制面专用,保留污点不跑业务)
vpp-prod-k8s-node-01ecs-f5b7-000294.74.108.161192.168.0.47Master + Worker(兼任)
vpp-prod-k8s-node-02ecs-f5b7-0003159.138.136.150192.168.0.65Master + Worker(兼任)
vpp-prod-middleware-01ecs-f5b7-0004119.13.125.127192.168.0.44Kuboard v3(独立部署,不加入集群)

角色设计说明

  • 3 个 master 构成奇数控制面,etcd 可容忍 1 节点故障(quorum = 2),无脑裂风险。
  • node-01 / node-02 既是 master 又承载业务 Pod(去除 control-plane 污点),符合"2 台计算节点部署微服务应用集群(AIF、ARIoT、vpp-data-forwarder 等)"的需求。
  • master-01 保留NoSchedule污点,作为纯控制面,保障 API Server / etcd / scheduler 资源不被业务抢占。
  • middleware-01 独立跑 Kuboard 容器(Docker),与集群解耦,即便集群异常也能通过 Kuboard 排障。

二、架构图

外部访问 (公网/运维) │ ┌───────────────────────┼────────────────────────┐ │ │ │ ▼ ▼ ▼ ┌──────────────────────────────────────────┐ ┌──────────────────────┐ │ Kubernetes 控制面 (HA) │ │ vpp-prod-middleware-01 │ │ │ │ 119.13.125.127 │ │ ┌────────────────────┐ │ │ 192.168.0.44 │ │ │ vpp-prod-k8s-master-01 │ │ ┌──────────────────┐ │ │ │ 192.168.0.94 (纯控制面, 有污点) │ │ │ Kuboard v3 │ │ │ │ apiserver/etcd/scheduler/controller │◄──┼───│ (Docker容器) │ │ │ └────────────────────┘ │ │ │ :80 UI /:10081 │ │ │ │ │ └──────────────────┘ │ │ ┌────────────────────┐ ┌────────────────┐ │ └──────────────────────┘ │ │ vpp-prod-k8s-node-01 │ │vpp-prod-k8s-node-02│ │ │ 192.168.0.47 │ │192.168.0.65 │ │ Master+Worker 兼任 │ │ apiserver/etcd/... │ │apiserver/etcd/...│ │ 承载业务微服务 Pod │ │ + 业务 Pod │ │+ 业务 Pod │ │ │ └────────────────────┘ └────────────────┘ │ │ │ │ CNI: Calico v3.28.1 (Pod CIDR 100.64.0.0/10 段实测) │ │ 内置 Registry: sealos.hub:5000 (Sealos 自带镜像仓库) │ └──────────────────────────────────────────┘

三、连通性与环境预检

原则:先只读预检,全部达标后才动手改配置。预检脚本仅采集信息,不做任何写操作。

对 4 台服务器逐台 SSH 登录(root/ 密码认证),采集结果汇总:

检查项4 台结果判定
SSH 22 端口全部可达,登录成功
OS 版本Ubuntu 24.04.4 LTS (Noble Numbat)
内核6.8.0-106-generic
CPU / 内存8 vCPU / 14Gi 可用
根分区/dev/vda1 40G,已用 10%
swap无(0B)✅ 符合 K8s 要求
时间同步Asia/Shanghai,NTP active,System clock synchronized: yes
containerd / dockerinactive(未装,无冲突)
监听端口仅 22(sshd)✅ 无 6443/2379/10250 占用
防火墙 ufwinactive
br_netfilter未加载⚠️ 需预置(见第五节)

关键结论:4 台机器环境干净,无历史容器/K8s 残留,时间已同步,唯一需要处理的是内核模块与 sysctl(部署前统一预置)。


四、出网能力探测与安装通道决策

生产集群拉镜像必须先确认出网通道。对 4 台机器探测各安装源可达性(HTTP 状态码):

目标源状态码可用性
get.sealos.io(Sealos 官方一键脚本)000❌ 不可达(被墙)
github.com200
GitHub Release 二进制下载302✅ 可下 sealos 二进制
Docker Hub (registry-1.docker.io)401✅(401 为匿名正常响应)
Quay.io (Calico)401
阿里云容器镜像 registry.cn-*401
阿里云镜像站 mirrors.aliyun.com301
华为云镜像站 mirrors.huaweicloud.com200
华为云 SWR404/200✅(可拉 Kuboard 镜像)

决策

  1. Sealos 官方脚本不可用 →改从 GitHub Release 直接下载 sealos 二进制sealos_5.1.1_linux_amd64.tar.gz)。
  2. 集群镜像走阿里云 labring 镜像源registry.cn-shanghai.aliyuncs.com/labring/*(国内速度优于 Docker Hub)。
  3. Kuboard 镜像走华为云 SWRswr.cn-east-2.myhuaweicloud.com/kuboard/kuboard:v3

📌离线场景说明:本次目标 ECS 自带公网可在线拉取。若真实生产网完全离线,使用第十一节导出的离线包(vpp-k8s-images.tar+sealos二进制 +kuboard-v3.tar)拷入内网即可,命令改为sealos load -i vpp-k8s-images.tarsealos run本地镜像。


五、系统初始化预置

对 3 台 K8s 节点统一执行(middleware-01 只设主机名 + hosts + 装 Docker)。

5.1 设置主机名

hostnamectl set-hostname vpp-prod-k8s-master-01# 各机对应

5.2 加载内核模块(持久化)

cat>/etc/modules-load.d/k8s.conf<<'EOF' br_netfilter overlay ip_vs ip_vs_rr ip_vs_wrr ip_vs_sh nf_conntrack EOFmodprobe br_netfilter overlay ip_vs ip_vs_rr ip_vs_wrr ip_vs_sh nf_conntrack

5.3 内核参数 sysctl

cat>/etc/sysctl.d/k8s.conf<<'EOF' net.bridge.bridge-nf-call-iptables = 1 net.bridge.bridge-nf-call-ip6tables = 1 net.ipv4.ip_forward = 1 net.ipv4.conf.all.rp_filter = 0 net.ipv4.conf.default.rp_filter = 0 vm.swappiness = 0 fs.file-max = 2097152 fs.inotify.max_user_instances = 8192 EOFsysctl--system

实测确认生效:

net.bridge.bridge-nf-call-iptables = 1 net.ipv4.ip_forward = 1

5.4 配置 /etc/hosts(4 台一致)

cat>>/etc/hosts<<'EOF' # VPP K8s Cluster 192.168.0.94 vpp-prod-k8s-master-01 192.168.0.47 vpp-prod-k8s-node-01 192.168.0.65 vpp-prod-k8s-node-02 192.168.0.44 vpp-prod-middleware-01 EOF

5.5 持久化禁用 swap

sed-i.bak'/ swap / s/^/#/'/etc/fstab# 本次实例本就无 swap,仅做持久化保险

5.6 middleware-01 安装 Docker(供 Kuboard 运行)

apt-getupdate-yDEBIAN_FRONTEND=noninteractiveapt-getinstall-ydocker.io systemctlenabledocker&&systemctl restartdockerdocker--version# => Docker version 29.1.3, build 29.1.3-0ubuntu3~24.04.2

六、安装 Sealos

master-01(引导节点)安装 Sealos CLI:

cd/tmpcurl-sL-osealos.tar.gz\"https://github.com/labring/sealos/releases/download/v5.1.1/sealos_5.1.1_linux_amd64.tar.gz"tar-xzfsealos.tar.gz sealosmv-fsealos /usr/bin/sealos&&chmod+x /usr/bin/sealos sealos version

实测输出:

SealosVersion:buildDate:"2025-11-17T04:16:18Z"gitVersion:5.1.1gitCommit:1e312ad2cgoVersion:go1.23.12platform:linux/amd64

二进制 74MB,从 GitHub Release 下载约 30s。Sealos 会自动分发到其他节点,无需在每台手动装。


七、集群部署

7.1 部署命令(关键:使用私网 IP + 3 master)

sealos run\registry.cn-shanghai.aliyuncs.com/labring/kubernetes:v1.30.7\registry.cn-shanghai.aliyuncs.com/labring/helm:v3.19.2\registry.cn-shanghai.aliyuncs.com/labring/calico:v3.28.1\--masters192.168.0.94,192.168.0.47,192.168.0.65\-p'1qaz@WSX'

⚠️必须使用私网 IP192.168.0.x)。若填公网 IP,组件间通信(etcd peer、apiserver)会因走公网/带宽限速而失败或极慢。

7.2 部署过程日志(关键节点摘录)

info Start to create a new cluster: master [192.168.0.94 192.168.0.47 192.168.0.65], worker [], registry 192.168.0.94 info Executing pipeline Check in CreateProcessor. info checker:hostname / timeSync / containerd # 预检全过 info Executing pipeline PreProcess in CreateProcessor. Trying to pull registry.cn-shanghai.aliyuncs.com/labring/kubernetes:v1.30.7 ... # 拉镜像 ... info Executing pipeline Join in CreateProcessor. info [192.168.0.47:22 192.168.0.65:22] will be added as master # 2/3 master join info start to copy kubeconfig / etc pki files to masters ...Sealos ASCII LOGO... Version: 5.1.1-1e312ad2c

⏱️ 5Mbit/s 小带宽下镜像拉取(kubernetes + helm + calico)约需 12–15 分钟,是耗时主体。带宽充足时通常 3–5 分钟。


八、计算节点去污点(master 兼 worker)

sealos run默认所有 master 都带node-role.kubernetes.io/control-plane:NoSchedule污点。要让 node-01 / node-02 兼任 worker 承载业务,需去除其污点:

exportKUBECONFIG=/root/.kube/configforninvpp-prod-k8s-node-01 vpp-prod-k8s-node-02;dokubectl taint nodes$nnode-role.kubernetes.io/control-plane:NoSchedule- kubectl label nodes$nnode-role.kubernetes.io/worker=--overwritedone

实测输出:

node/vpp-prod-k8s-node-01 untainted node/vpp-prod-k8s-node-01 labeled node/vpp-prod-k8s-node-02 untainted node/vpp-prod-k8s-node-02 labeled

去污点后各节点污点状态(master-01 仍保留污点):

NODE TAINTS vpp-prod-k8s-master-01 [map[effect:NoSchedule key:node-role.kubernetes.io/control-plane]] vpp-prod-k8s-node-01 <none> vpp-prod-k8s-node-02 <none>

💡为何不用--nodes参数:见第十二节踩坑记录 —— Sealos 不允许同一 IP 同时出现在--masters--nodes。正确做法就是只声明 master,再对计算节点去污点。


九、集群验证

9.1 节点状态(全部 Ready)

NAME STATUS ROLES VERSION INTERNAL-IP CONTAINER-RUNTIME vpp-prod-k8s-master-01 Ready control-plane v1.30.7 192.168.0.94 containerd://1.7.27 vpp-prod-k8s-node-01 Ready control-plane v1.30.7 192.168.0.47 containerd://1.7.27 vpp-prod-k8s-node-02 Ready control-plane v1.30.7 192.168.0.65 containerd://1.7.27

9.2 etcd 集群(3 成员全 started)

+------------------+---------+------------------------+---------------------------+ | ID | STATUS | NAME | PEER ADDRS | +------------------+---------+------------------------+---------------------------+ | 13198608b71aa6a2 | started | vpp-prod-k8s-node-01 | https://192.168.0.47:2380 | | 34a8ab6037c59ee9 | started | vpp-prod-k8s-node-02 | https://192.168.0.65:2380 | | d1be2546b82881c0 | started | vpp-prod-k8s-master-01 | https://192.168.0.94:2380 | +------------------+---------+------------------------+---------------------------+

9.3 核心组件(全部 Running)

  • kube-apiserver × 3、kube-controller-manager × 3、kube-scheduler × 3、etcd × 3(每 master 一份)
  • kube-proxy × 3、coredns × 2
  • Calico:calico-node × 3、calico-typha × 2、calico-kube-controllers × 1、csi-node-driver × 3、tigera-operator × 1

sealos status关键输出:

Cluster Node Status: ReadyNode: 3/3 kube-system RunningPod: 17/17 calico-system RunningPod: 9/9 内置 Registry: sealos.hub:5000 Ping: ok kubelet / containerd / registry / image-cri-shim: Enable && Active

9.4 证书有效期

Sealos 签发的证书有效期99 年(至 2126-06-16),仅super-admin.conf为 1 年(364 天,2027-07-10 到期,属正常设计)。

9.5 业务调度验证(Pod 能落到计算节点)

kubectl create deployment sched-test--image=nginx:alpine--replicas=2kubectl get pods-owide-lapp=sched-test

实测:

NAME STATUS NODE sched-test-74cb497f55-mrfdg Running vpp-prod-k8s-node-01 sched-test-74cb497f55-pjxw9 ContainerCreating vpp-prod-k8s-node-02

✅ 两个 Pod 分别调度到 node-01、node-02,证明计算节点已可承载业务。验证后已删除测试 Deployment。


十、部署 Kuboard v3 管理面板

在独立机middleware-01上以 Docker 容器方式部署(不占用集群资源)。

10.1 生成对外 kubeconfig(server 指向 master-01 私网 IP)

# master-01 上cp/root/.kube/config /root/vpp-k8s-kubeconfig.yamlsed-i's#server: https://apiserver.cluster.local:6443#server: https://192.168.0.94:6443#'\/root/vpp-k8s-kubeconfig.yaml

⚠️ 原 kubeconfig 的 server 是域名apiserver.cluster.local,middleware-01 无法解析,必须改成 master-01 的私网 IP。

10.2 middleware-01 网络连通性验证

curl-khttps://192.168.0.94:6443/version

返回:

{"major":"1","minor":"30","gitVersion":"v1.30.7","platform":"linux/amd64"}

✅ middleware-01 → API Server 私网连通。

10.3 启动 Kuboard 容器

dockerrun-d--restart=unless-stopped--name=kuboard\-p80:80/tcp-p10081:10081/tcp\-eKUBOARD_ENDPOINT="http://192.168.0.44:80"\-eKUBOARD_AGENT_SERVER_TCP_PORT="10081"\-v/etc/kuboard:/etc/kuboard\swr.cn-east-2.myhuaweicloud.com/kuboard/kuboard:v3

容器状态:

kuboard Up 2 minutes 0.0.0.0:80->80/tcp, 0.0.0.0:10081->10081/tcp

UI 健康检查:

curl http://127.0.0.1:80 => HTTP 303 (未登录重定向到登录页,服务正常)

✅ Kuboard Web 服务正常。

10.4 导入集群

  1. 浏览器访问http://119.13.125.127(默认账号admin/ 密码Kuboard123首次登录后请立即修改
  2. 添加集群 → 导入已有 Kubernetes 集群 → 上传/粘贴/etc/kuboard/kubeconfig-vpp-prod.yaml(已就绪于 middleware-01)

十一、离线部署包导出

为满足"生产环境离线部署"需求,在已部署机器上导出全部制品(已实操导出并确认真实大小),可直接拷入无外网内网复用。

⚠️关键点sealos save一次只导出一个镜像,语法为sealos save -o <文件> <镜像名>sealos save -o x.tar不带镜像参数会报Error: requires at least 1 arg(s))。因此需对 3 个集群镜像分别导出。Clusterfile 的真实路径是/root/.sealos/default/Clusterfile(不是/root/.sealos/Clusterfile)。

# master-01:分别导出 3 个集群镜像 + Clusterfile + sealos 二进制mkdir-p/root/offline sealos save-o/root/offline/kubernetes-v1.30.7.tar registry.cn-shanghai.aliyuncs.com/labring/kubernetes:v1.30.7 sealos save-o/root/offline/helm-v3.19.2.tar registry.cn-shanghai.aliyuncs.com/labring/helm:v3.19.2 sealos save-o/root/offline/calico-v3.28.1.tar registry.cn-shanghai.aliyuncs.com/labring/calico:v3.28.1cp/usr/bin/sealos /root/offline/sealoscp/root/.sealos/default/Clusterfile /root/offline/vpp-k8s-clusterfile.yaml# middleware-01:导出 Kuboard 镜像dockersave-o/root/offline/kuboard-v3.tar swr.cn-east-2.myhuaweicloud.com/kuboard/kuboard:v3

实际导出结果ls -lh /root/offline/):

# master-01 /root/offline/ (合计 822M) -rw-r--r-- 1 root root 369M kubernetes-v1.30.7.tar -rw-r--r-- 1 root root 356M calico-v3.28.1.tar -rw-r--r-- 1 root root 19M helm-v3.19.2.tar -rwxr-xr-x 1 root root 79M sealos -rw-r--r-- 1 root root 2.9K vpp-k8s-clusterfile.yaml # middleware-01 /root/offline/ -rw------- 1 root root 126M kuboard-v3.tar

离线部署包清单(两机合计约 948 MB):

制品位置实际大小用途
sealosmaster-01/root/offline/sealos79 MBSealos CLI 二进制
kubernetes-v1.30.7.tarmaster-01/root/offline/369 MBK8s 核心镜像(含 kubeadm/etcd/coredns/containerd 等)
calico-v3.28.1.tarmaster-01/root/offline/356 MBCNI 网络插件镜像
helm-v3.19.2.tarmaster-01/root/offline/19 MBHelm 包管理器镜像
vpp-k8s-clusterfile.yamlmaster-01/root/offline/2.9 KB集群定义文件(含 hosts/image/env)
kuboard-v3.tarmiddleware-01/root/offline/126 MBKuboard v3 管理面板镜像

离线环境使用方式

# ===== 集群节点:拷入 /root/offline 后 =====cp/root/offline/sealos /usr/bin/sealos&&chmod+x /usr/bin/sealos# 1. 逐个导入集群镜像sealos load-i/root/offline/kubernetes-v1.30.7.tar sealos load-i/root/offline/helm-v3.19.2.tar sealos load-i/root/offline/calico-v3.28.1.tar# 2. 用本地镜像部署(镜像名与在线时完全一致,Sealos 命中本地缓存不再拉取)sealos run registry.cn-shanghai.aliyuncs.com/labring/kubernetes:v1.30.7\registry.cn-shanghai.aliyuncs.com/labring/helm:v3.19.2\registry.cn-shanghai.aliyuncs.com/labring/calico:v3.28.1\--masters<私网IP1>,<私网IP2>,<私网IP3>-p'<密码>'# ===== Kuboard 机:拷入后 =====dockerload-i/root/offline/kuboard-v3.tar# 再按第十节 docker run 命令启动 Kuboard 容器即可

💡 也可直接复用导出的vpp-k8s-clusterfile.yamlsealos apply -f vpp-k8s-clusterfile.yaml,一步还原本次同拓扑集群(记得改内网 IP 与密码)。


十二、踩坑与排障记录

坑 1:Error: has duplicate ip

现象:首次执行sealos run ... --masters A,B,C --nodes B,C立即报错:

Error: has duplicate ip: [192.168.0.47 192.168.0.65]

原因:Sealos 不允许同一 IP 同时出现在--masters--nodes
解决:只在--masters声明 3 个 IP,部署完成后对 node-01/node-02 执行kubectl taint ... control-plane:NoSchedule-去污点,使其兼任 worker。

坑 2:镜像拉取"看起来卡住"

现象tail sealos-deploy.log长时间停在Copying blob ...,疑似卡死。
排查

cat/proc/net/dev# eth0 接收字节持续增长(639MB→936MB)ss-tnstate established# 有到阿里云 CDN 的活跃 443 连接ps-opcpu,etime-p<pid># sealos 进程 CPU 正常

结论:并非卡死,而是 skopeo 用\r刷新进度条、tail看不到变化;5Mbit/s 带宽下大镜像本就慢。判断拉取是否真卡住,看/proc/net/dev收字节增量,而非日志文本变化。

坑 3:Kuboard 导入 kubeconfig 用了域名

现象:默认 kubeconfig 的server: https://apiserver.cluster.local:6443,middleware-01 无法解析该域名。
解决sed替换为 master-01 私网 IPhttps://192.168.0.94:6443

坑 4(Windows 侧):venv 路径差异

现象:Windows 上python -m venv生成的可执行文件在.venv/Scripts/而非.venv/bin/,导致首次 pip 安装脚本路径错误。
解决:Windows 统一用.venv/Scripts/python.exe

坑 5:sealos save缺镜像参数 + Clusterfile 路径

现象 1:导出离线包时sealos save -o /root/vpp-k8s-images.tar(不带镜像名)直接报错:

Error: requires at least 1 arg(s), only received 0

原因sealos save一次只导出一个指定镜像,正确语法是sealos save -o <文件> <镜像名>(见sealos save --help的示例sealos save -o kubernetes.tar labring/kubernetes:latest)。
解决:先sealos images列出 3 个镜像,再对 kubernetes / helm / calico 分别sealos save(若坚持单文件可加-m --format docker-archive生成多镜像归档,但分开导出更稳)。

现象 2cp /root/.sealos/Clusterfile ...提示文件不存在。
原因:Clusterfile 实际位于以集群名命名的子目录下,本次集群名为default,故真实路径为/root/.sealos/default/Clusterfile
解决:用find /root/.sealos -name Clusterfile定位,或直接cp /root/.sealos/default/Clusterfile


十三、访问信息汇总

项目
K8s API Serverhttps://192.168.0.94:6443(私网),域名 apiserver.cluster.local:6443
kubeconfigmaster-01/root/.kube/config;对外副本/root/vpp-k8s-kubeconfig.yaml
kubectl 入口登录 master-01(27.106.122.167)即可kubectl
Kuboard UIhttp://119.13.125.127 (私网 http://192.168.0.44)
Kuboard 默认账号admin / Kuboard123(务必首登修改
内置镜像仓库sealos.hub:5000(admin / passw0rd)

十四、生产加固建议

  1. 修改默认密码:Kuboard 默认admin/Kuboard123、内置 registryadmin/passw0rd,上线前必须改。
  2. 安全组收敛:仅对运维网段开放 6443、80(Kuboard)、22;关闭公网对 6443 的直接暴露,运维走跳板/VPN。
  3. 关闭 root 密码登录:改用 SSH 密钥;本次为快速部署使用了密码认证,生产应切换密钥并禁用PasswordAuthentication
  4. etcd 定期备份etcdctl snapshot save,配合定时任务;3 节点 etcd 只能容忍 1 台故障。
  5. 资源预留:master-01 保持污点专职控制面;为 kubelet 配置--system-reserved/--kube-reserved防业务打满。
  6. 监控告警:部署 Prometheus + Grafana(可用 Kuboard 套件或 Helm),监控节点/etcd/证书到期。
  7. super-admin.conf 到期:2027-07-10 到期,到期前kubeadm certs renew或改用长期证书。
  8. 磁盘扩容:当前系统盘 40G,业务镜像多时需挂载独立数据盘给 containerd(/var/lib/containerd)。

十五、附录:全部脚本清单

所有实操通过 Python + paramiko 远程执行,脚本位于vpp-k8s-deploy/scripts/

脚本作用
preflight.py只读环境预检(不改配置)
egress_probe.py出网能力探测(决定安装通道)
prepare.py系统初始化预置(主机名/内核/sysctl/hosts/Docker)
install_sealos.pymaster-01 安装 Sealos 二进制
deploy.py部署集群 + 自动去污点
wait_and_post.py等待部署完成的监控器
verify.py集群综合验证
kuboard.py部署 Kuboard + 生成 kubeconfig
probe_offline.py只读探测 sealos 镜像列表 / save 语法 / Clusterfile 路径
offline_export.py导出离线部署包(3 镜像 + Clusterfile + sealos + Kuboard)
check_kuboard.py只读检查 Kuboard 容器状态与 HTTP 可达性

执行环境:本地 Windows +.venv/Scripts/python.exe(paramiko 5.0.0)。凭据在脚本内以明文示例呈现,生产请改为环境变量或密钥认证。


集群部署完成时间:2026-07-10 12:43 CST
离线包导出完成时间:2026-07-10 12:53 CST
最终状态:✅ 3 节点 HA 集群健康运行,业务可调度,Kuboard 管理面板可访问,离线部署包已导出(两机合计约 948 MB)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/11 9:42:48

TS2007FC与PIC24FJ64GB004在嵌入式音频系统中的应用

1. TS2007FC与PIC24FJ64GB004的黄金组合解析 在嵌入式音频系统设计中&#xff0c;芯片选型往往决定了项目的天花板。TS2007FC作为一款D类音频功率放大器&#xff0c;与PIC24FJ64GB004这款16位微控制器的组合&#xff0c;在消费级和专业音频设备中展现出独特的优势。 TS2007FC的…

作者头像 李华
网站建设 2026/7/11 9:42:07

DeepAgents Grading Rubrics:结构化评估的体系、原理与实践

引言 在人工智能代理&#xff08;AI Agent&#xff09;的开发与迭代周期中&#xff0c;如何量化、一致且可解释地评估代理的表现始终是一个核心难题。传统的人工评估或单一维度的自动化打分&#xff0c;往往难以捕捉代理在复杂任务中多维度的能力差异。DeepAgents 框架引入的 …

作者头像 李华
网站建设 2026/7/11 9:41:25

核密度分析 5 大应用场景对比:从犯罪热点到野生动物栖息地评估

核密度分析 5 大应用场景对比&#xff1a;从犯罪热点到野生动物栖息地评估核密度分析&#xff08;Kernel Density Estimation, KDE&#xff09;作为一种强大的空间统计工具&#xff0c;正在重塑我们对地理数据的理解方式。想象一下&#xff0c;当城市管理者面对数千个分散的犯罪…

作者头像 李华
网站建设 2026/7/11 9:39:05

模拟电路噪声分析:从5个关键来源到3种实测抑制方案

模拟电路噪声分析&#xff1a;从5个关键来源到3种实测抑制方案 在精密测量、传感器信号调理和音频电路设计中&#xff0c;工程师们常常面临一个隐形杀手——电路噪声。这种看似微弱的干扰信号&#xff0c;却能像滴水的穿石效应般逐渐侵蚀系统性能。本文将深入剖析模拟电路噪声的…

作者头像 李华
网站建设 2026/7/11 9:38:15

26 数据库版本升级策略:从 v1 到 v2 的增量迁移实践

26 数据库版本升级策略&#xff1a;从 v1 到 v2 的增量迁移实践 前言 图&#xff1a;26 数据库版本升级策略&#xff1a;从 v1 到 v2 的增量迁移实践 运行效果截图&#xff08;HarmonyOS NEXT&#xff09; 在应用迭代过程中&#xff0c;数据库表结构往往会发生变化——新增字…

作者头像 李华
网站建设 2026/7/11 9:36:51

SpringAI 2.0与MCP协议:Java开发者AI应用开发实战指南

如果你正在寻找一份真正能让你从零开始掌握 Java SpringAI 2.0 开发实战的完整教程&#xff0c;那么这篇文章就是为你准备的。2026年&#xff0c;AI应用开发已经不再是少数专家的专利&#xff0c;而是每个Java开发者都应该掌握的核心技能。但现实是&#xff0c;很多教程要么停…

作者头像 李华