Git Product home page Git Product logo

capsule's Introduction


Kubernetes multi-tenancy made easy

Capsule implements a multi-tenant and policy-based environment in your Kubernetes cluster. It is designed as a micro-services-based ecosystem with the minimalist approach, leveraging only on upstream Kubernetes.

What's the problem with the current status?

Kubernetes introduces the Namespace object type to create logical partitions of the cluster as isolated slices. However, implementing advanced multi-tenancy scenarios, it soon becomes complicated because of the flat structure of Kubernetes namespaces and the impossibility to share resources among namespaces belonging to the same tenant. To overcome this, cluster admins tend to provision a dedicated cluster for each groups of users, teams, or departments. As an organization grows, the number of clusters to manage and keep aligned becomes an operational nightmare, described as the well know phenomena of the clusters sprawl.

Entering Capsule

Capsule takes a different approach. In a single cluster, the Capsule Controller aggregates multiple namespaces in a lightweight abstraction called Tenant, basically a grouping of Kubernetes Namespaces. Within each tenant, users are free to create their namespaces and share all the assigned resources.

On the other side, the Capsule Policy Engine keeps the different tenants isolated from each other. Network and Security Policies, Resource Quota, Limit Ranges, RBAC, and other policies defined at the tenant level are automatically inherited by all the namespaces in the tenant. Then users are free to operate their tenants in autonomy, without the intervention of the cluster administrator.

Features

Self-Service

Leave developers the freedom to self-provision their cluster resources according to the assigned boundaries.

Preventing Clusters Sprawl

Share a single cluster with multiple teams, groups of users, or departments by saving operational and management efforts.

Governance

Leverage Kubernetes Admission Controllers to enforce the industry security best practices and meet policy requirements.

Resources Control

Take control of the resources consumed by users while preventing them to overtake.

Native Experience

Provide multi-tenancy with a native Kubernetes experience without introducing additional management layers, plugins, or customized binaries.

GitOps ready

Capsule is completely declarative and GitOps ready.

Bring your own device (BYOD)

Assign to tenants a dedicated set of compute, storage, and network resources and avoid the noisy neighbors' effect.

Documentation

Please, check the project documentation for the cool things you can do with Capsule.

Contributions

Capsule is Open Source with Apache 2 license and any contribution is welcome.

FAQ

  • Q. How to pronounce Capsule?

    A. It should be pronounced as /ˈkæpsjuːl/.

  • Q. Is it production grade?

    A. Although under frequent development and improvements, Capsule is ready to be used in production environments as currently, people are using it in public and private deployments. Check out the release page for a detailed list of available versions.

  • Q. Does it work with my Kubernetes XYZ distribution?

    A. We tested Capsule with vanilla Kubernetes 1.16+ on private environments and public clouds. We expect it to work smoothly on any other Kubernetes distribution. Please, let us know if you find it doesn't.

  • Q. Do you provide commercial support?

    A. Yes, we're available to help and provide commercial support. Clastix is the company behind Capsule. Please, contact us for a quote.

capsule's People

Contributors

93lucasp avatar alegrey91 avatar brightzheng100 avatar bsctl avatar davideimola avatar dependabot[bot] avatar donhighmsft avatar ethanalban avatar frodopwns avatar gernest avatar ioggstream avatar ludusrusso avatar maxfedotov avatar maxgio92 avatar mendrugory avatar oliverbaehler avatar onematchfox avatar pandry avatar paolocarta avatar prometherion avatar ptx96 avatar ruzickap avatar sftim avatar slushysnowman avatar spagno avatar stg-0 avatar unai-ttxu avatar valentinouberti avatar viveksyngh avatar xphoniex avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.