kube-nova 平台部署文档,开源 k8s 管理平台部署文档
🚀 项目简介
Kube-Nova 是一个现代化的企业级 Kubernetes 多集群管理平台,提供直观的 Web 界面和强大的管理能力,帮助企业轻松管理和运维 Kubernetes 集群。
🌟 核心优势
- 🎯 简单易用 - 直观的操作界面,降低 Kubernetes 使用门槛
- ⚡ 高性能 - 基于 Go-Zero 微服务架构,支持大规模集群管理
- 🔒 企业级安全 - 完善的权限管理和审计功能
- 📊 可观测性 - 集成 Jaeger 链路追踪,实时监控系统状态
- 🔧 灵活扩展 - 支持多种部署模式,适应不同场景需求
📦 技术栈
| 组件 | 技术 | 说明 |
|---|---|---|
| 后端框架 | Go-Zero | 高性能微服务框架 |
| 前端框架 | Vue 3 + TypeScript | 现代化前端技术栈 |
| 数据库 | MySQL 8.0+ | 关系型数据存储 |
| 缓存 | Redis 6.0+ | 高性能缓存服务 |
| 对象存储 | MinIO | S3 兼容的对象存储 |
| 链路追踪 | Jaeger | 分布式追踪系统 |
| 容器编排 | Kubernetes | 容器编排引擎 |
核心功能
- ✅ 多集群管理 - 统一管理多个 Kubernetes 集群
- ✅ 工作负载管理 - Deployment、StatefulSet、DaemonSet 等资源管理
- ✅ 服务发现 - Service、Ingress 配置管理
- ✅ 存储管理 - PV、PVC、StorageClass 管理
- ✅ 配置管理 - ConfigMap、Secret 管理
- ✅ 权限管理 - RBAC 权限控制
- ✅ 监控告警 - 集成 Prometheus,实时监控
- ✅ 日志管理 - 集中式日志查看和检索
- ✅ 终端访问 - Web Shell 快速访问容器
- ✅ CI/CD 集成 - 支持主流 CI/CD 工具集成
🏗️ 系统架构
┌─────────────────────────────────────────────────────────────┐
│ 用户层 │
│ Web UI / API │
└─────────────────────────────────────────────────────────────┘
│
┌─────────────────────────────────────────────────────────────┐
│ 应用层 (Go-Zero) │
├─────────────────────────────────────────────────────────────┤
│ Portal API │ Manager API │ Workload API │ Console │
│ Portal RPC │ Manager RPC │ │ API │
│ │ │ │ Console │
│ │ │ │ RPC │
└─────────────────────────────────────────────────────────────┘
│
┌─────────────────────────────────────────────────────────────┐
│ 基础设施层 │
├─────────────────────────────────────────────────────────────┤
│ MySQL 8x │ Redis 7x │ MinIO S3 │ Jaeger │
│ (数据存储) │ (缓存) │ (对象存储) │ (追踪) │
└─────────────────────────────────────────────────────────────┘
│
┌─────────────────────────────────────────────────────────────┐
│ Kubernetes 集群 │
└─────────────────────────────────────────────────────────────┘
⚡ 快速开始
前置条件
在开始部署之前,请确保您的环境满足以下要求:
硬件要求
| 组件 | 最低配置 | 推荐配置 |
|---|---|---|
| CPU | 4 Core | 8+ Core |
| 内存 | 8 GB | 16+ GB |
| 存储 | 50 GB | 100+ GB SSD |
软件要求
- Kubernetes: 1.21 及以上版本
- kubectl: 与 Kubernetes 版本匹配
- 存储支持:
- 支持动态存储供应(StorageClass),或
- NFS 服务器(静态存储)
网络要求
- 集群节点之间网络互通
- 可访问容器镜像仓库(默认:阿里云镜像仓库)
- 可选:公网访问(用于 Ingress)
📝 部署方式
Kube-Nova 提供两种主要的部署方式:
1️⃣ Operator 模式 (推荐)
特点:
- ✅ 声明式配置,简单直观
- ✅ 自动化运维,无需手动管理资源
- ✅ 支持热更新,配置变更自动生效
- ✅ 内置健康检查和自愈能力
适用场景:
- 生产环境部署
- 需要频繁更新配置
- 追求自动化运维
2️⃣ Manifests 模式
特点:
- ✅ 完全自定义,灵活性高
- ✅ 适合特殊需求定制
- ✅ 无额外依赖
适用场景:
- 开发测试环境
- 需要深度定制
- 不希望引入 Operator
快速部署
🔧 基础环境部署
在部署 Kube-Nova 平台之前,需要先部署基础依赖服务。我们提供了一键部署脚本,可快速完成所有基础服务的部署。
注意, 如果本地已经有 mysql,redis,minio,Jaeger 可以忽略本步骤。
平台提供基础环境部署
- 克隆代码仓库
# 从 GitHub 克隆
git clone https://github.com/yanshicheng/kube-nova.git
cd kube-nova
# 或从 Gitee 克隆(国内推荐)
git clone https://gitee.com/ikubeops/kube-nova.git
cd kube-nova
- 部署关键点
编辑部署脚本,选择存储模式:
vim scripts/basic-deploy.sh
修改以下配置项:
# 存储模式:storageClass 或 nfs
STORAGE_MODE="storageClass" # 需要集群哪已经配置了 storageClass
# 如果选择 nfs 模式,需要先配置 NFS 服务器
# 需要手动修改文件: manifests/basic/pvc-nfs.yaml
- StorageClass 模式配置
如果您的 Kubernetes 集群支持动态存储供应,推荐使用此模式:
# 确保集群有可用的 StorageClass
kubectl get storageclass
# 查看默认 StorageClass
kubectl get storageclass -o jsonpath='{.items[?(@.metadata.annotations.storageclass\.kubernetes\.io/is-default-class=="true")].metadata.name}'
- NFS 模式配置
如果使用 NFS 静态存储,需要先准备 NFS 服务器:
# 1. 在 NFS 服务器上创建共享目录
sudo mkdir -p /nfs/kube-nova/{mysql,redis,minio,jaeger}
sudo chmod -R 777 /nfs/kube-nova
# 2. 配置 NFS 导出
sudo vim /etc/exports
# 添加以下内容:
# /nfs/kube-nova *(rw,sync,no_subtree_check,no_root_squash)
# 3. 重启 NFS 服务
sudo exportfs -ra
sudo systemctl restart nfs-server
# 4. 在所有 Kubernetes 节点安装 NFS 客户端
# Ubuntu/Debian
sudo apt-get install -y nfs-common
# CentOS/RHEL
sudo yum install -y nfs-utils
编辑 NFS PVC 配置文件:
vim manifests/basic/pvc-nfs.yaml
# 修改 NFS 服务器地址和路径
apiVersion: v1
kind: PersistentVolume
metadata:
name: mysql-pv
spec:
capacity:
storage: 20Gi
accessModes:
- ReadWriteOnce
nfs:
server: 192.168.1.100 # 修改为您的 NFS 服务器 IP
path: /nfs/kube-nova/mysql # 修改为实际路径
- 执行一键部署
bash scripts/basic-deploy.sh
- 部署过程说明
脚本将自动完成以下步骤:
- 环境检查 - 检查 kubectl、集群连接、存储配置
- 创建命名空间 - 创建
kube-nova命名空间 - 部署 PVC - 根据选择的存储模式创建持久化存储
- 等待 PVC 绑定 - 等待所有 PVC 成功绑定
- 部署基础服务 - 依次部署 MySQL、Redis、MinIO、Jaeger
- 等待服务就绪 - 等待所有 Pod 进入 Running 状态
- 初始化 MinIO - 创建存储桶并上传默认图片
- 导入数据库 - 初始化 MySQL 数据库表结构和基础数据
- 显示访问信息 - 输出所有服务的访问地址和凭证
已有环境部署
Mysql: 请手动导入 代码仓库中 sql/db.sql 到数据库中。
Minio: 上传 images/kube-nova.png 到 存储桶 public/kube-nova.png
Operator 模式部署 kube-nova 平台
Operator 模式是推荐的生产环境部署方式,提供声明式配置和自动化运维能力。
部署 Kube-Nova Operator
从 GitHub 部署
kubectl apply -f https://github.com/yanshicheng/kube-nova-operator/releases/download/latest/install.yaml
从 Gitee 部署
kubectl apply -f https://gitee.com/ikubeops/kube-nova-operator/releases/download/latest/install.yaml
验证 Operator 部署
# 查看 Operator Pod 状态
❯ kubectl get pods -n kube-nova-operator-system
NAME READY STATUS RESTARTS AGE
kube-nova-operator-controller-manager-6d5976586d-z5j7w 1/1 Running 0 66s
# 查看 CRD 是否创建成功
❯ kubectl get crd kubenova.apps.ikubeops.com
NAME CREATED AT
kubenova.apps.ikubeops.com 2025-12-23T09:40:47Z
Ingress 模式部署平台
# 从 GitHub 下载配置模板
wget https://github.com/yanshicheng/kube-nova-operator/releases/download/latest/deploy-ingress.yaml
# 或从 Gitee 下载(国内推荐)
wget https://gitee.com/ikubeops/kube-nova-operator/releases/download/latest/deploy-ingress.yaml
编辑配置文件:
按需修改配置文件。
vim deploy-ingress.yaml
最小化配置示例(适用于一键部署的基础环境):
apiVersion: apps.ikubeops.com/v1
kind: KubeNova
metadata:
name: kubenova-sample
namespace: kube-nova
spec:
# 全局镜像仓库配置(可选)
imageRegistry:
registry: "registry.cn-hangzhou.aliyuncs.com"
organization: "kube-nova"
tag: "latest"
pullPolicy: Always
# 数据库配置(必填)
database:
host: "mysql"
port: 3306
database: "kube_nova"
user: "root"
password: "8VlZ2lvIsKBCYSE3"
maxOpenConns: 100
maxIdleConns: 50
connMaxLifetime: "30m"
# 缓存配置(必填)
cache:
host: "redis"
port: 6379
type: "node" # node 或 cluster
password: "2VOSiz0vhGtxaBJb"
tls: false
nonBlock: true
pingTimeout: "3s"
# 对象存储配置(必填)
storage:
endpoint: "minio-service:9000"
accessKey: "kube-nova-admin"
secretKey: "KubeNova@2024SecretKey!"
bucket: "kube-nova"
endpointProxy: "http://kube-nova.ngw.ikubeops.local/storage/"
# TLS 证书配置(可选)
# tls:
# enabled: true
# secretName: "minio-tls-certs" # 包含 public.crt 和 private.key
# 链路追踪配置(可选)
telemetry:
enabled: true
jaegerEndpoint: "http://jaeger-collector:14268/api/traces"
sampler: "1.0"
batcher: "jaeger"
services:
globalTimeout: 30000
# JWT 配置(必填)
jwt:
accessSecret: "zk5Lp8m+0g7lvvLcnbUHPzQFEsRAmvNIn9tXdx0o80U="
accessExpire: 86400
refreshSecret: "zk5Lp8m+0g7lvvLcnbUHPzQFEsRAmvNIn9tXdx0o80U="
refreshExpire: 604800
refreshAfter: 604800
# Portal 配置(可选)
portal:
name: "Kube-Nova 云原生平台"
url: "http://kube-nova.ngw.ikubeops.local"
demoMode: false
# Webhook Token(可选)
webhookToken: "mRwErqZaQVrxfyhiDQrdiQohAsONwSTtwhcmFXpCcaGavcINqorVoWINnSFFAijb"
# 注入镜像(可选)
injectImage: "registry.cn-hangzhou.aliyuncs.com/kube-nova/network-multitool:latest"
# 各个服务的配置(可选,使用默认值)
# portalAPI:
# enabled: true
# replicas: 2
# portalRPC:
# enabled: true
# replicas: 2
# managerAPI:
# enabled: true
# replicas: 2
# managerRPC:
# enabled: true
# replicas: 2
# workloadAPI:
# enabled: true
# replicas: 2
# consoleAPI:
# enabled: true
# replicas: 2
# consoleRPC:
# enabled: true
# replicas: 2
# ==================================================
# Web 前端配置(必填)
# ==================================================
web:
replicas: 2
exposeType: "ingress"
ingress:
className: "nginx"
host: "kube-nova.ngw.ikubeops.local"
tls:
enabled: false
minioProxy:
enabled: true
pathPrefix: "/storage"
验证访问
执行下面命令等待就绪可通过访问地址访问平台。
❯ kubectl get kn -n kube-nova
NAME 阶段 WEB 访问地址 运行时长
kubenova-sample 就绪 就绪 http://kube-nova.ngw.ikubeops.local 54s
浏览器访问
用户名: super_admin
密码: Admin@123456

