Skip to content

Releases: apecloud/kubeblocks

KubeBlocks v0.8.4

09 Jul 08:57
Compare
Choose a tag to compare

What's Changed

  • fix: missing svc related feature gates in backup by @shanshanying in #7388
  • chore: auto-sync cluster backup spec to backupSchedule by @wangyelei in #7469
  • chore: clean up restoreFromBackup annotation by @wangyelei in #7515
  • chore: wait for cluster to available when enable pitr by @wangyelei in #7517
  • chore: ignore the schedule error when creating a pod by @wangyelei in #7548
  • feat: support user-defined annotations, env and volumes by @leon-inf in #7587
  • chore: support to run a opsRequest after the dependent opsRequests are succeed. by @wangyelei in #7595
  • feat: support user-defined labels by @leon-inf in #7605
  • chore: delete related running restore resource to release pvc when cancelling the horizontal scaling by @wangyelei in #7622

Full Changelog: v0.8.3...v0.8.4

KubeBlocks v0.9.0

04 Jul 08:30
Compare
Choose a tag to compare

We are thrilled to announce the release of KubeBlocks v0.9.0, which brings us one step closer to the highly anticipated v1.0 release. This version introduces several significant improvements and new features that enhance the overall functionality and user experience of the KubeBlocks platform.

