From 1dc21d1d0a4aacbdd1049843a7ba03832a52f495 Mon Sep 17 00:00:00 2001 From: yuanyuan zhang Date: Tue, 14 Nov 2023 19:39:43 +0800 Subject: [PATCH 1/6] docs: add supported engine version and add upgrade doc --- .../upgrade/upgrade-kubeblocks-to-0.6.md | 306 ------------------ .../upgrade/upgrade-kubeblocks-to-0.7.md | 15 + docs/user_docs/overview/supported-addons.md | 69 ++-- 3 files changed, 64 insertions(+), 326 deletions(-) delete mode 100644 docs/user_docs/installation/upgrade/upgrade-kubeblocks-to-0.6.md create mode 100644 docs/user_docs/installation/upgrade/upgrade-kubeblocks-to-0.7.md diff --git a/docs/user_docs/installation/upgrade/upgrade-kubeblocks-to-0.6.md b/docs/user_docs/installation/upgrade/upgrade-kubeblocks-to-0.6.md deleted file mode 100644 index 4c6e41178c0..00000000000 --- a/docs/user_docs/installation/upgrade/upgrade-kubeblocks-to-0.6.md +++ /dev/null @@ -1,306 +0,0 @@ ---- -title: Upgrade to KubeBlocks v0.6 -description: Upgrade to KubeBlocks, operation, tips and notes -keywords: [upgrade, prepull images, feature changes between 0.5 and 0.6] -sidebar_position: 1 -sidebar_label: Upgrade to KubeBlocks v0.6 ---- - -# Upgrade to KubeBlocks v0.6 - -This chapter shows how to upgrade to the KubeBlocks 0.6, including notes and tips. - -## Before upgrading - -### Pull images - -KubeBlocks version 0.6 has many image changes from version 0.5. During upgrading, if there are many database instances in the cluster, the instance may be unavailable for a long time if images are pulled at the same time. It is recommended to pull the images required for version 0.6 in advance before upgrading. - -***Steps*** - -1. Write the following content to a `yaml` file. - - ```bash - apiVersion: apps/v1 - kind: DaemonSet - metadata: - name: kubeblocks-image-prepuller - spec: - selector: - matchLabels: - name: kubeblocks-image-prepuller - template: - metadata: - labels: - name: kubeblocks-image-prepuller - spec: - volumes: - - name: shared-volume - emptyDir: {} - tolerations: - - key: "kb-data" - operator: "Exists" - effect: "NoSchedule" - - key: "kb-controller" - operator: "Exists" - effect: "NoSchedule" - initContainers: - - name: pull-kb-tools - image: registry.cn-hangzhou.aliyuncs.com/apecloud/kubeblocks-tools:0.6.0 - imagePullPolicy: IfNotPresent - command: ["cp", "-r", "/bin/kbcli", "/kb-tools/kbcli"] - volumeMounts: - - name: shared-volume - mountPath: /kb-tools - - name: pull-1 - image: apecloud/kubeblocks-csi-driver:0.1.0 - imagePullPolicy: IfNotPresent - command: ["/kb-tools/kbcli"] - volumeMounts: - - name: shared-volume - mountPath: /kb-tools - - name: pull-2 - image: registry.cn-hangzhou.aliyuncs.com/apecloud/apecloud-mysql-scale:0.1.1 - imagePullPolicy: IfNotPresent - command: ["/kb-tools/kbcli"] - volumeMounts: - - name: shared-volume - mountPath: /kb-tools - - name: pull-4 - image: registry.cn-hangzhou.aliyuncs.com/apecloud/apecloud-mysql-server:8.0.30-5.alpha8.20230523.g3e93ae7.8 - imagePullPolicy: IfNotPresent - command: ["/kb-tools/kbcli"] - volumeMounts: - - name: shared-volume - mountPath: /kb-tools - - name: pull-5 - image: registry.cn-hangzhou.aliyuncs.com/apecloud/apecloud-mysql-server:8.0.30-5.beta1.20230802.g5b589f1.12 - imagePullPolicy: IfNotPresent - command: ["/kb-tools/kbcli"] - volumeMounts: - - name: shared-volume - mountPath: /kb-tools - - name: pull-6 - image: registry.cn-hangzhou.aliyuncs.com/apecloud/kubeblocks-charts:0.6.0 - imagePullPolicy: IfNotPresent - command: ["/kb-tools/kbcli"] - volumeMounts: - - name: shared-volume - mountPath: /kb-tools - - name: pull-7 - image: registry.cn-hangzhou.aliyuncs.com/apecloud/kubeblocks-datascript:0.6.0 - imagePullPolicy: IfNotPresent - command: ["/kb-tools/kbcli"] - volumeMounts: - - name: shared-volume - mountPath: /kb-tools - - name: pull-8 - image: registry.cn-hangzhou.aliyuncs.com/apecloud/kubeblocks-tools:0.6.0 - imagePullPolicy: IfNotPresent - command: ["/kb-tools/kbcli"] - volumeMounts: - - name: shared-volume - mountPath: /kb-tools - - name: pull-9 - image: registry.cn-hangzhou.aliyuncs.com/apecloud/kubeblocks:0.6.0 - imagePullPolicy: IfNotPresent - command: ["/kb-tools/kbcli"] - volumeMounts: - - name: shared-volume - mountPath: /kb-tools - - name: pull-10 - image: registry.cn-hangzhou.aliyuncs.com/apecloud/mongo:5.0.14 - imagePullPolicy: IfNotPresent - command: ["/kb-tools/kbcli"] - volumeMounts: - - name: shared-volume - mountPath: /kb-tools - - name: pull-11 - image: registry.cn-hangzhou.aliyuncs.com/apecloud/mysqld-exporter:0.14.1 - imagePullPolicy: IfNotPresent - command: ["/kb-tools/kbcli"] - volumeMounts: - - name: shared-volume - mountPath: /kb-tools - - name: pull-12 - image: registry.cn-hangzhou.aliyuncs.com/apecloud/pgbouncer:1.19.0 - imagePullPolicy: IfNotPresent - command: ["/kb-tools/kbcli"] - volumeMounts: - - name: shared-volume - mountPath: /kb-tools - - name: pull-13 - image: registry.cn-hangzhou.aliyuncs.com/apecloud/redis-stack-server:7.0.6-RC8 - imagePullPolicy: IfNotPresent - command: ["/kb-tools/kbcli"] - volumeMounts: - - name: shared-volume - mountPath: /kb-tools - - name: pull-14 - image: registry.cn-hangzhou.aliyuncs.com/apecloud/spilo:12.14.0 - imagePullPolicy: IfNotPresent - command: ["/kb-tools/kbcli"] - volumeMounts: - - name: shared-volume - mountPath: /kb-tools - - name: pull-15 - image: registry.cn-hangzhou.aliyuncs.com/apecloud/spilo:12.14.1 - imagePullPolicy: IfNotPresent - command: ["/kb-tools/kbcli"] - volumeMounts: - - name: shared-volume - mountPath: /kb-tools - - name: pull-16 - image: registry.cn-hangzhou.aliyuncs.com/apecloud/spilo:12.15.0 - imagePullPolicy: IfNotPresent - command: ["/kb-tools/kbcli"] - volumeMounts: - - name: shared-volume - mountPath: /kb-tools - - name: pull-17 - image: registry.cn-hangzhou.aliyuncs.com/apecloud/spilo:14.7.2 - imagePullPolicy: IfNotPresent - command: ["/kb-tools/kbcli"] - volumeMounts: - - name: shared-volume - mountPath: /kb-tools - - name: pull-18 - image: registry.cn-hangzhou.aliyuncs.com/apecloud/spilo:14.8.0 - imagePullPolicy: IfNotPresent - command: ["/kb-tools/kbcli"] - volumeMounts: - - name: shared-volume - mountPath: /kb-tools - - name: pull-19 - image: registry.cn-hangzhou.aliyuncs.com/apecloud/wal-g:mongo-latest - imagePullPolicy: IfNotPresent - command: ["/kb-tools/kbcli"] - volumeMounts: - - name: shared-volume - mountPath: /kb-tools - - name: pull-20 - image: registry.cn-hangzhou.aliyuncs.com/apecloud/wal-g:mysql-latest - imagePullPolicy: IfNotPresent - command: ["/kb-tools/kbcli"] - volumeMounts: - - name: shared-volume - mountPath: /kb-tools - - name: pull-21 - image: registry.cn-hangzhou.aliyuncs.com/apecloud/agamotto:0.1.2-beta.1 - imagePullPolicy: IfNotPresent - command: ["/kb-tools/kbcli"] - volumeMounts: - - name: shared-volume - mountPath: /kb-tools - containers: - - name: pause - image: k8s.gcr.io/pause:3.2 - ``` - -2. Apply the `yaml` file to pre-pull images required before upgrading. - - ```bash - kubectl apply -f prepull.yaml - > - daemonset.apps/kubeblocks-image-prepuller created - ``` - -3. Check the pulling status. - - ```bash - kubectl get pod - > - NAME READY STATUS RESTARTS AGE - kubeblocks-image-prepuller-6l5xr 1/1 Running 0 11m - kubeblocks-image-prepuller-7t8t2 1/1 Running 0 11m - kubeblocks-image-prepuller-pxbnp 1/1 Running 0 11m - ``` - -4. Delete the pod created for pulling image. - - ```bash - kubectl delete daemonsets.apps kubeblocks-image-prepuller - ``` - -## Upgrade - -Since version 0.6 of the KubeBlocks DB cluster has many image changes, the Pod will be gradually restarted during the upgrade, resulting in the DB cluster unavailable for a short period of time. The unavailable time of the DB cluster is decided by network conditions and cluster size. The upgrade time of the KubeBlocks controller is about 2 minutes, the unavailable time of a single DB cluster is about 20s to 200s, and the complete recovery time of a single DB cluster is about 20s to 300s. If you pull images before you upgrade, see the section above, the unavailable time of a single DB cluster is about 20s to 100s, and the complete recovery time of a single DB cluster is about 20s to 150s. - -***Steps*** - -1. Install the new version of `kbcli`. - - ```bash - curl -fsSL https://kubeblocks.io/installer/install_cli.sh |bash -s 0.6.0 - ``` - -2. Upgrade KubeBlocks. - - ```bash - kbcli kubeblocks upgrade --version 0.6.0 - ``` - -## Feature changes require attention - -### RABC - -In version 0.6, KubeBlocks automatically manages the RBAC required by the cluster. Added the following 2 cluster roles. -- ClusterRole/kubeblocks-cluster-pod-role for pod. -- ClusterRole/kubeblocks-volume-protection-pod-role for full disk lock. - -When cluster reconcile is triggered, KubeBlocks creates rolebinding and serviceAccount to bind ClusterRole/kubeblocks-cluster-pod-role. - -You need to create a clusterrolebinding to bind ClusterRole/kubeblocks-volume-protection-pod-role. - -### Full disk lock - -Kubeblocks version 0.6 adds the disk full lock feature of MySQL, PostGreSQL, and MongoDB databases, which needs to be enabled by modifying the cluster definition. Due to the slight differences in the implementation methods of each database, pay attention to the following instructions: - -- For MySQL database, readwrite account cannot write to the disk when the disk usage reaches the `highwatermark` value, while superuser can still write. -- FOr PostGreSQL database and MongoDB, both readwrite user and superruser cannot write when disk usage reaches `highwatermark`. -- `90` is the default value setting for highwatermark at the component level which means 90% of disk usage is the threshold, while `85` is used for the volumes setting which will overwrites the component's threshold value. -In the cluster definition, add following content to enable full disk lock function. You can set the value according to the real situation. - -```bash -volumeProtectionSpec: - highWatermark: 90 - volumes: - - highWatermark: 85 - name: data -``` - -:::note - -The recommended value of `highWatermark` is 90. - -::: - -### Backup and restore - -The backup and restore function of Kubeblocks version 0.6 has been greatly adjusted and upgraded. After the database cluster created in version 0.5 is upgraded to version 0.6, manual adjustment is required, otherwise the new functions of version 0.6 cannot be used. - -| Database | v0.5 | v0.6 | -|----------|---------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------| -| MySQL | Snapshot backup and restore full backup and restore | Snapshot backup and restore
Full backup and restore Log file backup
PITR based on snapshot
PITR based on full data | -| PG | Snapshot backup and restore
Full backup and restore
Log file backup
PITR based on snapshot | Snapshot backup and restore
Full backup and restore
Log file backup
PITR based on snapshot | -| Redis | Snapshot backup and restore | Snapshot backup and restore
Full backup and restore | -| Mongo | Full backup and restore | Snapshot backup and restore
Full backup and restore Log file backup
PITR based on snapshot
PITR based on full data | - -### Password authentication - -The 0.6 version cancels the password-free login capability of the Postgres cluster. Compared with the password-free access of the 0.5 version, the newly created Postgres of 0.6 requires an account password to access. And after you upgrade to 0.6 version, if the cluster remains in` creating` status when restore from a backup, you can check whether there is a password authentication failed error in the pod log of the cluster. This problem can be solved by updating the password. We fix the problem in the next release. -Check whether there is a password authentication error. - -```bash -kubectl logs kb-checkrole -... -server error (FATAL: password authentication failed for user \"postgres\" (SQLSTATE 28P01))" -... -``` - -Update the password. - -```bash -kubectl exec -it -- bash -psql -c "ALTER USER postgres WITH PASSWORD '${PGPASSWORD}';" -``` diff --git a/docs/user_docs/installation/upgrade/upgrade-kubeblocks-to-0.7.md b/docs/user_docs/installation/upgrade/upgrade-kubeblocks-to-0.7.md new file mode 100644 index 00000000000..90c3931a22d --- /dev/null +++ b/docs/user_docs/installation/upgrade/upgrade-kubeblocks-to-0.7.md @@ -0,0 +1,15 @@ +--- +title: Upgrade to KubeBlocks v0.7 +description: Upgrade to KubeBlocks, operation, tips and notes +keywords: [upgrade, 0.7] +sidebar_position: 1 +sidebar_label: Upgrade to KubeBlocks v0.7 +--- + +# Upgrade to KubeBlocks v0.7 + +Upgrade KubeBlocks from v0.6 to v0.7 only requires a command line. + +```bash +kbcli upgrade --version=0.7.0 +``` diff --git a/docs/user_docs/overview/supported-addons.md b/docs/user_docs/overview/supported-addons.md index 13cc4d5108b..a54a87b1770 100644 --- a/docs/user_docs/overview/supported-addons.md +++ b/docs/user_docs/overview/supported-addons.md @@ -13,14 +13,27 @@ KubeBlocks, as a cloud-native data infrastructure based on Kubernetes, providing | Add-ons | Description | |:----------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | apecloud-mysql | ApeCloud MySQL is a database that is compatible with MySQL syntax and achieves high availability through the utilization of the RAFT consensus protocol. | +| clickhouse | | elasticsearch | Elasticsearch is a distributed, RESTful search engine optimized for speed and relevance on production-scale workloads. | +| etcd | etcd is a strongly consistent, distributed key-value store that provides a reliable way to store data that needs to be accessed by a distributed system or cluster of machines. | +| foxlake | ApeCloud FoxLake is an open-source cloud-native data warehouse. | +| ggml | GGML is a tensor library for machine learning to enable large models and high performance on commodity hardware. | | greptimedb | GreptimeDB is an open-source time-series database with a special focus on scalability, analytical capabilities and efficiency. | | kafka | Apache Kafka is an open-source distributed event streaming platform used by thousands of companies for high-performance data pipelines, streaming analytics, data integration, and mission-critical applications. | -| mongodb | MongoDB is a document-oriented NoSQL database used for high volume data storage. | +| mariadb | MariaDB is a high performance open source relational database management system that is widely used for web and application servers. | | milvus | Milvus is a flexible, reliable, & blazing-fast cloud-native, open-source vector database. | +| mongodb | MongoDB is a document-oriented NoSQL database used for high volume data storage. | +| mysql (Primary-Secondary replication) | | nebula | NebulaGraph is an open source graph database that can store and process graphs with trillions of edges and vertices. | | neon | Neon is Serverless Postgres built for the cloud. | +| oceanbase | Unlimited scalable distributed database for data-intensive transactional and real-time operational analytics workloads, with ultra-fast performance that has once achieved world records in the TPC-C benchmark test. OceanBase has served over 400 customers across the globe and has been supporting all mission critical systems in Alipay. | +| official-postgresql | An official PostgreSQL cluster definition Helm chart for Kubernetes. | +| openldap | The OpenLDAP Project is a collaborative effort to develop a robust, commercial-grade, fully featured, and open source LDAP suite of applications and development tools. This chart provides KubeBlocks. | +| opensearch | Open source distributed and RESTful search engine. | +| oracle-mysql | MySQL is a widely used, open-source relational database management system (RDBMS). | +| oriolebd | OrioleDB is a new storage engine for PostgreSQL, bringing a modern approach to database capacity, capabilities and performance to the world's most-loved database platform. | | pika | Pika is a persistent huge storage service, compatible with the vast majority of redis interfaces, including string, hash, list, zset, set and management interfaces. | +| polardb-x | PolarDB-X is a cloud native distributed SQL Database designed for high concurrency, massive storage, complex querying scenarios. | | postgresql | PostgreSQL is an advanced, enterprise class open source relational database that supports both SQL (relational) and JSON (non-relational) querying. | | pulsar | Apache® Pulsar™ is an open-source, distributed messaging and streaming platform built for the cloud. | | qdrant | Qdrant is a vector database & vector similarity search engine. | @@ -28,29 +41,45 @@ KubeBlocks, as a cloud-native data infrastructure based on Kubernetes, providing | risingwave | RisingWave is a distributed SQL database for stream processing. It is designed to reduce the complexity and cost of building real-time applications. | | starrocks | StarRocks is a next-gen, high-performance analytical data warehouse that enables real-time, multi-dimensional, and highly concurrent data analysis. | | tdengine | TDengine™ is an industrial data platform purpose-built for the Industrial IoT, combining a time series database with essential features like stream processing, data subscription, and caching. | +| vllm | vLLM is a fast and easy-to-use library for LLM inference and serving. | | weaviate | Weaviate is an open-source vector database. | +| zookeeper | Apache ZooKeeper is a centralized service for maintaining configuration information, naming, providing distributed synchronization, and providing group services. | ## Supported functions of add-ons -| Add-ons | Vertical Scaling | Horizontal Scaling | Volume Expansion | Stop/Start | Restart | Backup/Restore | Logs | Config | Upgrade | Account | Failover | Switchover | Monitor | -|:----------------|:------------------|:--------------------|:------------------|:------------|:---------|:----------------|:------|:---------|:---------|:---------|:----------|:------------|:---------| -| apecloud-mysql | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | ✔ | ✔ | ✔ | ✔ | -| elasticsearch | ✔ | ✔ | ✔ | ✔ | ✔ | | ✔ | | | | | | | -| greptimedb | ✔ | ✔ hscale
frontend, datanode | ✔ | ✔ | ✔ | | ✔ | | | | | | | -| kafka | ✔ | ✔ hscale out
broker | ✔ | ✔ | ✔ | | ✔ | ✔ | | | | | ✔ | -| milvus | ✔ | ✔ | ✔ | ✔ | ✔ | | ✔ | | | | | | | -| mongodb | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | | ✔ | ✔ | ✔ | -| nebula | ✔ | ✔ hscale
nebula-console, nebula-graphd, nebula-metad, nebula-storaged | ✔ | ✔ | ✔ | | ✔ | | | | | | | -| neon | ✔ | | | | | | | | | | | | | -| pika | -| postgresql | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | -| pulsar | ✔ | ✔ | ✔ | ✔ | ✔ | | ✔ | ✔ | | | | | ✔ | -| qdrant | ✔ | ✔ hscale out | ✔ | ✔ | ✔ | ✔ | ✔ | | | | | | ✔ | -| redis | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | ✔ | ✔ | | ✔ | -| risingwave | ✔ | ✔ hscale
frontend, compute | ✔ | ✔ | ✔ | | ✔ | | | | | | | -| starrocks | ✔ | ✔ hscale be | ✔ | ✔ | ✔ | | ✔ | | | | | | | -| tdengine | ✔ | ✔ | ✔ | ✔ | ✔ | | ✔ | | | | | | | -| weaviate | ✔ | ✔ hscale out | ✔ | ✔ | ✔ | | ✔ | ✔ | | | | | ✔ | +| v0.7.0 | version | Vscale | Hscale | Volumeexpand | Stop/Start | Restart | Backup/Restore | Logs | Config | Upgrade (DB engine version) | Account | Failover | Switchover | Monitor | +|---------------------------------------|-----------------------------------|--------|--------|--------------|------------|---------|----------------|------|--------|-----------------------------|---------|----------|------------|---------| +| apecloud-mysql | 8.0.30 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | N/A | ✔️ | ✔️ | ✔️ | ✔️ | +| clickhouse | 22.9.4 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | +| elasticsearch | 8.8.2 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | +| etcd | 3.5.6 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | +| foxlake | 0.2.0 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | +| ggml | N/A | | N/A | N/A | ✔️ | ✔️ | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | +| greptimedb | 0.3.2 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | +| kafka | 3.3.2 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | N/A | N/A | ✔️ | N/A | N/A | N/A | N/A | ✔️ | +| mariadb | 10.6.15 | ✔️ | N/A | ✔️ | ✔️ | ✔️ | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | +| milvus | 2.2.4 | ✔️ | N/A | ✔️ | ✔️ | ✔️ | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | +| mongodb | 4.0
4.2
4.4
5.0
5.0.20
6.0
sharding-5.0 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | N/A | N/A | ✔️ | ✔️ | ✔️ | +| mysql (Primary-Secondary replication) | 5.7.42
8.0.33 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | N/A | N/A | N/A | N/A | N/A | N/A | N/A | ✔️ | +| nebula | 3.5.0 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | +| neon | latest | ✔️ | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | +| oceanbase | 4.2.0.0-100010032023083021 | | ✔️ | ✔️ | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | +| official-postgresql | 12.15
14.7
14.7-zhparser | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | +| openldap | 2.4.57 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | +| opensearch | 2.7.0 | ✔️ | N/A | ✔️ | ✔️ | ✔️ | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | +| oracle-mysql | 8.0.32
8.0.32-perf | ✔️ | N/A | ✔️ | ✔️ | ✔️ | ✔️ | N/A | ✔️ | N/A | N/A | N/A | N/A | N/A | +| orioledb | beta1 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | +| polardb-x | 2.3 | ✔️ | ✔️ | N/A | ✔️ | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | ✔️ | +| postgresql | 12.14.0
12.14.1
12.15.0
14.7.2
14.8.0 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | +| pulsar | 2.11.2 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | N/A | N/A | ✔️ | N/A | N/A | N/A | N/A | ✔️ | +| qdrant | 1.5.0 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | N/A | N/A | N/A | N/A | N/A | N/A | ✔️ | +| redis | 7.0.6 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | N/A | ✔️ | ✔️ | N/A | ✔️ | +| risingwave | 1.0.0 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | +| starrocks | 3.1.1 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | +| tdengine | 3.0.5.0 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | +| vllm | N/A | N/A | N/A | N/A | ✔️ | ✔️ | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | +| weaviate | 1.18.0 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | N/A | N/A | ✔️ | N/A | N/A | N/A | N/A | ✔️ | +| zookeeper | 3.7.1 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | N/A | ✔️ | ✔️ | N/A | N/A | N/A | N/A | N/A | ## Use add-ons From affe1128693e3dee16d926ba8ef8e835ce48a542 Mon Sep 17 00:00:00 2001 From: yuanyuan zhang Date: Wed, 15 Nov 2023 10:50:30 +0800 Subject: [PATCH 2/6] docs: update docs --- .../upgrade/upgrade-kubeblocks-to-0.7.md | 12 ++++++++---- docs/user_docs/overview/supported-addons.md | 2 +- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/docs/user_docs/installation/upgrade/upgrade-kubeblocks-to-0.7.md b/docs/user_docs/installation/upgrade/upgrade-kubeblocks-to-0.7.md index 90c3931a22d..d8f4ac0fc2d 100644 --- a/docs/user_docs/installation/upgrade/upgrade-kubeblocks-to-0.7.md +++ b/docs/user_docs/installation/upgrade/upgrade-kubeblocks-to-0.7.md @@ -8,8 +8,12 @@ sidebar_label: Upgrade to KubeBlocks v0.7 # Upgrade to KubeBlocks v0.7 -Upgrade KubeBlocks from v0.6 to v0.7 only requires a command line. +**Steps:** -```bash -kbcli upgrade --version=0.7.0 -``` +1. [Install kbcli](./../install-with-kbcli/install-kbcli.md) and ensure the kbcli version is v0.7.0. + +2. Upgrade KubeBlocks from v0.6 to v0.7. + + ```bash + kbcli upgrade --version=0.7.0 + ``` diff --git a/docs/user_docs/overview/supported-addons.md b/docs/user_docs/overview/supported-addons.md index a54a87b1770..8eed4e99a16 100644 --- a/docs/user_docs/overview/supported-addons.md +++ b/docs/user_docs/overview/supported-addons.md @@ -47,7 +47,7 @@ KubeBlocks, as a cloud-native data infrastructure based on Kubernetes, providing ## Supported functions of add-ons -| v0.7.0 | version | Vscale | Hscale | Volumeexpand | Stop/Start | Restart | Backup/Restore | Logs | Config | Upgrade (DB engine version) | Account | Failover | Switchover | Monitor | +| Add-on (v0.7.0) | version | Vscale | Hscale | Volumeexpand | Stop/Start | Restart | Backup/Restore | Logs | Config | Upgrade (DB engine version) | Account | Failover | Switchover | Monitor | |---------------------------------------|-----------------------------------|--------|--------|--------------|------------|---------|----------------|------|--------|-----------------------------|---------|----------|------------|---------| | apecloud-mysql | 8.0.30 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | N/A | ✔️ | ✔️ | ✔️ | ✔️ | | clickhouse | 22.9.4 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | From 06ebeb45fd8b8b15f440b4394263e7c722fdb7ef Mon Sep 17 00:00:00 2001 From: yuanyuan zhang Date: Wed, 15 Nov 2023 17:06:04 +0800 Subject: [PATCH 3/6] docs: update command line --- .../user_docs/installation/upgrade/upgrade-kubeblocks-to-0.7.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/user_docs/installation/upgrade/upgrade-kubeblocks-to-0.7.md b/docs/user_docs/installation/upgrade/upgrade-kubeblocks-to-0.7.md index d8f4ac0fc2d..91ee0015a40 100644 --- a/docs/user_docs/installation/upgrade/upgrade-kubeblocks-to-0.7.md +++ b/docs/user_docs/installation/upgrade/upgrade-kubeblocks-to-0.7.md @@ -15,5 +15,5 @@ sidebar_label: Upgrade to KubeBlocks v0.7 2. Upgrade KubeBlocks from v0.6 to v0.7. ```bash - kbcli upgrade --version=0.7.0 + kbcli kubeblocks upgrade --version=0.7.0 ``` From a3373a7040b56bfe87bb79f1797837602c123dad Mon Sep 17 00:00:00 2001 From: yuanyuan zhang Date: Wed, 15 Nov 2023 18:40:11 +0800 Subject: [PATCH 4/6] docs: add kubeblocks logos --- docs/img/kubeblocks-logo-black-font.png | Bin 0 -> 63163 bytes docs/img/kubeblocks-logo-short-version.png | Bin 0 -> 15164 bytes docs/img/kubeblocks-logo-white-font.png | Bin 0 -> 60161 bytes 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/img/kubeblocks-logo-black-font.png create mode 100644 docs/img/kubeblocks-logo-short-version.png create mode 100644 docs/img/kubeblocks-logo-white-font.png diff --git a/docs/img/kubeblocks-logo-black-font.png b/docs/img/kubeblocks-logo-black-font.png new file mode 100644 index 0000000000000000000000000000000000000000..5df4a7c61f678c39ca0ecf65b176a174cb193be1 GIT binary patch literal 63163 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

