Skip to content

Commit 5f7d844

Browse files
fhennignightkr
andauthored
Update modules/contributor/pages/adr/ADR024-out-of-cluster_access.adoc
Co-authored-by: Teo Klestrup Röijezon <teo@nullable.se>
1 parent d1a7e8a commit 5f7d844

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

modules/contributor/pages/adr/ADR024-out-of-cluster_access.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ Technical Story: https://github.com/stackabletech/listener-operator/pull/1
1818
Eventually, the products we host in Kubernetes will need to be accessed from outside of the cluster, as this is where the client is. Our current solution for this is NodePort services. They are a simple and common solution for on-premise clusters, where nodes are reachable hosts in the local network. To get traffic into a Kubernetes cluster that runs in a public cloud, NodePorts do not work; instead LoadBalancers are the preferred solution.
1919

2020
But both NodePorts and LoadBalancers have their individual problems for certain applications.
21-
While a Pods name is stable across restarts and rescheduling, the IP and port of the NodePort can change if a Pod is rescheduled to a different node. This means that external addresses from simple NodePorts are not stable.
21+
While a Pods name is stable across restarts and rescheduling, the IP of the NodePort can change if a Pod is rescheduled to a different node. This means that external addresses from simple NodePorts are not stable.
2222
If a LoadBalancer is used to connect to a StatefulSet, the individual replicas in the set are not individually addressable anymore as they are with NodePorts. Some products need to be able to link to _specific_ replicas in a StatefulSet, as they shard data across process instances, across nodes. Therefore the nodes need to also be individually reachable from outside of the cluster.
2323

2424
Additionally, Pods currently do not know the address under which they are reachable from outside of the cluster, no matter if NodePorts or LoadBalancers are used. While this is not a problem for simple web UIs, it is a problem for products that do their own "routing", like HDFS or Kafka. These products will link to other nodes to point clients to specific data that only exists in specific nodes. These links cannot be constructed if the addresses under which nodes are reachable are not known to the product.

0 commit comments

Comments
 (0)