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.
Oxia
Oxia is an experimental metadata store and coordination system that can back Pulsar metadata when your Private Cloud release supports it. Configure Oxia withOxiaCluster, OxiaNamespace, and StorageCatalog resources.
For the Oxia example manifest and supported fields, see Configure Oxia.
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.