k8s custome develop
Kubernetes 二次开发项目介绍
概述
Kubernetes 作为云原生操作系统的核心,提供了强大的容器编排能力。基于 Kubernetes 的二次开发项目极大地扩展了其功能边界,覆盖了从平台管理、边缘计算、虚拟化、AI训练到多集群管理等各个领域。
一、容器管理平台类
1. KubeSphere(青云)
GitHub: https://github.com/kubesphere/kubesphere
项目简介:
KubeSphere 是在 Kubernetes 之上构建的面向云原生应用的分布式操作系统,提供全栈的 IT 运维自动化,目标是解决 Kubernetes 本身存在的存储、网络、安全和易用性等痛点。
核心特性:
- 🎯 全栈容器平台:提供 DevOps、微服务治理、可观测性等完整能力
- 🔧 运维友好:提供可视化控制台,降低 K8s 使用门槛
- 📦 应用商店:内置应用模板,一键部署常用应用
- 🔐 多租户管理:企业级多租户、权限控制
- 🔄 DevOps 集成:内置 Jenkins、CI/CD 流水线
架构特点:
1 | ┌─────────────────────────────────────────────────────────┐ |
适用场景:
- 企业级容器平台建设
- DevOps 平台搭建
- 微服务架构落地
2. K3s(Rancher/SUSE)
GitHub: https://github.com/k3s-io/k3s
项目简介:
K3s 是轻量级 Kubernetes 发行版,专为边缘计算、IoT 设备和 CI/CD 环境设计。二进制文件小于 100MB,内存占用极低。
核心特性:
- 🪶 极致轻量:单二进制文件 <100MB,内存占用 <512MB
- 📦 内置组件:集成 SQLite、Traefik Ingress、负载均衡器
- 🔧 单文件配置:简化配置管理
- ⚡ 快速启动:启动时间 <30 秒
- 🔄 自动更新:支持自动升级
架构特点:
1 | ┌─────────────────────────────────────────────────────────┐ |
适用场景:
- 边缘计算、IoT 设备
- 嵌入式系统
- CI/CD 流水线
- 开发测试环境
- ARM 设备
3. Rancher(SUSE)
GitHub: https://github.com/rancher/rancher
项目简介:
Rancher 是企业级 Kubernetes 管理平台,提供多集群管理、统一认证、应用目录等能力,支持管理任何 Kubernetes 发行版。
核心特性:
- 🌐 多集群管理:统一管理多个 K8s 集群
- 🔐 统一认证:集成 LDAP、AD、OAuth 等
- 📦 应用目录:内置 Helm 应用市场
- 👥 RBAC:企业级权限管理
- 🔄 集群模板:标准化集群配置
适用场景:
- 多集群统一管理
- 混合云/多云管理
- 企业级容器平台
二、多集群管理类
4. Karmada(华为)
GitHub: https://github.com/karmada-io/karmada
项目简介:
Karmada(Kubernetes Armada)是华为开源的多集群多云容器编排平台,实现跨集群的应用部署、资源调度和故障迁移。
核心特性:
- 🌐 多集群编排:统一管理多个 K8s 集群
- 🔄 跨集群调度:支持多种调度策略
- 🛡️ 故障迁移:自动将工作负载迁移到健康集群
- 📋 策略引擎:灵活的部署策略(副本分布、亲和性等)
- 🔧 API 兼容:完全兼容 K8s 原生 API
架构特点:
1 | ┌─────────────────────────────────────────────────────────┐ |
适用场景:
- 多云/混合云部署
- 跨区域容灾
- 大规模集群管理
5. OCM(Open Cluster Management)
GitHub: https://github.com/open-cluster-management-io/ocm
项目简介:
OCM 是红帽开源的多集群管理框架,提供集群注册、应用分发、策略治理等能力。
核心特性:
- 📋 集群注册:自动发现和注册集群
- 🔄 应用分发:跨集群部署应用
- 🛡️ 策略治理:统一安全合规策略
- 📊 可观测性:多集群监控
三、边缘计算类
6. KubeEdge(华为)
GitHub: https://github.com/kubeedge/kubeedge
项目简介:
KubeEdge 是华为开源的边缘计算平台,将 Kubernetes 能力扩展到边缘节点,支持离线运行和边缘设备管理。
核心特性:
- 🌐 云边协同:云端管理、边缘执行
- 📴 离线运行:边缘节点断网时可独立运行
- 🔌 设备管理:MQTT 协议设备接入
- 🪶 轻量边缘:EdgeCore 资源占用极低
- 🔄 消息通道:可靠云边消息同步
架构特点:
1 | ┌─────────────────────────────────────────────────────────┐ |
适用场景:
- 工业物联网(IIoT)
- 智慧城市
- 车联网
- 边缘 AI 推理
7. OpenYurt(阿里巴巴)
GitHub: https://github.com/openyurtio/openyurt
项目简介:
OpenYurt 是阿里云开源的边缘计算平台,强调”无侵入”式边缘化,让原生 K8s 集群一键变身为边缘计算平台。
核心特性:
- 🔄 无缝转换:原生 K8s 一键变边缘集群
- 📴 自治能力:边缘节点断网时继续运行
- 🔌 设备接入:支持 IoT 设备管理
- 🛡️ 安全通信:云边加密通道
四、虚拟化类
8. KubeVirt(Red Hat)
GitHub: https://github.com/kubevirt/kubevirt
项目简介:
KubeVirt 将虚拟机管理功能引入 Kubernetes,让 K8s 可以像管理容器一样管理虚拟机,实现容器与虚拟机的统一编排。
核心特性:
- 🖥️ 虚拟机管理:在 K8s 中运行 KVM 虚拟机
- 🔄 统一编排:容器与虚拟机混合部署
- 📦 VM as Code:虚拟机定义即代码
- 🔗 存储集成:支持 PVC 作为虚拟机磁盘
- 🌐 网络支持:支持 Multus 多网络
架构特点:
1 | ┌─────────────────────────────────────────────────────────┐ |
适用场景:
- 传统应用容器化迁移
- 虚拟机与容器混合部署
- 私有云建设
- 数据库等有状态应用
五、AI/高性能计算类
9. Volcano(华为)
GitHub: https://github.com/volcano-sh/volcano
项目简介:
Volcano 是基于 Kubernetes 的高性能计算任务调度系统,专为 AI、机器学习、大数据等场景优化。
核心特性:
- 🎯 批调度:Gang Scheduling(成组调度)
- 🔢 队列管理:多租户资源配额
- 📊 优先级调度:抢占和优先级
- 🔄 任务依赖:DAG 工作流
- 📈 性能优化:GPU 亲和性、NUMA 感知
架构特点:
1 | ┌─────────────────────────────────────────────────────────┐ |
适用场景:
- AI/ML 训练任务
- HPC 高性能计算
- 大数据处理
- 科学计算
10. Kubeflow
GitHub: https://github.com/kubeflow/kubeflow
项目简介:
Kubeflow 是 Google 开源的机器学习工具包,在 Kubernetes 上提供端到端的 ML 平台。
核心特性:
- 📓 Jupyter Notebook:交互式开发环境
- 🔄 Pipeline:ML 工作流编排
- 🎯 训练:分布式训练支持
- 📊 模型服务:模型部署和推理
- 🔧 超参调优:Katib 自动调参
六、GitOps 类
11. ArgoCD
GitHub: https://github.com/argoproj/argo-cd
项目简介:
ArgoCD 是 Kubernetes 原生的持续交付工具,基于 GitOps 原则实现声明式部署。
核心特性:
- 📂 Git 作为单一真实来源:配置版本化
- 🔄 自动同步:Git 变更自动部署
- 🛡️ 漂移检测:检测集群状态与 Git 配置差异
- 👀 可视化界面:应用拓扑和状态
- 🔐 SSO 集成:企业认证支持
架构特点:
1 | ┌─────────────────────────────────────────────────────────┐ |
12. FluxCD
GitHub: https://github.com/fluxcd/flux2
项目简介:
FluxCD 是 CNCF 毕业项目,提供 GitOps 持续交付能力,是 ArgoCD 的主要竞争者。
核心特性:
- 📂 GitOps 自动化
- 🔄 多仓库支持
- 🔔 Webhook 触发
- 🔐 密钥管理:Mozilla SOPS 集成
- 📦 Helm 支持
七、可观测性类
13. Prometheus Operator
GitHub: https://github.com/prometheus-operator/prometheus-operator
项目简介:
Prometheus Operator 简化了 Prometheus 在 Kubernetes 上的部署和管理,通过 CRD 实现声明式配置。
核心 CRD:
Prometheus:定义 Prometheus 实例Alertmanager:定义告警管理器ServiceMonitor:定义服务监控目标PodMonitor:定义 Pod 监控目标PrometheusRule:定义告警规则
14. Thanos
GitHub: https://github.com/thanos-io/thanos
项目简介:
Thanos 为 Prometheus 提供无限存储容量、全局查询视图和高可用能力。
核心特性:
- 📦 长期存储:支持对象存储
- 🌐 全局查询:多集群聚合查询
- 🔄 数据压缩:降低存储成本
- 🛡️ 高可用:多副本查询
八、安全类
15. Cert-Manager
GitHub: https://github.com/cert-manager/cert-manager
项目简介:
Cert-Manager 是 Kubernetes 的证书管理控制器,自动颁发、续期 TLS 证书。
核心特性:
- 🔐 自动证书管理:Let’s Encrypt 集成
- 🔄 自动续期:证书到期自动更新
- 📋 多 Issuer 支持:ACME、CA、Vault 等
- 🛡️ DNS 验证:支持多种 DNS 提供商
16. OPA Gatekeeper
GitHub: https://github.com/open-policy-agent/gatekeeper
项目简介:
Gatekeeper 是 OPA(Open Policy Agent)在 Kubernetes 上的准入控制器,实现策略即代码。
核心特性:
- 🛡️ 准入控制:Pod/Deployment 策略验证
- 📋 策略即代码:Rego 语言定义策略
- 🔧 审计:检测违规资源
- 📊 可观测性:策略执行指标
九、网络类
17. Cilium
GitHub: https://github.com/cilium/cilium
项目简介:
Cilium 是基于 eBPF 的高性能网络、安全和可观测性解决方案。
核心特性:
- ⚡ eBPF 高性能:内核级网络处理
- 🔐 L3-L7 网络策略:支持 HTTP/gRPC 规则
- 📊 可观测性:Hubble 网络可视化
- 🔄 Service Mesh:无 Sidecar 服务网格
- 🛡️ 透明加密:WireGuard/IPsec
18. Istio
GitHub: https://github.com/istio/istio
项目简介:
Istio 是最流行的 Service Mesh 实现,提供服务间通信、安全和可观测性。
核心特性:
- 🔄 流量管理:灰度发布、故障注入
- 🔐 安全:mTLS 加密、认证授权
- 📊 可观测性:指标、日志、追踪
- 🔧 Envoy Sidecar:代理数据平面
十、存储类
19. Rook
GitHub: https://github.com/rook/rook
项目简介:
Rook 是云原生存储编排器,将分布式存储系统(如 Ceph)以云原生方式部署到 K8s。
核心特性:
- 💾 Ceph 集成:块存储、对象存储、文件系统
- 🔄 自动运维:自动扩缩容、故障恢复
- 📦 CRD 管理:声明式存储配置
- 🔐 加密支持:存储加密
20. Longhorn
GitHub: https://github.com/longhorn/longhorn
项目简介:
Longhorn 是 Rancher 开源的云原生分布式块存储解决方案。
核心特性:
- 💾 分布式块存储:副本冗余
- 🔄 快照/备份:支持 S3 存储
- 📊 UI 管理:可视化存储管理
- 🔧 轻量部署:易于安装维护
项目对比总结
| 类别 | 项目名称 | 核心能力 | 开发者 | 适用场景 |
|---|---|---|---|---|
| 容器平台 | KubeSphere | 全栈容器平台 | 青云 | 企业级平台 |
| K3s | 轻量级 K8s | Rancher/SUSE | 边缘、IoT | |
| Rancher | 多集群管理 | SUSE | 企业多集群 | |
| 多集群 | Karmada | 多集群编排 | 华为 | 多云/混合云 |
| OCM | 集群注册管理 | Red Hat | 多集群治理 | |
| 边缘计算 | KubeEdge | 云边协同 | 华为 | 边缘 IoT |
| OpenYurt | 无侵入边缘化 | 阿里云 | 边缘计算 | |
| 虚拟化 | KubeVirt | VM on K8s | Red Hat | 虚机容器混合 |
| AI/HPC | Volcano | 批任务调度 | 华为 | AI 训练、HPC |
| Kubeflow | ML 平台 | 机器学习 | ||
| GitOps | ArgoCD | GitOps CD | CNCF | 持续交付 |
| FluxCD | GitOps CD | CNCF | 持续交付 | |
| 可观测 | Prometheus Operator | 监控管理 | CNCF | 监控告警 |
| Thanos | 长期存储 | CNCF | 多集群监控 | |
| 安全 | Cert-Manager | 证书管理 | CNCF | TLS 自动化 |
| Gatekeeper | 策略治理 | CNCF | 准入控制 | |
| 网络 | Cilium | eBPF 网络 | CNCF | 高性能网络 |
| Istio | Service Mesh | CNCF | 服务网格 | |
| 存储 | Rook | 存储编排 | CNCF | 分布式存储 |
| Longhorn | 块存储 | SUSE | 云原生存储 |
二次开发技术栈
开发框架
| 框架 | 用途 | GitHub |
|---|---|---|
| Kubebuilder | 构建 Operator | kubernetes-sigs/kubebuilder |
| Operator SDK | Operator 开发 SDK | operator-framework/operator-sdk |
| Controller Runtime | 控制器运行时 | kubernetes-sigs/controller-runtime |
| Kustomize | 配置管理 | kubernetes-sigs/kustomize |
| Helm | 包管理 | helm/helm |
核心概念
1 | ┌─────────────────────────────────────────────────────────┐ |
开发模式
1 | 1. 声明式 API |
学习资源
官方文档
推荐书籍
- 《Kubernetes 编程》
- 《Kubernetes Operator 开发指南》
- 《云原生模式》
社区资源
总结
Kubernetes 二次开发生态系统极其丰富,覆盖了云原生应用的方方面面:
- 平台层:KubeSphere、K3s、Rancher 降低 K8s 使用门槛
- 边缘计算:KubeEdge、OpenYurt 将 K8s 能力延伸到边缘
- 多集群:Karmada 解决多云/混合云管理
- 虚拟化:KubeVirt 实现容器与虚拟机统一
- AI 场景:Volcano、Kubeflow 支撑 AI 工作负载
- GitOps:ArgoCD、FluxCD 实现声明式持续交付
二次开发的核心是 Operator 模式,通过 CRD 扩展 K8s API,通过 Controller 实现业务逻辑自动化。