快速配置
纳管管理集群,可直接通过 in-cluster 认证方式直接纳管部署集群。
管理集群纳管
- 集群基本信息

- 集群认证

- 确认创建

配置集群中间件
- 集群管理 -> 集群管理 -> 选择集群 进入控制台 -> 中间件管理 -> 配置 prometheus
没有可忽略但是监控功能不可用。
进入集群控制台

中间件管理

配置 prometheus 连接信息, 注意要同时设置为默认


配置集群存储
- 集群管理 -> 集群管理 -> 选择集群 进入控制台 -> 资源信息 -> 存储
存储资源初始化集群的时候没有进行计算,需要手动配置资源信息。


服务功能验证
-
选择默认项目
新集群所有信息都会在 默认项目下,可根据具体业务创建项目 进行名称空间迁移,迁移工作不会影响 kubernetes 集群。平台层逻辑迁移。

-
业务中心 -> 应用中心 -> 选择集群 -> 选择 ns -> 选择服务 -> 版本管理
可以测试 日志,终端 文件等功能。

其他部署模式
NodePort 模式部署
适用于测试环境或没有 Ingress 控制器的场景:
# 从 GitHub 下载配置模板
wget https://github.com/yanshicheng/kube-nova-operator/releases/download/latest/deploy-nodeport.yaml
# 或从 Gitee 下载(国内推荐)
wget https://gitee.com/ikubeops/kube-nova-operator/releases/download/latest/deploy-nodeport.yaml
编辑配置文件:
vim deploy-nodeport.yaml
修改 Web 配置部分:
web:
replicas: 2
exposeType: "nodeport"
nodePort:
httpPort: 30080 # 可选,不指定则自动分配
https:
enabled: false
# port: 30443
# secretName: "kube-nova-tls"
更多配置模板
更多部署配置模板和示例,请参考:
- GitHub: https://github.com/yanshicheng/kube-nova-operator/tree/main/deploy
- Gitee: https://gitee.com/ikubeops/kube-nova-operator/tree/main/deploy
📦 Manifests 模式部署
如果您不希望使用 Operator,可以直接使用 Kubernetes 原生 Manifests 部署。
部署步骤
# 1. 克隆代码仓库
git clone https://gitee.com/ikubeops/kube-nova.git
cd kube-nova
# 2. 编辑配置文件
# 修改 manifests/base/ 目录下的 YAML 文件
vim manifests/base/configmap.yaml # 修改数据库、Redis、MinIO 等配置
# 3. 应用所有 Manifests
kubectl apply -f manifests/base/
# 4. 查看部署状态
kubectl get all -n kube-nova
配置文件说明
Manifests 模式下,您需要手动编辑以下配置文件:
manifests/base/
├── configmap.yaml # 应用配置
├── secret.yaml # 敏感信息(密码、密钥)
├── deployment-portal.yaml # Portal 服务部署
├── deployment-manager.yaml # Manager 服务部署
├── deployment-workload.yaml # Workload 服务部署
├── deployment-console.yaml # Console 服务部署
├── deployment-web.yaml # Web 前端部署
├── service.yaml # Service 配置
└── ingress.yaml # Ingress 配置(或 nodeport.yaml)
具体配置方法请参考各文件中的注释说明。
⚙️ 配置说明
核心配置项详解
以下是 Kube-Nova 平台的核心配置项说明(基于 Operator CRD 定义):
1. 镜像仓库配置 (ImageRegistry)
imageRegistry:
registry: "registry.cn-hangzhou.aliyuncs.com" # 镜像仓库地址
organization: "kube-nova" # 组织/项目名称
tag: "latest" # 默认镜像标签
pullPolicy: "Always" # 镜像拉取策略: Always/IfNotPresent/Never
pullSecrets: # 镜像拉取密钥(可选)
- "my-registry-secret"
说明:
- 默认使用阿里云杭州镜像仓库,国内访问速度快
- 如使用私有仓库,需要创建 Secret:
kubectl create secret docker-registry my-registry-secret \ --docker-server=registry.example.com \ --docker-username=user \ --docker-password=password \ -n kube-nova
2. 数据库配置 (Database)
database:
host: "mysql.kube-nova.svc.cluster.local" # 数据库主机地址
port: 3306 # 数据库端口
database: "kube_nova" # 数据库名称
user: "root" # 用户名
password: "8VlZ2lvIsKBCYSE3" # 密码(将自动存储到 Secret)
maxOpenConns: 100 # 最大打开连接数(可选)
maxIdleConns: 50 # 最大空闲连接数(可选)
connMaxLifetime: "30m" # 连接最大生命周期(可选)
说明:
- 支持 MySQL 8.0 及以上版本
- 密码将被 Operator 自动加密存储到 Secret
- 连接池配置根据实际负载调整步骤 3: 部署 Kube-Nova 平台
3. 缓存配置 (Cache)
cache:
host: "redis.kube-nova.svc.cluster.local" # Redis 主机地址
port: 6379 # Redis 端口
type: "node" # 类型: node(单机) 或 cluster(集群)
password: "2VOSiz0vhGtxaBJb" # 密码(可选)
tls: false # 是否启用 TLS
nonBlock: true # 是否使用非阻塞模式
pingTimeout: "3s" # Ping 超时时间
说明:
- 支持 Redis 单机和集群模式
- 如无密码可不填 password 字段
- TLS 适用于生产环境加密传输
4. 对象存储配置 (Storage)
storage:
endpoint: "minio-service.kube-nova.svc.cluster.local:9000" # 存储端点(不含 http(s)://)
endpointProxy: "https://www.example.com/storage" # 代理端点(可选)
accessKey: "kube-nova-admin" # 访问密钥 ID
secretKey: "KubeNova@2024SecretKey!" # 访问密钥(将自动存储到 Secret)
bucket: "kube-nova" # 存储桶名称
tls: # TLS 配置(可选)
enabled: false # 是否启用 TLS
secretName: "minio-tls-cert" # TLS 证书 Secret 名称
说明:
- 支持 MinIO 或任何 S3 兼容的对象存储
endpointProxy用于配置用户访问入口(通常是 Nginx 代理后的地址)- TLS 证书 Secret 格式:
kubectl create secret generic minio-tls-cert \ --from-file=public.crt=cert.pem \ --from-file=private.key=key.pem \ -n kube-nova
5. 链路追踪配置 (Telemetry)
telemetry:
enabled: true # 是否启用
jaegerEndpoint: "http://jaeger-collector:14268/api/traces" # Jaeger Collector 端点
sampler: "1.0" # 采样率 (0.0-1.0)
batcher: "jaeger" # 批处理器类型
说明:
- 链路追踪为可选功能,不启用不影响平台使用
sampler设置为 1.0 表示采样所有请求,0.1 表示采样 10%- 生产环境建议适当降低采样率以减少性能开销
6. 服务配置 (Services)
services:
globalTimeout: 30000 # 全局超时时间(毫秒)
# JWT 认证配置
jwt:
accessSecret: "your-access-secret-at-least-32-chars-long-123456" # 访问令牌密钥(至少32字符)
accessExpire: 86400 # 访问令牌过期时间(秒,默认24小时)
refreshSecret: "your-refresh-secret-at-least-32-chars-long-123456" # 刷新令牌密钥(至少32字符)
refreshExpire: 604800 # 刷新令牌过期时间(秒,默认7天)
refreshAfter: 604800 # 刷新令牌生效时间(秒)
# Portal 门户配置
portal:
name: "Kube-Nova 云原生平台" # Portal 名称
url: "https://www.ikubeops.com" # Portal 访问地址
demoMode: false # 是否启用演示模式
# 其他配置
webhookToken: "your-webhook-token" # Alertmanager Webhook Token(可选)
injectImage: "registry.cn-hangzhou.aliyuncs.com/kube-nova/network-multitool:latest" # 注入容器镜像
# 各微服务配置(可选,不配置则使用默认值)
portalAPI:
enabled: true
replicas: 2
resources:
requests:
memory: "256Mi"
cpu: "250m"
limits:
memory: "512Mi"
cpu: "500m"
# 其他服务配置类似...
说明:
- JWT 密钥务必修改为您自己的随机字符串(至少 32 字符)
- 可以只配置需要的微服务,未配置的使用默认值
- 资源配置根据实际负载调整
7. Web 前端配置 (Web)
Ingress 模式
web:
replicas: 2 # 副本数
exposeType: "ingress"
ingress:
className: "nginx" # Ingress 类名
host: "www.ikubeops.com" # 域名
tls:
enabled: true # 是否启用 HTTPS
secretName: "kube-nova-tls" # TLS 证书 Secret
annotations: # 额外的注解(可选)
nginx.ingress.kubernetes.io/proxy-body-size: "100m"
# MinIO 代理配置(可选)
minioProxy:
enabled: true # 是否启用 MinIO 代理
pathPrefix: "/storage" # 代理路径前缀
proxyEndpoint: "" # 手动指定代理端点(可选,留空则自动推断)
说明:
- 需要提前安装 Ingress 控制器(如 Nginx Ingress Controller)
- TLS 证书创建方法:
kubectl create secret tls kube-nova-tls \ --cert=path/to/tls.crt \ --key=path/to/tls.key \ -n kube-nova - MinIO 代理启用后,可通过 Web 前端直接访问对象存储
NodePort 模式
web:
replicas: 2
exposeType: "nodeport"
nodePort:
httpPort: 30080 # HTTP 端口(可选,不指定则自动分配)
https:
enabled: false # 是否启用 HTTPS
port: 30443 # HTTPS 端口(可选)
secretName: "kube-nova-tls" # TLS 证书 Secret
说明:
- NodePort 端口范围:30000-32767
- 适用于测试环境或没有 Ingress 的场景
- 访问地址:
http://<NodeIP>:<NodePort>
完整配置示例
完整的配置示例请参考:
- Ingress 模式: https://gitee.com/ikubeops/kube-nova-operator/blob/main/deploy/deploy-ingress.yaml
- NodePort 模式: https://gitee.com/ikubeops/kube-nova-operator/blob/main/deploy/deploy-nodeport.yaml
- 高级配置: https://gitee.com/ikubeops/kube-nova-operator/blob/main/deploy/deploy-advanced.yaml
🌐 访问与验证
获取访问地址
Ingress 模式
# 查看 Ingress 配置
kubectl get ingress -n kube-nova
# 预期输出:
# NAME CLASS HOSTS ADDRESS PORTS AGE
# kubenova-web nginx www.ikubeops.com 10.0.0.1 80, 443 5m
# 访问地址:http(s)://www.ikubeops.com
配置 DNS 解析:
- 公网域名:在域名服务商处配置 A 记录指向 Ingress Controller 的公网 IP
- 内网域名:在本地 hosts 文件中添加:
<NodeIP> www.ikubeops.com
NodePort 模式
# 查看 NodePort 端口
kubectl get svc -n kube-nova | grep web
# 预期输出:
# kubenova-web NodePort 10.96.1.1 <none> 80:30080/TCP 5m
# 访问地址:http://<NodeIP>:30080
# 获取 NodeIP
kubectl get nodes -o wide
默认登录凭证
用户名: admin
密码: admin123
⚠️ 首次登录后请立即修改密码!
功能验证
登录后,建议按以下顺序验证功能:
- 集群管理 - 添加 Kubernetes 集群连接
- 命名空间 - 查看命名空间列表
- 工作负载 - 查看 Deployment、Pod 等资源
- 服务发现 - 查看 Service、Ingress
- 存储管理 - 查看 PV、PVC
- 配置管理 - 查看 ConfigMap、Secret
- 用户管理 - 创建新用户并配置权限
🔧 运维管理
查看系统状态
# 查看 KubeNova CR 状态
kubectl get kubenova -n kube-nova
# 查看详细状态(包含各组件状态)
kubectl get kubenova kubenova-sample -n kube-nova -o yaml
# 查看所有 Pod 状态
kubectl get pods -n kube-nova -l app.kubernetes.io/managed-by=kube-nova-operator
# 查看服务状态
kubectl get svc -n kube-nova
❓ 常见问题
Q1: 如何修改管理员密码?
A: 登录后,进入 用户管理 → 个人信息 → 修改密码。
Q2: 如何添加新的 Kubernetes 集群?
A:
- 登录平台,进入 集群管理 → 添加集群
- 填写集群信息:
- 集群名称
- API Server 地址
- 认证方式(Token 或 KubeConfig)
- 点击 测试连接,成功后保存
Q3: 支持哪些 Kubernetes 版本?
A: Kube-Nova 支持 Kubernetes 1.21 及以上版本,推荐使用 1.24+ 版本。
Q4: 如何启用 HTTPS?
A:
Ingress 模式:
- 准备 TLS 证书
- 创建 Secret:
kubectl create secret tls kube-nova-tls \ --cert=tls.crt --key=tls.key -n kube-nova - 修改 KubeNova CR 配置:
web: ingress: tls: enabled: true secretName: "kube-nova-tls"
NodePort 模式:
web:
nodePort:
https:
enabled: true
port: 30443
secretName: "kube-nova-tls"
Q5: 如何配置自定义域名?
A: 修改 KubeNova CR 中的 web.ingress.host 和 services.portal.url 字段,然后配置 DNS 解析指向 Ingress Controller 的 IP。
Q6: 如何调整服务副本数?
A: 编辑 KubeNova CR,修改对应服务的 replicas 字段:
services:
portalAPI:
replicas: 3 # 修改为期望的副本数
应用配置后,Operator 会自动进行滚动更新。
Q7: 如何配置邮件通知?
A: 暂不支持邮件通知功能,该功能正在开发中。您可以集成 AlertManager 实现告警通知。
Q8: 支持多租户吗?
A: 支持。平台提供了完善的多租户和权限管理功能:
- 用户管理
- 角色管理
- 命名空间级别的权限控制
- 审计日志
Q9: 如何进行性能调优?
A:
数据库优化:
database:
maxOpenConns: 200 # 根据负载调整
maxIdleConns: 100
connMaxLifetime: "1h"
Redis 优化:
cache:
type: "cluster" # 高负载场景使用集群模式
服务资源调整:
services:
portalAPI:
replicas: 3
resources:
requests:
memory: "512Mi"
cpu: "500m"
limits:
memory: "1Gi"
cpu: "1000m"
Q10: 如何迁移数据?
A:
-
备份源环境数据:
# 备份数据库 kubectl exec -n kube-nova <mysql-pod> -- \ mysqldump -uroot -p<password> kube_nova > backup.sql # 备份 MinIO 数据 mc mirror myminio/kube-nova /path/to/backup -
在新环境部署平台(参考本文档)
-
恢复数据:
# 恢复数据库 kubectl exec -i -n kube-nova <mysql-pod> -- \ mysql -uroot -p<password> kube_nova < backup.sql # 恢复 MinIO 数据 mc mirror /path/to/backup myminio/kube-nova
📚 参考资源
官方资源
- 官方网站: https://www.ikubeops.com
- 在线演示: https://www.ikubeops.com
- GitHub 仓库: https://github.com/yanshicheng/kube-nova
- Gitee 仓库: https://gitee.com/ikubeops/kube-nova
- Operator 仓库: https://github.com/yanshicheng/kube-nova-operator
- 文档中心: 开发中...
社区支持
- Issue 提交: https://github.com/yanshicheng/kube-nova/issues
- 讨论区: https://github.com/yanshicheng/kube-nova/discussions
📄 许可证
本项目采用 Apache License 2.0 开源协议。详见 LICENSE 文件。
🤝 贡献
欢迎贡献代码、提交 Issue 或改进文档!
- Fork 本项目
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 提交 Pull Request
📮 联系我们
- 作者: Yanshicheng
- 邮箱: ikubeops@gmail.com
⭐ 如果这个项目对您有帮助,请给我们一个 Star!⭐
Copyright © 2024 Kube-Nova by Yanshicheng. All rights reserved.
作者:闫世成
出处:http://cnblogs.com/yanshicheng

浙公网安备 33010602011771号