vmware-archive / kubeless

Kubernetes Native Serverless Framework
https://kubeless.io
Apache License 2.0
6.86k stars 755 forks source link

Kafka Trigger only firing orignal function pod #807

Open dap332 opened 6 years ago

dap332 commented 6 years ago

Brief Summary: I have deployed a kubeless function as well as a Kafka deployment via instructions on Kubeless docs. I created a Kafka trigger to to fire my kubeless. function. Works as normal. I decided to scale my kubless depolyment to 3 pods instead of just one. Kafka events only trigger the original kubeless function pod rather than 3.

What you expected to happen: I would expect the trigger to fire all 3 pods of the kubeless function, or some command to scale the pods manually and attach the trigger to them

How to reproduce it : In a k8s cluster with a pvc and kubeless you need to:

Environment:

murali-reddy commented 6 years ago

I am not able reproduce this issue on Minikube or on AWS cluster. As I understand @sebgoa is able to reproduce as well. From kubeless side it just creating a Kubernetes service for each function deployment. So it got to do with how kube-proxy is load balancing the requests. Also use of Kafka as event source is not necessarily causing this issue. You might as well observe similar behaviour if you do kubeless function call.

If you can please try a sample Kubernetes service outside of Kubeless and see how service is getting load balanced.

dap332 commented 6 years ago

I have made a repository that automates the deployment (and cleanup) of my cluster, its dependencies (kubeless, kafka, resources, cassandra). And a small test client script. This may help reproduce the error.

Note this is still very raw, and the shell scripts may not work perfectly on other machines has I have not tested on other devices or k8s clusters.

Repo can be found here. https://github.com/dap332/k8s-kafka-cql-kubeless_Stack