PulsarCoordinator
PulsarCoordinator manages an entire pulsar cluster using the underlying APIs of ZooKeeperCluster/BookKeeperCluster/PulsarBroker/PulsarProxy. It doesn’t create these resources but only reference these resources using labels. It provides cluster-wide high level configurations and reconciliations.
To provision a PulsarCoordinator instance, you need to create it through the PulsarCoordinator:
- [1] metadata.name: Required. The PulsarCoordinator instance name.
- [2] metadata.namespace: Required. The namespace where the PulsarCoordinator instance is installed.
- [3] spec.image: Required. The version of the PulsarCoordinator instance image.
ZooKeeper
ZooKeeperCluster manages a set of zookeeper nodes of the same zookeeper cluster. To provision zookeeper nodes, you need to create it through the ZooKeeperCluster CR:
- [1] metadata.name: Required. The ZooKeeperCluster instance name.
- [2] metadata.namespace: Required. The namespace where the ZooKeeperCluster instance is installed.
- [3] metadata.labels.k8s.streamnative.io/coordinator-name: Required. The PulsarCoordinator instance name. The ZooKeeperCluster instance connects to the PulsarCoordinator instance to watch some configurations.
- [4] spec.image: Required. The version of the ZooKeeperCluster instance image.
- [5] spec.replicas: Required. The number of ZooKeeperCluster instances to be deployed.
- [6] spec.pod.resources.requests.cpu: Optional. The minimum amount of required CPU resources.
- [7] spec.pod.resources.requests.memory: Optional. The minimum amount of required memory resources.
- [6] spec.pod.persistence.data.resources.requests.storage: Optional. The minimum amount of required storage.
- [7] spec.pod.persistence.dataLog.resources.requests.storage: Optional. The minimum amount of required storage for data logs.
BookKeeper
BookKeeperCluster manages a set of bookie and recovery nodes of the same bookkeeper cluster. To provision bookie nodes, you need to create it through the BookKeeperCluster CR:
- [1] metadata.name: Required. The BookKeeperCluster instance name.
- [2] metadata.namespace: Required. The namespace where the BookKeeperCluster instance is installed.
- [3] metadata.labels.k8s.streamnative.io/coordinator-name: Required. The PulsarCoordinator instance name. The BookKeeperCluster instance connects to the PulsarCoordinator instance to watch some configurations.
- [4] spec.image: Required. The version of the BookKeeperCluster instance image.
- [5] spec.replicas: Required. The number of the BookKeeperCluster instances to be deployed.
- [6] spec.zkServers: Required. The IP address of the ZooKeeperCluster instance. The BookKeeperCluster instance communicates with the ZooKeeperCluster instance using this IP address.
- [7] spec.pod.resources.requests.cpu: Optional. The minimum amount of required CPU resources.
- [8] spec.pod.resources.requests.memory: Optional. The minimum amount of required memory resources.
- [9] spec.pod.storage.journal.volumeClaimTemplate.resources.requests.storage: Optional. The BookKeeperCluster instance journal storage requested store size.
- [10] spec.pod.storage.ledger.volumeClaimTemplate.resources.requests.storage: Optional. The BookKeeperCluster instance ledger storage requested store size.
Pulsar Broker
PulsarBroker manages a set of brokers nodes of the same broker cluster. To provision brokers nodes, you need to create it through the PulsarBroker CR:
- [1] metadata.name: Required. The PulsarBroker instance name.
- [2] metadata.namespace: Required. The namespace where the PulsarBroker instance is installed.
- [3] metadata.labels.k8s.streamnative.io/coordinator-name: Required. The PulsarCoordinator instance name. The PulsarBroker instance connects to the PulsarCoordinator instance to watch some configurations.
- [4] spec.image: Required. The version of the PulsarBroker instance image.
- [5] spec.replicas: Required. The number of the PulsarBroker instanced to be deployed.
- [6] spec.zkServers: Required. The IP address of the ZooKeeperCluster instance. The PulsarBroker instance communicates with the ZooKeeperCluster instance using this IP address.
- [7] spec.pod.resources.requests.cpu: Optional. The minimum amount of required CPU resources.
- [8] spec.pod.resources.requests.memory: Optional. The minimum amount of required memory resources.
Pulsar Proxy
PulsarProxy manages a set of proxy nodes of the same proxy cluster. To provision proxy nodes, you need to create it through the `PulsarProxy“ CR:
- [1] metadata.name: Required. The PulsarProxy instance name.
- [2] metadata.namespace: Required. The namespace where the PulsarProxy instance is installed.
- [3] metadata.labels.k8s.streamnative.io/coordinator-name: Required. The PulsarCoordinator instance name. The PulsarProxy instance connects to the PulsarCoordinator instance to watch some configurations.
- [4] spec.image: Required. The version of the PulsarProxy instance image.
- [5] spec.replicas: Required. The number of the PulsarProxy instances to be deployed.
- [6] spec.brokerAddress: Required. The IP address of the PulsarBroker instance. The PulsarProxy instance communicates with the PulsarBroker instance using this IP address.
- [7] spec.pod.resources.requests.cpu: Optional. The minimum amount of required CPU resources.
- [8] spec.pod.resources.requests.memory: Optional. The minimum amount of required memory resources.
Console
Console manages the Pulsar cluster management console instance. To provision console instance, you need to create it through the Console CR:
- [1] metadata.name: Required. The Console instance name.
- [2] metadata.namespace: Required. The namespace where the PulsarProxy instance is installed.
- [3] metadata.labels.k8s.streamnative.io/coordinator-name: Required. The PulsarCoordinator instance name. The PulsarProxy instance connects to the PulsarCoordinator instance to watch some configurations.
- [4] spec.image: Required. The version of the Console instance image.
- [5] spec.webServiceUrl: Required. The web service address of the PulsarBroker instance.