Discovery
The Stackable Operator for Apache HBase publishes a discovery ConfigMap, which exposes a client configuration bundle that allows access to the Apache HBase cluster.
Example
Given the following HBase cluster:
apiVersion: hbase.stackable.tech/v1alpha1
kind: HbaseCluster
metadata:
name: {cluster-name} (1)
namespace: {namespace} (2)
spec:
clusterConfig:
hdfsConfigMapName: {hdfs-cluster-name} (3)
zookeeperConfigMapName: {zookeeper-znode-name} (4)
1 | The name of the HBase cluster, which is also the name of the created discovery ConfigMap. |
2 | The namespace of the discovery ConfigMap. |
3 | The ConfigMap name to discover the HDFS cluster. |
4 | The ConfigMap name to discover the ZooKeeper ZNode. |
The resulting discovery ConfigMap is located at {namespace}/{cluster-name}
.
Contents
The ConfigMap data values are formatted as Hadoop XML files which allows simple mounting of that ConfigMap into pods that require access to HBase.
hbase-site.xml
-
Contains the needed information to connect to Zookeeper and use that to establish a connection to HBase.
Kerberos
In case Kerberos is enabled according to the security documentation, the discovery ConfigMap also includes the information that clients must authenticate themselves using Kerberos.
If you want to use the discovery ConfigMap outside Stackable services, you need to substitute ${env.KERBEROS_REALM}
with your actual realm (e.g. by using sed -i -e 's/${{env.KERBEROS_REALM}}/'"$KERBEROS_REALM/g" hbase-site.xml
).
One example would be the property hbase.master.kerberos.principal
being set to hbase/hbase.default.svc.cluster.local@${env.KERBEROS_REALM}
.