API Highlights

  • In KubeBlocks v0.9, with the introduction of topology support in KubeBlocks, the cluster building experience has become much more flexible and intuitive, akin to assembling a cluster using building blocks. The ClusterDefinition API has added the topologies field, allowing developers to provide various deployment patterns with different topologies. Database users can choose a topology when creating a Cluster through the topology field. For instance, the Redis Addon offers three topologies: Standalone, Replication, and Proxy. The Standalone topology only includes one Component - RedisServer, the Replication topology includes both RedisServer and Sentinel Components, and the Proxy topology adds a third Component, such as Twemproxy.
  • KubeBlocks now supports managing horizontal scaling (Reshard) of distributed databases. You can represent a horizontal shard with a Component, and scale up or down this horizontal shard by adding or removing Components. This scaling capability will also be used in the distributed deployment of Redis and Pika.
  • KubeBlocks now uses InstanceSet instead of StatefulSet to manage Pods. InstanceSet supports taking a specified Pod offline and Pod in-place update, and also the primary and secondary databases can adopt different pod specs in a database Replication architecture (StatefulSet doesn't support these features).
  • Developers can add more custom event handlers for Components! The ComponentDefinition API, introduced in v0.8, includes the lifeCycleActions field, allowing you to define various custom event handlers. Building on this, KubeBlocks v0.9 provides more handlers for custom addon implementation, including roleprobe (node role probing), memberLeave (node offline), preTerminate (Component offline), and postProvision (Component online). The expansion of event handlers enhances KubeBlocks' expression capabilities. For example, preTerminate and postProvision can be used to execute cross-shard data redistribution (Rebalance) in distributed databases or initiate registration to third-party HA managers like Sentinel and Orchestrator.
    Addon Highlights
  • KubeBlocks supports Redis Cluster mode (sharding mode) #5833
    Redis Cluster is designed to provide horizontal write scalability and intelligent client high-availability strategies, in addition to its excellent failover capability. Redis Cluster distributes data across multiple Redis nodes, significantly enhancing system capacity, performance, and availability.
  • KubeBlocks introduces MySQL Replication mode #1330
    Compared to MGR clusters, the MySQL Replication topology requires fewer resources (only two database replicas) and incurs less overhead for data replication. When there is no extreme demands for service availability and data reliability, the Replication topology is a more cost-effective choice. You can actively switch MySQL replica roles using kbcli or trigger a passive failover by deleting specified Kubernetes pods via kubectl. If there is no long transactions and large table DDLs, the failover generally can be completed within 30 seconds.
    What's Changed
    New Features
    KubeBlocks
  • ClusterDefinition API
    • Supports topology API, allowing developers to customize various topologies. #6582
  • Cluster API
    • Supports ShardingSpec API. #6437
    • Supports sharding scaling. #6774
  • ComponentDefinition API
    • lifecycleActions API supports user-defined operation actions, including roleprobe, memberLeave, preTerminate, postProvision. #6037 #6582 #6720 #6774
    • New Vars API for referencing instance-related dynamic resources and information, including secret, service, and service reference.
      • Supports Vars API. #5919
      • Supports cross-Component Vars referencing. #7155
      • Optimizes ServiceRef referencing. #7006
    • Supports dynamic configuration, regenerating specified variables after vertical scaling or horizontal scaling is performed. #6273 #6690
  • Component
    • Supports deleting Component. #6774
    • Supports ComponentVersion. #6582
  • InstanceSet API
    • InstanceSet replaces StatefulSet to manage Pods. #7084
    • Supports Instance Template. #5799
    • Supports specified instance scaling down. #6958
    • Supports In-place Update. #7000
  • OpsRequest API
    • Supports rebuilding faulty backup instances. #6872
    • Supports the force flag to control concurrency. #6828
    • Supports custom multi-task sequential execution. #6735
  • Supports NodeCountScaler. #7258
  • Supports PITR. #6779
  • Supports cross-Namespace restore. #6778
    kbcli
  • Supports PostgreSQL point-in-time recovery. #329
  • cluster supports the rebuild-instance subcommand to rebuild instances. #285
  • cluster create subcommand supports elasticsearch. #389
  • Supports specifying path prefix when creating a backup repository. #294

Addons
Redis

  • Supports the official Redis Cluster topology. #301
  • Enhances the functionality and stability of Redis.
    • Adapts to new APIs such as ComponentDefinition and ComponentVersion, supporting multiple topology forms. #501
    • Optimizes Redis Replication Cluster initialization logic, removing dependency on DownwardAPI. #462 #616
    • Supports Redis v7.2.4. #571
  • Redis sharding cluster supports backup and restore. #442
    MySQL
  • Adds the open-source component Orchestrator Addon to manage MySQL. #625 #567
    PostgreSQL
  • Supports PostgreSQL PITR. #361
  • Supports PostgreSQL v15.7. #361
    Qdrant
  • Qdrant sharding cluster supports backup and restore. #442
    MogDB
  • Supports the creation, scaling, backup and switchover of MogDB Replication Cluster in v5.0.5. #343 #350
    ElasticSearch
  • Supports Elasticsearch v7.7.1, v7.10.1, and v8.8.2. #767
    Pulsar
  • Supports v3.0.2. #340
  • Supports NodePort. #358
    VictoriaMetrics
  • Supports VictoriaMetrics v1.100.1. #479

API deprecations, and other changes for Release 0.9

  • ConfigConstraint API becomes stable and upgrades from v1alpha1 to v1beta1.
  • The group of StorageProvider changes and is migrated from storage.kubeblocks.io to dataprotection.kubeblocks.io.
  • ClusterVersion v1alpha1 CRD will be removed in Release 1.0.
  • ComponentClassDefinition v1alpha1 CRD will be removed in Release 1.0.
  • ComponentResourceConstraint v1alpha1 CRD will be removed in Release 1.0.
  • ClusterDefinition API
    • type, componentDefs, connectionCredential will be removed in Release 1.0.
  • Cluster API
    • Scheduling: tenancy and availabilityPolicy will be removed in Release 1.0.
    • API simplification: replicas, resources, storage, and network will be removed in Release 1.0.
  • ComponentDefintion API
    • switchPolicy will be removed in Release 1.0. The same capability can be achieved using the componentDefinition.spec.lifecycleActions.switchover API.
  • ServiceRef API
    • Cluster will be removed in Release 1.0. The same capability can be achieved using serviceRef.clusterServiceSelector.

Additionally, all fields referencing the above APIs are also marked as deprecated and will be removed in Release 1.0.

  • clusterVersionRef
  • componentDefRef
  • classDefRef
    KubeBlocks Release 0.9 still maintains the compatibility with API marked as deprecated.
    Dep...
Read more

KubeBlocks v0.8.4-beta.0

25 Jun 02:45
Compare
Choose a tag to compare
Pre-release

What's Changed

Full Changelog: v0.8.3...v0.8.4-beta.0

KubeBlocks v0.8.3

20 May 01:35
03e4f29
Compare
Choose a tag to compare

What's Changed

  • fix: dual stack service reconcile error by @iziang in #6877
  • feat: support expose dualstack service by @iziang in #6916
  • feat: support to reference objects from multiple components by @leon-inf in #6918
  • bugfix: use openapi v3.0.0 to fix excluseiveMiminum case by @shanshanying in #6926
  • chore: update apis licence to Apache by @shanshanying in #6948
  • chore: update api-reference doc by @sophon-zt in #6950
  • chore: delete related-configmap and configuration resources by @sophon-zt in #7054
  • fix: Serial UpdateStrategy not working without roles by @free6om in #7079
  • chore: add cluster labels to continouns backup and support do postReady restore by @wangyelei in #7151
  • chore: should report error when resolving partial required objects by @leon-inf in #7232
  • chore: support to create backupPolicy with multi-components that refers the same componentDefinition by @wangyelei in #7305
  • fix: configuration mounted in subpath mode do not support dynamic update for pick release-0.8 by @sophon-zt in #7332
  • chore: add labels to distinguish kb and dataprotection (#7352) by @shanshanying in #7354
  • fix: ob rebuild instance failed by @wangyelei in #7358
  • fix: when a component does not specify componentDefRef, each component will create a backupPolicy by @wangyelei in #7375

Full Changelog: v0.8.2...v0.8.3

KubeBlocks v0.8.2

20 Mar 09:00
Compare
Choose a tag to compare

Highlights

  • Supports Redis Cluster
    KubeBlocks currently supports Redis Sentinel mode, which provides excellent failover experiences. However, since it does not inherently provide data sharding, it may limit the system's horizontal scalability when dealing with large datasets and high read/write operations. Thus, an analytics application that requires rapid aggregation and querying of large volumes of data is a top priority.
    Although the Sentinel mode ensures failover and high availability, all the data still resides on a single Redis instance, subject to its memory and performance limitations. By implementing Redis Cluster support in KubeBlocks, the analytics application can distribute its dataset across multiple Redis nodes (shards), each handling a subset of the data. This not only allows for greater memory distribution but also enables parallel processing, significantly improving the performance of data-intensive operations.

New Features

KubeBlocks

  • Sharding Topology.
  • Support for IPV4/IPV6 dual stack.

Redis

  • Supports camellia-redis-proxy.
    • Currently running on Kubernetes v1.14 and requires testing on v1.24.
    • Better to adopt MetalLB for providing access to cross-cluster applications.
    • Supports exposing frontend connections (with username and password), and configuring external Redis (outside of the Kubernetes cluster).
    • Provides high availability and monitoring features.
  • Supports Redis Cluster.

MongoDB

  • MongoDB Replicaset address supports high availability access from an external Kubernetes cluster (non-direct connection).

Lorry

  • Supports custom command probing for roleProbe.

KubeBlocks v0.7.5

14 Mar 05:40
0cf08c8
Compare
Choose a tag to compare
KubeBlocks v0.7.5 Pre-release
Pre-release

Full Changelog: v0.7.4...v0.7.5

KubeBlocks v0.7.4

13 Mar 10:20
fb26daa
Compare
Choose a tag to compare
KubeBlocks v0.7.4 Pre-release
Pre-release

Full Changelog: v0.7.3...v0.7.4

KubeBlocks v0.7.3

12 Mar 03:11
ee3c1bb
Compare
Choose a tag to compare
KubeBlocks v0.7.3 Pre-release
Pre-release

What's Changed

Full Changelog: v0.7.2...v0.7.3

KubeBlocks v0.9.0-alpha.2

26 Mar 02:56
49ef259
Compare
Choose a tag to compare
Pre-release

What's Changed

Read more

KubeBlocks v0.8.1

22 Jan 12:06
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.8.0...v0.8.1