lourencovales/k8s-mtp

GitHub: lourencovales/k8s-mtp

基于 Go 的 Kubernetes 多租户 Operator,通过 CRD 声明式管理租户生命周期,自动完成命名空间、资源配额和 RBAC 的供应与管理。

Stars: 0 | Forks: 0

# k8s-mtp 一个 Kubernetes 多租户平台,提供隔离的租户环境、资源配额、RBAC 管理以及基于层级的资源分配。 ## 概述 k8s-mtp(Kubernetes 多租户平台)使集群管理员能够在 Kubernetes 集群内创建和管理隔离的租户环境。每个租户都会获得自己的命名空间,并带有预定义的资源配额和基于角色的访问控制。 ## 功能 - **租户 CRD**:用于管理租户生命周期的自定义资源定义 - **三层系统**:Free、Pro 和 Enterprise 三个层级,具有不同的资源配额 - **自动资源供应**:创建命名空间、ResourceQuotas 和 RBAC 资源 - **Webhook 验证**:使用 TLS 保护 webhooks 的 Pod 准入控制 - **REST API**:用于租户管理操作的 HTTP API - **PostgreSQL 后端**:用于租户元数据的持久化存储 ## 架构 该平台由三个主要组件组成: 1. **Controller** (`cmd/controller`):监视 Tenant CRD 并协调集群资源 2. **API Server** (`cmd/api`):用于外部集成的 REST API 3. **Webhook** (`cmd/webhook`):用于 Pod 验证的准入控制器 ## 租户层级 | 层级 | CPU | 内存 | Pods | 存储 | |------|-----|--------|------|---------| | Free | 500m | 1Gi | 20 | 10Gi | | Pro | 4 | 8Gi | 100 | 100Gi | | Enterprise | 8 | 16Gi | 200 | 200Gi | ## 快速入门 ``` # 部署 CRDs kubectl apply -f config/crds/ # 使用 Terraform 部署 cd deploy/terraform terraform init terraform apply ``` ## 租户示例 ``` apiVersion: multitenant.k8s-mtp.io/v1 kind: Tenant metadata: name: acme-corp spec: name: acme tier: pro ownerEmail: admin@acme.com admins: - alice@acme.com operators: - bob@acme.com ``` ## 许可证 MIT 许可证 - 详见 [LICENSE](LICENSE)
标签:controller-runtime, ECS, EVTX分析, Go语言, K8s Operator, K8s多租户平台, PostgreSQL, RBAC, REST API, SaaS平台, Terraform, Webhook, 分级管理, 力导向图, 命名空间管理, 子域名突变, 容器编排, 平台工程, 日志审计, 权限管理, 模型越狱, 测试用例, 程序破解, 自动化运维, 资源配额, 隔离环境