🚀 KubePi实战部署指南 | 可视化Kubernetes集群全生命周期管理
作为KubeOperator的增强组件,KubePi提供企业级Kubernetes集群部署能力。以下是基于v3.12.0+的黄金配置流程:
一、环境准备(部署机要求)
组件 | 规格要求 | 备注 |
---|---|---|
OS | CentOS 7.8+/Ubuntu 20.04 LTS | 禁用SELinux |
CPU | 4核+ | 支持虚拟化 |
内存 | 8GB+ | 建议预留2GB给KubePi |
存储 | 100GB+可用空间 | 推荐EXT4/XFS文件系统 |
网络 | 双向8888/6443端口开放 | 需配置静态IP |
# 验证环境
grep -E '(vmx|svm)' /proc/cpuinfo # 确认CPU虚拟化支持
free -h | awk '/Mem:/{print $2}' # 检查内存
df -h /var/lib/docker # 存储空间验证
二、快速安装KubePi
1. 容器化部署(推荐)
# 创建持久化目录
mkdir -p /data/kubepi/{data,logs,plugins}
# 启动容器
docker run -d \
--name kubepi \
--restart always \
-p 80:80 \
-v /data/kubepi/data:/var/lib/kubepi \
-v /data/kubepi/logs:/var/log/kubepi \
-v /data/kubepi/plugins:/opt/kubepi/plugins \
kubepi/kubepi-server:3.12.0
2. 初始化访问
- 浏览器访问
http://部署机IP
- 首次登录使用默认凭证:
用户名: admin 密码: kubepi@admin123
- 立即修改密码:系统设置 → 用户管理 → admin用户
三、创建Kubernetes集群
1. 集群参数配置
参数项 | 推荐值 | 说明 |
---|---|---|
集群名称 | prod-cluster-01 | 全局唯一标识 |
Kubernetes版本 | v1.25.7 | 验证兼容性 |
容器运行时 | containerd 1.6.8 | 优于Docker的稳定性 |
网络插件 | Calico 3.24.1 | 支持NetworkPolicy |
存储配置 | NFS Subdir External Provisioner | 动态PVC支持 |
# 示例主机清单文件(hosts.yaml)
- name: master01
ip: 192.168.1.101
role: [master, etcd]
ssh_user: root
ssh_pass: "SecurePass123!"
- name: worker01
ip: 192.168.1.102
role: [worker]
labels:
gpu: "true"
storage: "ssd"
2. 部署流程
-
上传主机清单
- 导航至集群管理 → 创建集群 → 导入主机
- 上传预配置的
hosts.yaml
文件
-
定制组件
[√] Metrics Server # 资源监控 [√] Ingress-Nginx # 流量入口 [√] OPA Gatekeeper # 策略引擎 [ ] Istio # 按需启用服务网格
-
高级网络配置
Service CIDR: 10.96.0.0/16 Pod CIDR: 10.244.0.0/16 DNS Domain: cluster.local
-
执行部署
- 点击验证主机通过SSH连通性检查
- 确认无误后启动一键部署
四、关键功能配置
1. OPA策略管理
- 进入策略引擎 → 约束模板
- 应用预置策略:
# 强制Pod资源限制 violation[{"msg": msg}] { container := input.review.object.spec.containers[_] not container.resources.limits.cpu msg := sprintf("容器 %v 必须定义CPU限制", [container.name]) }
2. 存储动态供给
- 导航至存储管理 → 存储类
- 创建NFS存储类:
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: nfs-storage provisioner: cluster.local/nfs-subdir-external-provisioner parameters: archiveOnDelete: "false"
五、运维监控
1. 实时仪表盘
面板名称 | 监控指标 | 告警阈值 |
---|---|---|
集群健康度 | API Server响应延迟 | >500ms触发警告 |
节点负载 | CPU/MEM使用率 | 持续80%超过5分钟 |
工作负载状态 | Deployment不可用副本数 | >0持续2分钟 |
2. 日志聚合
- 启用EFK套件:
# 在KubePi插件市场安装Elasticsearch+Fluentd+Kibana kubectl apply -f https://raw.githubusercontent.com/kubepi/plugins/main/efk/install.yaml
六、灾备与升级
1. 集群备份
# 创建定时备份任务
velero schedule create daily-backup \
--schedule="@daily" \
--include-namespaces="*" \
--exclude-resources="events,events.events.k8s.io"
2. 原地升级流程
- 通过集群管理 → 升级选择目标版本
- 采用滚动更新策略:
Master节点:串行升级,间隔10分钟 Worker节点:并行升级,最大不可用30%
⚠️ 关键注意事项
- 生产环境务必启用HTTPS访问(KubePi支持Let’s Encrypt自动签发)
- 避免混合架构部署(如同时存在ARM/X86节点)
- 定期清理ETCD历史版本:
etcdctl compact 10000
🔧 排错命令速查
# 查看部署日志
kubepi-cli logs deploy -n kubepi-system
# 重置异常节点
kubepi-cli node reset 192.168.1.101 --force
# 导出诊断包
kubepi-cli diagnose --output cluster-diag.zip