Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Expose master + regionservers ui via NodePort Service #239

Open
sbernauer opened this issue Sep 1, 2022 · 8 comments
Open

Expose master + regionservers ui via NodePort Service #239

sbernauer opened this issue Sep 1, 2022 · 8 comments

Comments

@sbernauer
Copy link
Member

sbernauer commented Sep 1, 2022

Currently stackablectl shows the following services:

stackablectl services list 
 PRODUCT    NAME       NAMESPACE  ENDPOINTS                             EXTRA INFOS 
                                                                                    
 hbase      hbase      default    regionserver 172.18.0.3:30025                     
                                  ui           http://172.18.0.3:30164              
                                  metrics      172.18.0.3:30447                     
                                                                                    
 hdfs       hdfs       default                                                      
                                                                                    
 zookeeper  zookeeper  default    zk           172.18.0.5:31384

There are clearly some services missing.
A task for refinement is to research what UIs should be accessible. We already know that there should be one endpoint per RegionServer. All RegionServers must be reachable individually.

Additional information

k get svc | grep hbase
hbase                        NodePort    10.96.252.49    <none>        16020:30025/TCP,16030:30164/TCP,8081:30447/TCP                11m
hbase-master-default         ClusterIP   None            <none>        16000/TCP,16010/TCP,8081/TCP                                  11m
hbase-regionserver-default   ClusterIP   None            <none>        16020/TCP,16030/TCP,8081/TCP                                  11m

k describe svc hbase hbase-master-default hbase-regionserver-default
Name:                     hbase
Namespace:                default
Labels:                   app.kubernetes.io/component=regionserver
                          app.kubernetes.io/instance=hbase
                          app.kubernetes.io/managed-by=hbase-operator
                          app.kubernetes.io/name=hbase
                          app.kubernetes.io/role-group=global
                          app.kubernetes.io/version=2.4.12-stackable0.2.0
Annotations:              <none>
Selector:                 app.kubernetes.io/component=regionserver,app.kubernetes.io/instance=hbase,app.kubernetes.io/name=hbase
Type:                     NodePort
IP Family Policy:         SingleStack
IP Families:              IPv4
IP:                       10.96.252.49
IPs:                      10.96.252.49
Port:                     regionserver  16020/TCP
TargetPort:               16020/TCP
NodePort:                 regionserver  30025/TCP
Endpoints:                10.244.1.79:16020,10.244.3.88:16020
Port:                     ui  16030/TCP
TargetPort:               16030/TCP
NodePort:                 ui  30164/TCP
Endpoints:                10.244.1.79:16030,10.244.3.88:16030
Port:                     metrics  8081/TCP
TargetPort:               8081/TCP
NodePort:                 metrics  30447/TCP
Endpoints:                10.244.1.79:8081,10.244.3.88:8081
Session Affinity:         None
External Traffic Policy:  Cluster
Events:                   <none>


Name:              hbase-master-default
Namespace:         default
Labels:            app.kubernetes.io/component=master
                   app.kubernetes.io/instance=hbase
                   app.kubernetes.io/managed-by=hbase-operator
                   app.kubernetes.io/name=hbase
                   app.kubernetes.io/role-group=default
                   app.kubernetes.io/version=2.4.12-stackable0.2.0
                   prometheus.io/scrape=true
Annotations:       <none>
Selector:          app.kubernetes.io/component=master,app.kubernetes.io/instance=hbase,app.kubernetes.io/name=hbase,app.kubernetes.io/role-group=default
Type:              ClusterIP
IP Family Policy:  SingleStack
IP Families:       IPv4
IP:                None
IPs:               None
Port:              master  16000/TCP
TargetPort:        16000/TCP
Endpoints:         10.244.3.87:16000
Port:              ui  16010/TCP
TargetPort:        16010/TCP
Endpoints:         10.244.3.87:16010
Port:              metrics  8081/TCP
TargetPort:        8081/TCP
Endpoints:         10.244.3.87:8081
Session Affinity:  None
Events:            <none>


Name:              hbase-regionserver-default
Namespace:         default
Labels:            app.kubernetes.io/component=regionserver
                   app.kubernetes.io/instance=hbase
                   app.kubernetes.io/managed-by=hbase-operator
                   app.kubernetes.io/name=hbase
                   app.kubernetes.io/role-group=default
                   app.kubernetes.io/version=2.4.12-stackable0.2.0
                   prometheus.io/scrape=true
Annotations:       <none>
Selector:          app.kubernetes.io/component=regionserver,app.kubernetes.io/instance=hbase,app.kubernetes.io/name=hbase,app.kubernetes.io/role-group=default
Type:              ClusterIP
IP Family Policy:  SingleStack
IP Families:       IPv4
IP:                None
IPs:               None
Port:              regionserver  16020/TCP
TargetPort:        16020/TCP
Endpoints:         10.244.1.79:16020,10.244.3.88:16020
Port:              ui  16030/TCP
TargetPort:        16030/TCP
Endpoints:         10.244.1.79:16030,10.244.3.88:16030
Port:              metrics  8081/TCP
TargetPort:        8081/TCP
Endpoints:         10.244.1.79:8081,10.244.3.88:8081
Session Affinity:  None
Events:            <none>
@lfrancke
Copy link
Member

lfrancke commented Dec 8, 2022

Actually: There should be one endpoint per RegionServer. All RegionServers must be reachable individually

@sbernauer sbernauer changed the title Expose master web-ui via NodePort Service Expose master + regionservers ui via NodePort Service Dec 9, 2022
@sbernauer
Copy link
Member Author

Updated ticket. Moved researching what is needed to refinement (as I'm no hbase expert, feel free to put requirements in)

@chaicesan
Copy link

Any updates on this ticket? If not then what updates would be involved to make this happen?

@lfrancke
Copy link
Member

Hi @chaicesan thanks for your interest, unfortunately the answer is "it's complicated" :(
We need some preliminary work in our framework for this which we have scheduled for around April and only then can we get to this.

@chaicesan
Copy link

Thanks for your response @lfrancke. Could I also get some information about the stackable project and how it's run? Is all communication via github issues or is there a DM platform like slack available too (just a preference for me)? This is a project that I am looking into and experimenting with a lot and I often have questions and don't necessarily want to create an issue for each one.

@Jimvin
Copy link
Member

Jimvin commented Mar 2, 2023

I agree discussion often makes more sense outside of GitHub issues and we have recently created a Stackable Community Discord server. You can follow this invite link to join the server - https://discord.gg/7jdYQbt8

@lfrancke
Copy link
Member

lfrancke commented Mar 8, 2023

And if you have any other questions just reach out to [email protected] and one of us will get back to you

@nightkr
Copy link
Member

nightkr commented Jan 29, 2025

The connection info it writes to ZK also only seems to contain the cluster-internal address, even when using listenerclass: external-unstable.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants