kubeblocks

module
v0.7.0-beta.0 Latest Latest
Warning

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

Go to latest
Published: Oct 10, 2023 License: AGPL-3.0

README

KubeBlocks

Documentation status OpenSSF Best Practices Releases LICENSE Go Report Card Docker Pulls codecov Build status maturity Artifact Hub

image

What is KubeBlocks

KubeBlocks is an open-source Kubernetes operator that manages relational, NoSQL, vector, and streaming databases on the public cloud or on-premise. It is designed for production purposes, providing reliable, performant, observable, and cost-effective data infrastructure for most scenarios. The name KubeBlocks is inspired by Kubernetes and LEGO blocks, signifying that building data infrastructure on Kubernetes can be both productive and enjoyable, like playing with construction toys.

Why you need KubeBlocks

When adopting a multi-cloud or hybrid cloud strategy, it is essential to prioritize application portability and use software or services that offer consistent functionality across different infrastructures. Kubernetes has helped in achieving this goal to some extent, and KubeBlocks can further enhance the experience. KubeBlocks integrates popular database engines and provides rich management functions, along with declarative APIs, on various infrastructures. Furthermore, KubeBlocks offers the following benefits:

  • Performance

    You do not have to learn database tuning. KubeBlocks can leverage storage and computing resources to achieve optimal database performance.

  • Reliability

    You do not need to worry about data loss or service outages. KubeBlocks provides fault tolerance at the node or availability zone levels, which maximizes database reliability.

  • Observability

    You can track new metrics under one roof. KubeBlocks integrates observability platforms such as Prometheus stack, AWS AMP, Aliyun ARMS, etc., and provides beautiful templates with insights.

  • Extensibility

    You can integrate and use new database engines with ease. KubeBlocks provides a good abstraction of the database control plane, allowing for efficient support of new database engines with a consistent user experience.

Goals
  • Being open and cloud-neutral
  • Promoting the containerization of database workloads
  • Promoting IaC and GitOps in the field of databases
  • Reducing the cost of using databases
  • Smoothing the learning curve of managing databases
Key features
  • Be compatible with AWS, GCP, Azure, and more
  • 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

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.

Report Vulnerability

We consider security is a top priority issue. If you come across a related issue, please create a Report a security vulnerability issue.

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
storage/v1alpha1
+k8s:deepcopy-gen=package,register +k8s:openapi-gen=true +groupName=storage.kubeblocks.io
+k8s:deepcopy-gen=package,register +k8s:openapi-gen=true +groupName=storage.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
cli/cmd/auth/utils
Code generated for package auth by go-bindata DO NOT EDIT.
Code generated for package auth by go-bindata DO NOT EDIT.
common
Package common provides types and utils shared by all KubeBlocks components: KubeBlocks Core, KBCLI, Lorry etc.
Package common provides types and utils shared by all KubeBlocks components: KubeBlocks Core, KBCLI, Lorry etc.
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/handler
Package handler is a more flexible EventHandler builder in a chain fashion.
Package handler is a more flexible EventHandler builder in a chain fashion.
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).
viperx
Package viperx is a thread-safe extension for the Viper configuration library.
Package viperx is a thread-safe extension for the Viper configuration library.
lorry
ctl
dcs
pkg
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/storage/v1alpha1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
client/clientset/versioned/typed/storage/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