BD&u 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 jIFSv!xD^5#bP0l+XkKC%MeD literal 0 HcmV?d00001 diff --git a/docs/img/kubeblocks-logo-short-version.png b/docs/img/kubeblocks-logo-short-version.png new file mode 100644 index 0000000000000000000000000000000000000000..9dc582484466bb2851e14cf650538ccdbee00ebe GIT binary patch literal 15164 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 literal 0 HcmV?d00001 diff --git a/docs/img/kubeblocks-logo-white-font.png b/docs/img/kubeblocks-logo-white-font.png new file mode 100644 index 0000000000000000000000000000000000000000..a5573a1084a4ae7053e2f927f421633851dcd378 GIT binary patch literal 60161 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

  • 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 literal 0 HcmV?d00001 From 51eb95f3d823d016f1410f003252029b5af76819 Mon Sep 17 00:00:00 2001 From: yuanyuan zhang Date: Thu, 16 Nov 2023 11:52:04 +0800 Subject: [PATCH 5/6] docs: fix invalid links --- .../external-component/reference-external-component.md | 2 +- docs/user_docs/backup-and-restore/introduction.md | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/docs/developer_docs/external-component/reference-external-component.md b/docs/developer_docs/external-component/reference-external-component.md index 50dfc4ace36..8a304e81722 100644 --- a/docs/developer_docs/external-component/reference-external-component.md +++ b/docs/developer_docs/external-component/reference-external-component.md @@ -41,7 +41,7 @@ A KubeBlocks Pulsar cluster is composed of components including proxy, broker, b :::note -For more information about the KubeBlocks Pulsar cluster, refer to [KubeBlocks for Pulsar](./../kubeblocks-for-pulsar/cluster-management/create-pulsar-cluster-on-kubeblocks.md). +For more information about the KubeBlocks Pulsar cluster, refer to [KubeBlocks for Pulsar](./../../user_docs/kubeblocks-for-pulsar/cluster-management/create-pulsar-cluster-on-kubeblocks.md). ::: diff --git a/docs/user_docs/backup-and-restore/introduction.md b/docs/user_docs/backup-and-restore/introduction.md index 88632beef58..41c9c0a9d60 100644 --- a/docs/user_docs/backup-and-restore/introduction.md +++ b/docs/user_docs/backup-and-restore/introduction.md @@ -18,11 +18,10 @@ KubeBlocks adopts physical backup which takes the physical files in a database a * [Scheduled backup](./backup/scheduled-backup.md): You can specify retention time, backup method, time, and other parameters to [customize your backup schedule](./backup/scheduled-backup.md#backup-by-schedule). Or you can backup your data automatically [by log](./backup/scheduled-backup.md#backup-automatically-by-log). Log backup uses the incremental log files generated by backing up the database, such as MySQL BinLog and PostgreSQL WAL, and it can also be called incremental backup. Point-in-time recovery (PITR) relies on log backup. -As for the restore function, KubeBlocks supports restoring data from the backup set and PITR. +As for the restore function, KubeBlocks supports restoring data from the backup set. * Restore * [Restore data from the backup set](./restore/restore-data-from-backup-set.md) - * [PITR](./restore/pitr.md) The backup and restore function for different database engines varies: From db3579710da374d10110d2fc948bd47f74c327f9 Mon Sep 17 00:00:00 2001 From: yuanyuan zhang Date: Thu, 16 Nov 2023 11:52:46 +0800 Subject: [PATCH 6/6] docs: fix invalid links --- docs/user_docs/backup-and-restore/backup/backup-repo.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/user_docs/backup-and-restore/backup/backup-repo.md b/docs/user_docs/backup-and-restore/backup/backup-repo.md index 86f11845020..c6b712474f4 100644 --- a/docs/user_docs/backup-and-restore/backup/backup-repo.md +++ b/docs/user_docs/backup-and-restore/backup/backup-repo.md @@ -19,10 +19,10 @@ You can create multiple BackupRepos to suit different scenarios. For example, ba Make sure you have all the following prepared. -* [Install kbcli](./../installation/install-with-kbcli/install-kbcli.md) +* [Install kbcli](./../../installation/install-with-kbcli/install-kbcli.md) * [Install kubectl](https://kubernetes.io/docs/tasks/tools/#kubectl) * [Install Helm](https://helm.sh/docs/intro/install/) -* [Install KubeBlocks](./..installation/install-with-helm/install-kubeblocks-with-helm.md) +* Install KubeBlocks by [kbcli](./../../installation/install-with-kbcli/install-kubeblocks-with-kbcli.md) or by [Helm](./../../installation/install-with-helm/install-kubeblocks-with-helm.md) ## Install MinIO