Project: KubeBlocks by ApeCloud (App Definition and Development / Database)
File: v0.4.0.md

We are happy to announce the release of KubeBlocks 0.4.0 with some exciting new features and improvements. KubeBlocks v0.4.0 now supports PostgreSQL databases and has improved resource isolation, security, and usability. KubeBlocks supports PostgreSQL v14.7 After the support of the world's most popular open source database MySQL, KubeBlocks now supports the world's most advanced open source database PostgreSQL. PostgreSQL offers a wide range of data types and excels at managing spatial locations and geographic information. To provide a seamless, ready-to-use experience for users, PostgreSQL clusters created by KubeBlocks come with popular plugins such as PostGIS pre-installed by default. Currently, the PostgreSQL clusters created by KubeBlocks do not support cross-AZ high availability, and there is a risk of data loss in extreme scenarios where block devices are damaged. As a result, they are recommended only for testing purposes. However, in future versions, data reliability, service availability, and feature richness will continue to be enhanced. KubeBlocks simplifies resource isolation settings at the node level. Stateful services can be impacted by "noisy neighbors," but KubeBlocks has addressed this issue by enabling users to run database clusters on specific Node groups through Taint and Label settings, while still being able to run with "noisy neighbors" when resources are scarce. This improvement gives users greater control over isolation without adding complexity to the interaction, and without requiring them to set affinity. KubeBlocks provides an Endpoint for being accessed outside of the K8s cluster. , You may need to access KubeBlocks database clusters through VPC or a public Endpoint in scenarios such as PoC or data migration. However, to apply for an Endpoint, users need to learn about the cloud vendor's network ACLs, Load Balancer configuration, and identity and permission management systems. To reduce the learning curve for users, KubeBlocks integrates with the cloud vendor's Load Balancers, enabling smooth network access with just one expose command executed on the target database cluster. Thanks to everyone who made this release possible! @iziang, @ldming, @lynnleelhl, @nashtsai, @wangyelei, @weicao, @xuriwuyun, @Y-Rookie, @heng4fun Lifecycle management in Standalone mode includes creation, deletion, restart, vertical scaling, and horizontal scaling. , Full backups based on snapshots, which can be initiated manually or automatically. These snapshot backups can be completed within two minutes without affecting the performance of the instance. Full recovery based on snapshots. With sufficient resources, users can quickly restore the full amount of data to the new database

Pass the AWS EKS v1.22 / v1.23 / v1.24 / v1.25 compatibility test. Users are able to modify the parameter configuration of the database cluster. When modifying parameters, kbcli checks the validation of the parameter settings. They can also compare differences between the current and previous versions through historical records. Parameters of MySQL are more than 500, including maxconnections, maxallowedpacket, tableopen_cache and so on. Parameters of PostgreSQL are more than 350, including maxconnections, sharedbuffers, wal_level and so on. Supports manual start or stop of database clusters by users to save computing resources, and data or backups will not be deleted during the stopped period. Using kbcli to install KubeBlocks, kbcli will choose the suitable addons to install according to running environment. , Using kbcli to install KubeBlocks, the namespace is by default kb-system. You can specify the namespace. Note: The database cluster is created in default namespace or specified namespace. Using kbcli to create database clusters, if the cluster name is not specified, the system generates cluster name. Using kbcli to create database clusters, you can use--set to configure resources of the cluster, including CPU, memory, storage size, and replica numbers. kbcli playground supports the one-click launch of AWS EKS runtime environment to experience the full set of KubeBlocks functions. KubeBlocks has built-in affinity and toleration configurations on both data plane and control plane to prevent stateless applications from competing for KubeBlocks' runtime resources. KubeBlocks' database cluster introduces tenant types, where dedicated tenancy can avoid the behavior of database clusters competing for runtime resources with each other. Support PostgreSQL monitoring, including Check Connections, Tuples, Queries, Transactions & WAL, Conflicts & Locks, Buffers & Blocks operations, Temp files, Database Size and the CPU, memory, traffic of pod. Built-in common alarm rules, including abnormal events such as restart, slow query, increasing in the number of connections, decreasing in Cache hit rate, deadlock, and AutoVacuum etc. Support customized robot alarms for Slack, Feishu, Wechat and DingTalks. ginkgo v2 error fix (, @lynnleelhl) fixed deploy/postgresqlcluster/templates/cluster.yaml template error (, @nashtsai) fixed PostgreSQL chart conf volume error (, @nashtsai) terminate the cli installation if error occurs (, @ldming) build kbcli with CGO_ENABLED=0 (, @ldming) container run as root and rename cd.name (, @ZhaoDiankui) check sts and pods revision (, @heng4fun) install nyancat failed when KubeBlocks repo does not exist (, @heng4fun) Breaking changes between v0.4 and v0.3. Uninstall v0.3 before installing v0.4. Resource group name changes from dbaas.kubeblocks.io to apps.kubeblocks.io.