confluentinc / cp-helm-charts

The Confluent Platform Helm charts enable you to deploy Confluent Platform services on Kubernetes for development, test, and proof of concept environments.
https://cnfl.io/getting-started-kafka-kubernetes
Apache License 2.0
790 stars 843 forks source link

Ingresses for services #119

Open maver1ck opened 6 years ago

maver1ck commented 6 years ago

Please create ingress template and configuration for:

taylorsmithgg commented 6 years ago

It would also be nice to have Ingress available for kafka and zookeeper as well.

kurktchiev commented 6 years ago

So the issue with this as I see it is that most ingress controllers are setup to do HTTP(s) load balancing and forwarding. In order to get Kafka and Zookeeper to work there is a need of a TCP LB, which only some of the ingress controllers support. The official Kubernetes Nginx based one supports it somewhat, the official nginx.org one currently does not, and there are some HAProxy ones that do. So basically TCP LB is not really well defined in Kubernetes imo and leads to many things like this, DBaaS or more or less anything non HTTP related :(

Someone feel free to correct me.

salehmashal commented 5 years ago

@kurktchiev I agree with you, but now istio has these features but I don't know if the sidecar proxy (ex. envoy) is compatible with kafka protocol or not. If it's compatible, it will be a great not only for exposing kafka-connect, kafka-rest and kafka-registry but even controlling the communication with kafka from security perspective and traceability of the communication.

qshao-pivotal commented 5 years ago

it's not done yet. https://github.com/envoyproxy/envoy/issues/2852. I would agree with adding ingress controller for Kafka REST at current stage. Since exposing Kafka on k8s to outside(without DNS) is still tricky. Using Kafka REST Proxy seems to be the most ideal/cleanest way for apps sitting outside of k8s.