superstreamlabs/memphis-k8s

Why does the memphis statefulset use host ports?

Closed this issue · 4 comments

As the title suggests. Currently there is no way to disable this.

Hi @TroyKomodo, we use hostport to assign dedicated ports for Memphis on the node and eliminate "noisy neighbors" as much as possible.
Why would you like to change it and for what reason? (Its not advised to run number of memphis brokers on the same node, only for test purposes)

I see. I understand that binding to host forces the pods to be places on separate nodes.
However I would like to run a development 3 node cluster so that I can test replication and fault tolerance before deploying. Or test it locally with microk8s. From what I've seen the docs don't mention a way to deploy Memphis in cluster mode without k8s.

Another reason for disabling is security. Normally any application inside the cluster is only ever accessible through a cluster proxy or a loadbalancer or a known open port that has been explicitly exposed. I know that the port will still likely be blocked by the firewall infront of the node however that shouldn't be taken for granted.

I think at minimum there should be an option in the values.yaml to disable host port binding.

Thanks for the input, we will add a new value to the values file that will allow service port definition.

@TroyKomodo Released in version 1.2.0.