kubezoo

module
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 6, 2022 License: Apache-2.0

README

KubeZoo - Gateway Service for Kubernetes
Multi-tenancy

English | 简体中文

Overview

KubeZoo is a lightweight gateway service that leverages the existing namespace model and add multi-tenancy capability to existing Kubernetes. KubeZoo provides view-level isolation among tenants by capturing and transforming the requests and responses. Please refer to design doc for details.

Why KubeZoo

There exists three common multi-tenancy models for Kubernetes, i.e., Namespace as a Service (NaaS), Cluster as a Service (CaaS), Control Planes as a service (CPaaS). Each of them can be applied to address different use cases. However, our cases have some specific requirements and constraints that can not be met by the existing models,

  • Many Small Tenants - there usually exist hundreds of tenants who only need to run small batch workloads containing few pods for tens of minutes.
  • Short Turnaround Time - users/tenants are usually impatient, who desire to have their service to be ready in minutes.
  • Tight Manpower - managing thousands of clusters/control-planes can be labour-intensive and infeasible for medium-sized dev team.

To address these cases, we present a new tenancy model, i.e., Kubernetes API as a Service (KAaaS), which provides competent isolation with negligible overheads and operation costs. KubeZoo implements this model with all tenants sharing both the control-plane and data-plane, which is suitable for the scenarios where thousands of small tenants need to share an underlying Kubernetes cluster.

For more details lease refer FAQ.

Prerequisites

Please check the resource and system requirements before installing KubeZoo.

Getting started

KubeZoo supports Kubernetes versions up to 1.24. Using higher Kubernetes versions may cause compatibility issues. KubeZoo can be installed using any of the following methods:

Methods Instruction Estimated time
Deploy KubeZoo from scratch Deploy KubeZoo < 2 minutes

Community

Contributing

If you are willing to be a contributor for the KubeZoo project, please refer to our CONTRIBUTING document for details. We have also prepared a developer guide to help the code contributors.

Contact

If you have any questions or want to contribute, you are welcome to communicate most things via GitHub issues or pull requests. Or Contact to Maintainers

License

KubeZoo is under the Apache 2.0 license. See the LICENSE file for details. Certain implementations in KubeZoo rely on the existing code from Kubernetes and the credits go to the original Kubernetes authors.

Directories

Path Synopsis
cmd
kubezoo/app
Package app does all of the work necessary to create a Kubernetes APIServer by binding together the API, master and APIServer infrastructure.
Package app does all of the work necessary to create a Kubernetes APIServer by binding together the API, master and APIServer infrastructure.
kubezoo/app/options
Package options contains flags and options for initializing an apiserver
Package options contains flags and options for initializing an apiserver
pkg
apis/quota/v1alpha1
+groupName=quota.kubezoo.io +k8s:openapi-gen=true +k8s:deepcopy-gen=package +k8s:defaulter-gen=TypeMeta
+groupName=quota.kubezoo.io +k8s:openapi-gen=true +k8s:deepcopy-gen=package +k8s:defaulter-gen=TypeMeta
apis/tenant/v1alpha1
+k8s:openapi-gen=true +k8s:deepcopy-gen=package,register +k8s:conversion-gen=github.com/kubewharf/kubezoo/pkg +k8s:defaulter-gen=TypeMeta +groupName=tenant.kubezoo.io
+k8s:openapi-gen=true +k8s:deepcopy-gen=package,register +k8s:conversion-gen=github.com/kubewharf/kubezoo/pkg +k8s:defaulter-gen=TypeMeta +groupName=tenant.kubezoo.io
generated/clientset/versioned
This package has the automatically generated clientset.
This package has the automatically generated clientset.
generated/clientset/versioned/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
generated/clientset/versioned/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
generated/clientset/versioned/typed/quota/v1alpha1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
generated/clientset/versioned/typed/quota/v1alpha1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
generated/clientset/versioned/typed/tenant/v1alpha1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
generated/clientset/versioned/typed/tenant/v1alpha1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL