Service exposition with ListenerClasses
The operator deploys a Listener for each DataNode and NameNode pod.
They both default to only being accessible from within the Kubernetes cluster, but this can be changed by setting .spec.{data,name}Nodes.config.listenerClass
.
Note that JournalNodes are not accessible from outside the Kubernetes cluster.
The cluster can be configured to be accessible from outside of Kubernetes like this:
spec:
dataNodes:
config:
listenerClass: external-unstable (1)
nameNodes:
config:
listenerClass: external-stable (2)
1 | DataNode listeners should prioritize having a direct connection, to minimize network transfer overhead. |
2 | NameNode listeners should prioritize having a stable address, since they are baked into the client configuration. |