github.com/1aal/kubeblocks@v0.0.0-20231107070852-e1c03e598921/docs/user_docs/kubeblocks-for-pulsar/cluster-management/create-pulsar-cluster-on-kubeblocks.md (about) 1 --- 2 title: Create Pulsar Cluster on KubeBlocks 3 description: How to Create Pulsar Cluster on KubeBlocks 4 keywords: [pulsar, create cluster] 5 sidebar_position: 1 6 sidebar_label: Create 7 --- 8 9 ## Introduction 10 11 KubeBlocks can quickly integrate new engines through good abstraction. The functions tested in KubeBlocks include Pulsar cluster creation and deletion, vertical and horizontal scaling of Pulsar cluster components, storage expansion, restart, and configuration changes. 12 13 KubeBlocks supports Pulsar's daily operations, including basic lifecycle operations such as cluster creation, deletion, and restart, as well as advanced operations such as horizontal and vertical scaling, storage expansion, configuration changes, and monitoring. 14 15 ## Environment Recommendation 16 17 Refer to the Pulsar official document for the configuration, such as memory, cup, and storage, of each component. 18 19 | Components | Replicas | 20 | :-------------------- | :------------------------------------------------------------------------ | 21 | zookeeper | 1 for test environment or 3 for production environment | 22 | bookies | at lease 3 for test environment, at lease 4 for production environment | 23 | broker | at least 1, for production environment, 3 replicas recommended | 24 | recovery (Optional) | 1; if autoRecovery is not enabled for bookie, at least 3 replicas needed | 25 | proxy (Optional) | 1; and for production environment, 3 replicas needed | 26 27 ## Create Pulsar cluster 28 29 1. Create the Pulsar cluster template file `values-production.yaml` for `helm` locally. 30 31 Copy the following information to the local file `values-production.yamlCre`. 32 33 ```bash 34 ## Bookies configuration 35 bookies: 36 resources: 37 limits: 38 memory: 8Gi 39 requests: 40 cpu: 2 41 memory: 8Gi 42 43 persistence: 44 data: 45 storageClassName: kb-default-sc 46 size: 128Gi 47 log: 48 storageClassName: kb-default-sc 49 size: 64Gi 50 51 ## Zookeeper configuration 52 zookeeper: 53 resources: 54 limits: 55 memory: 2Gi 56 requests: 57 cpu: 1 58 memory: 2Gi 59 60 persistence: 61 data: 62 storageClassName: kb-default-sc 63 size: 20Gi 64 log: 65 storageClassName: kb-default-sc 66 size: 20Gi 67 68 broker: 69 replicaCount: 3 70 resources: 71 limits: 72 memory: 8Gi 73 requests: 74 cpu: 2 75 memory: 8Gi 76 ``` 77 78 2. Create cluster. 79 80 - **Option 1**: (**Recommended**) Create pulsar cluster by `values-production.yaml` and enable monitor. 81 Configuration: 82 - broker: 3 replicas 83 - bookies: 4 replicas 84 - zookeeper: 3 replicas 85 86 ```bash 87 helm install pulsar kubeblocks/pulsar-cluster --version "0.6.0-beta.11" -f values-production.yaml --set monitor.enabled=true 88 ``` 89 90 - **Option 2**: Create pulsar cluster with proxy. 91 Configuration: 92 - proxy: 3 replicas 93 - broker: 3 replicas 94 - bookies: 4 replicas 95 - zookeeper: 3 replicas 96 97 ```bash 98 helm install pulsar kubeblocks/pulsar-cluster --version "0.6.0-beta.11" -f values-production.yaml --set proxy.enable=true --set monitor.enabled=true 99 ``` 100 101 - **Option 3**: Create pulsar cluster with proxy and deploy `bookies-recovery` component. 102 Configuration: 103 - proxy: 3 replicas 104 - broker: 3 replicas 105 - bookies: 4 replicas 106 - zookeeper: 3 replicas 107 - bookies-recovery: 3 replicas 108 109 ```bash 110 helm install pulsar kubeblocks/pulsar-cluster --version "0.6.0-beta.11" -f values-production.yaml --set proxy.enable=true --set bookiesRecovery.enable=true --set monitor.enabled=true 111 ``` 112 113 - **Option 4**: Create pulsar cluster and specify bookies and zookeeper storage parameters. 114 Configuration: 115 - broker: 3 replicas 116 - bookies: 4 replicas 117 - zookeeper: 3 replicas 118 119 ```bash 120 helm install pulsar kubeblocks/pulsar-cluster --version "0.6.0-beta.11" -f values-production.yaml --set bookies.persistence.data.storageClassName=<sc name>,bookies.persistence.log.storageClassName=<sc name>,zookeeper.persistence.data.storageClassName=<sc name>,zookeeper.persistence.log.storageClassName=<sc name> --set monitor.enabled=true 121 ``` 122 123 You can specify the storage name `<sc name>`. 124 125 3. Verify the cluster created. 126 127 ```bash 128 kubectl get cluster pulsar 129 ``` 130 131 When the status is Running, the cluster is created successfully.