K3s与Kuboard离线部署及集群管理实战

发布时间:2026/8/6 11:02:20
K3s与Kuboard离线部署及集群管理实战 1. Kuboard 离线安装与 K3s 集群绑定核心价值解析在混合云和边缘计算场景中离线环境下的 Kubernetes 集群管理一直是运维人员的痛点。Kuboard 作为一款开源的 Kubernetes 多集群管理面板其直观的图形化界面和丰富的功能集特别适合中小规模集群的日常运维。而 K3s 作为轻量级 Kubernetes 发行版凭借其极简的二进制部署方式和低资源占用已成为边缘计算场景的首选方案。当企业内网环境需要部署 Kubernetes 集群且无法连接外网时传统在线安装方式完全失效。此时掌握 Kuboard 离线安装技术并实现与 K3s 集群的稳定绑定就成为保障业务连续性的关键技术能力。这套方案尤其适用于军工、金融等安全隔离网络环境生产环境与互联网物理隔离的场景边缘计算节点网络条件受限的情况需要快速搭建演示环境的场景2. 离线环境准备工作全流程2.1 离线资源包制作规范在可联网的开发机上需要预先下载所有依赖资源。建议使用专用目录进行资源管理mkdir -p ~/offline-k8s/{images,pkgs,charts}核心组件下载清单Kuboard 最新版本当前为 v3.3.1wget https://kuboard.cn/download/kuboard-linux-arm64 -O ~/offline-k8s/pkgs/kuboard chmod x ~/offline-k8s/pkgs/kuboardK3s 离线安装包以 v1.24.4k3s1 为例wget https://github.com/k3s-io/k3s/releases/download/v1.24.4%2Bk3s1/k3s-airgap-images-arm64.tar wget https://github.com/k3s-io/k3s/releases/download/v1.24.4%2Bk3s1/k3s依赖工具集docker-composev2.6.0socatconntrackebtables重要提示所有下载的二进制文件必须校验 SHA256 值避免文件损坏导致安装失败。建议将校验值记录在 manifest.txt 文件中。2.2 离线镜像处理技巧对于需要私有镜像仓库的场景推荐使用 docker save 导出镜像docker pull kuboard/kuboard:v3.3.1 docker save kuboard/kuboard:v3.3.1 kuboard-3.3.1.tar如果使用 Harbor 作为私有仓库需提前配置证书并导入# 在目标机器加载镜像 docker load kuboard-3.3.1.tar # 打标签并推送到私有仓库 docker tag kuboard/kuboard:v3.3.1 myharbor.com/library/kuboard:v3.3.1 docker push myharbor.com/library/kuboard:v3.3.13. K3s 离线集群部署实战3.1 最小化 K3s 安装配置创建/etc/rancher/k3s/config.yaml配置文件write-kubeconfig-mode: 0644 tls-san: - k3s-master.local node-ip: 192.168.1.100 cluster-cidr: 10.42.0.0/16 service-cidr: 10.43.0.0/16 private-registry: /etc/rancher/k3s/registries.yaml disable: - traefik - metrics-server配置私有仓库认证/etc/rancher/k3s/registries.yamlmirrors: myharbor.com: endpoint: - https://myharbor.com configs: myharbor.com: auth: username: admin password: Harbor12345 tls: cert_file: /etc/ssl/certs/ca.crt执行离线安装chmod x k3s INSTALL_K3S_SKIP_DOWNLOADtrue ./k3s install3.2 高可用配置要点对于生产环境建议采用嵌入式 etcd 高可用方案token: secret-token cluster-init: true server: https://192.168.1.100:6443新增节点时指定INSTALL_K3S_SKIP_DOWNLOADtrue \ K3S_URLhttps://192.168.1.100:6443 \ K3S_TOKENsecret-token \ ./k3s agent4. Kuboard 离线部署与集群绑定4.1 单节点部署模式创建 docker-compose.yml 文件version: 3 services: kuboard: image: kuboard/kuboard:v3.3.1 container_name: kuboard restart: always ports: - 80:80/tcp - 10081:10081/tcp environment: - KUBOARD_ENDPOINThttp://kuboard-server:80 - KUBOARD_AGENT_SERVER_TCP_PORT10081 volumes: - /root/kuboard-data:/data启动服务docker-compose up -d4.2 集群绑定关键步骤获取 K3s kubeconfigcat /etc/rancher/k3s/k3s.yaml修改配置中的 server 地址为可访问的 IP:apiVersion: v1 clusters: - cluster: certificate-authority-data: ... server: https://192.168.1.100:6443在 Kuboard 界面添加集群导航到 集群管理 → 添加集群上传修改后的 kubeconfig 文件设置集群别名如 prod-k3s-cluster验证连接状态curl http://localhost:80/kuboard-api/clusters5. 典型问题排查手册5.1 证书相关错误处理现象x509: certificate signed by unknown authority解决方案检查 K3s 证书有效期openssl x509 -in /var/lib/rancher/k3s/server/tls/server-ca.crt -noout -dates手动信任证书cp /var/lib/rancher/k3s/server/tls/server-ca.crt /usr/local/share/ca-certificates/ update-ca-certificates5.2 网络连通性问题现象Kuboard Agent 无法连接 Server诊断步骤检查基础网络telnet kuboard-server 10081验证防火墙规则iptables -L -n | grep 10081测试端口映射docker exec -it kuboard netstat -tulnp5.3 资源监控异常处理现象节点指标数据不显示排查方案确认 metrics-server 状态kubectl -n kube-system get pods -l k8s-appmetrics-server手动部署 metrics-serverhelm install metrics-server bitnami/metrics-server \ --set apiService.createtrue \ --set extraArgs.kubelet-insecure-tlstrue6. 性能优化与安全加固6.1 资源限制配置调整 Kuboard 资源配额docker-compose.ymldeploy: resources: limits: cpus: 2 memory: 2G reservations: cpus: 0.5 memory: 512MK3s 服务调优/etc/systemd/system/k3s.service[Service] LimitNOFILE1048576 LimitNPROCinfinity LimitCOREinfinity6.2 安全加固措施启用 Kuboard 审计日志docker exec kuboard sed -i /auditLog/s/false/true/ /data/application.properties配置 K3s PSP 策略apiVersion: policy/v1beta1 kind: PodSecurityPolicy metadata: name: restricted spec: privileged: false allowPrivilegeEscalation: false requiredDropCapabilities: - ALL定期轮换证书k3s certificate rotate7. 生产环境运维实践7.1 备份恢复方案Kuboard 数据备份docker exec kuboard tar czvf /tmp/kuboard-backup.tar.gz /data docker cp kuboard:/tmp/kuboard-backup.tar.gz .K3s 集群备份# 使用 velero 进行应用备份 velero backup create full-backup --include-namespaces* # etcd 快照备份 k3s etcd-snapshot save --name pre-upgrade7.2 版本升级策略K3s 离线升级步骤下载新版本二进制文件停止服务systemctl stop k3s替换二进制mv k3s /usr/local/bin/重启服务systemctl start k3sKuboard 滚动升级docker-compose pull docker-compose up -d --no-deps kuboard在实际运维中建议先在测试环境验证升级流程。我曾遇到过一个案例直接升级导致自定义仪表板配置丢失后来通过预先导出配置避免了生产事故。对于关键业务集群升级前务必做好完整备份。

相关新闻