kubeblocks

module
v0.6.0-alpha.28 Latest Latest
Warning

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

Go to latest
Published: Jul 1, 2023 License: AGPL-3.0

README

KubeBlocks

Build status Documentation status Go Report Card Docker Pulls codecov LICENSE Releases maturity

image

What is KubeBlocks

KubeBlocks is an open-source, cloud-native data infrastructure designed to help application developers and platform engineers manage database and analytical workloads on Kubernetes. It is cloud-neutral with multiple cloud service providers supported, offering a unified and declarative approach to increase productivity in DevOps practices.

The name KubeBlocks is derived from Kubernetes and LEGO blocks, which indicates that building database and analytical workloads on Kubernetes can be both productive and enjoyable, like playing with construction toys. KubeBlocks combines the large-scale production experiences of top cloud service providers with enhanced usability and stability.

Why you need KubeBlocks

Kubernetes has become the de facto standard for container orchestration. It manages an ever-increasing number of stateless workloads with the scalability and availability provided by ReplicaSet and the rollout and rollback capabilities provided by Deployment. However, managing stateful workloads poses great challenges for Kubernetes. Although StatefulSet provides stable persistent storage and unique network identifiers, these abilities are far from enough for complex stateful workloads.

To address these challenges, and solve the problem of complexity, KubeBlocks introduces ReplicationSet and ConsensusSet, with the following capabilities:

  • Role-based update order reduces downtime caused by upgrading versions, scaling, and rebooting.
  • Maintains the status of data replication and automatically repairs replication errors or delays.
Goals
  • Enhance stateful workloads on Kubernetes, being open-source and cloud-neutral.
  • Manage data infrastructure without a high cognitive load of cloud computing, Kubernetes, and database knowledge.
  • Reduce costs by only paying for the infrastructure and increasing the utilization of resources with flexible scheduling.
  • Support the most popular RDBMS, NoSQL, streaming and analytical systems, and their bundled tools.
  • Provide the most advanced user experience based on the concepts of IaC and GitOps.
Key features
  • Be compatible with AWS, GCP, Azure, and Alibaba Cloud.
  • Supports MySQL, PostgreSQL, Redis, MongoDB, Kafka, and more.
  • Provides production-level performance, resilience, scalability, and observability.
  • Simplifies day-2 operations, such as upgrading, scaling, monitoring, backup, and restore.
  • Contains a powerful and intuitive command line tool.
  • Sets up a full-stack, production-ready data infrastructure in minutes.

Get started with KubeBlocks

Quick Start shows you the quickest way to get started with KubeBlocks.

Community

Contributing to KubeBlocks

Your contributions are welcomed and appreciated.

License

KubeBlocks is under the GNU Affero General Public License v3.0. See the LICENSE file for details.

Directories

Path Synopsis
apis
apps/v1alpha1
+k8s:deepcopy-gen=package,register +k8s:openapi-gen=true +groupName=apps.kubeblocks.io
+k8s:deepcopy-gen=package,register +k8s:openapi-gen=true +groupName=apps.kubeblocks.io
dataprotection/v1alpha1
+k8s:deepcopy-gen=package,register +k8s:openapi-gen=true +groupName=dataprotection.kubeblocks.io
+k8s:deepcopy-gen=package,register +k8s:openapi-gen=true +groupName=dataprotection.kubeblocks.io
extensions/v1alpha1
+k8s:deepcopy-gen=package,register +k8s:openapi-gen=true +groupName=extensions.kubeblocks.io
+k8s:deepcopy-gen=package,register +k8s:openapi-gen=true +groupName=extensions.kubeblocks.io
workloads/v1alpha1
Package v1alpha1 contains API Schema definitions for the workloads v1alpha1 API group +kubebuilder:object:generate=true +groupName=workloads.kubeblocks.io
Package v1alpha1 contains API Schema definitions for the workloads v1alpha1 API group +kubebuilder:object:generate=true +groupName=workloads.kubeblocks.io
cmd
cli
controllers
externalapis
preflight/v1beta2
Package v1beta2 contains API Schema definitions for the preflight v1beta2 API group +kubebuilder:object:generate=true +groupName=troubleshoot.sh
Package v1beta2 contains API Schema definitions for the preflight v1beta2 API group +kubebuilder:object:generate=true +groupName=troubleshoot.sh
hack
docgen/api/template
Package template Placeholder file to make Go vendor this directory properly.
Package template Placeholder file to make Go vendor this directory properly.
internal
controller/graph
Package graph tries to model the controller reconciliation loop in a more structured way.
Package graph tries to model the controller reconciliation loop in a more structured way.
controller/rsm
Package rsm is a general component aims to hold role-based stateful workloads(such as databases).
Package rsm is a general component aims to hold role-based stateful workloads(such as databases).
pkg
client/clientset/versioned
This package has the automatically generated clientset.
This package has the automatically generated clientset.
client/clientset/versioned/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
client/clientset/versioned/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
client/clientset/versioned/typed/apps/v1alpha1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
client/clientset/versioned/typed/apps/v1alpha1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
client/clientset/versioned/typed/dataprotection/v1alpha1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
client/clientset/versioned/typed/dataprotection/v1alpha1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
client/clientset/versioned/typed/extensions/v1alpha1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
client/clientset/versioned/typed/extensions/v1alpha1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
client/clientset/versioned/typed/workloads/v1alpha1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
client/clientset/versioned/typed/workloads/v1alpha1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
test
e2e

Jump to

Keyboard shortcuts

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