Skip to content

Hbase LoadBalancer ports are mapped wrong #698

@Maleware

Description

@Maleware

Affected Stackable version

25.7.0

Affected Apache HBase version

2.6.2-stackable25.7.0

Current and expected behavior

Setup

We have a cluster on Ionos ( reproduceable on kind using cloud-provider-kind ) with public exposition of nodes enabled. We want to expose hbase-master's ui-https or ui-http endpoints to the world using a LoadBalancer wrapped into a custom listenerClass:

---
apiVersion: listeners.stackable.tech/v1alpha1
kind: ListenerClass
metadata:
  name: lb-stable
spec:
  serviceType: LoadBalancer

we get a service as expected:

stackable-products  hbase-master-default-0-listener          LoadBalancer  100.64.20.247  217.154.164.205  master:16000►30091 ui-http:16010►32301

using this manifest (pre-requisites are met e.g. HDFS and ZK ):

---
apiVersion: zookeeper.stackable.tech/v1alpha1
kind: ZookeeperZnode
metadata:
  name: hbase-znode
  namespace: stackable-products
spec:
  clusterRef:
    name: zookeeper
---
apiVersion: hbase.stackable.tech/v1alpha1
kind: HbaseCluster
metadata:
  name: hbase
  namespace: stackable-products
spec:
  image:
    productVersion: 2.6.2
  clusterConfig:
    hdfsConfigMapName: simple-hdfs
    zookeeperConfigMapName: hbase-znode
  masters:
    config:
      listenerClass: lb-stable  # <-- ListenerClass used for master
      logging:
        enableVectorAgent: true
        containers:
          hbase:
            console:
              level: NONE
          vector:
            console:
              level: NONE
    roleGroups:
      default:
        replicas: 1
  regionServers:
    config:
      logging:
        enableVectorAgent: true
        containers:
          hbase:
            console:
              level: NONE
          vector:
            console:
              level: NONE
    roleGroups:
      default:
        replicas: 2
    configOverrides:
      hbase-site.xml:
        hbase.coprocessor.region.classes: tech.stackable.hbase.OpenPolicyAgentAccessController,org.apache.hadoop.hbase.security.token.TokenProvider

However, Hbase remains unavailable. I will only outline the http-ui example, same is true if Tls is enabled.

Current situation

Shelling into the Hbase masters pod reveals the following:

stackable@hbase-master-default-0 /stackable/hbase-2.6.2-stackable25.7.0 $ cat ../listener/default-address/address
217.154.164.189

and

 cat ../listener/default-address/ports/ui-http
16010

where the latter is the wrong port from the LoadBalancer.

Expected Situation

I'd expect the LB port 32301 being present in the pod.

Possible solution

No response

Additional context

Kafka would do it correct finding this situation ( with the same listenerClass )

stackable-products  kafka-broker-default-bootstrap           LoadBalancer  100.64.33.254   217.154.164.190   bootstrap:9095►31102 kafka-tls:9093►31541 metrics:9606►30484

Checking the kafka pod reveals:

stackable@kafka-broker-default-0 /stackable/kafka_2.13-3.9.0-stackable25.7.0 $ cat ../listener-bootstrap/default-address/ports/bootstrap
9095

Environment

No response

Would you like to work on fixing this bug?

None

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions