-
Notifications
You must be signed in to change notification settings - Fork 730
addon: Schema registry and REST proxy #45
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
e2ed158
to
5ef4e91
Compare
with container configuration, as Kubernetes creates the env SCHEMA_REGISTRY_PORT if the service has been created first.
I'm not getting the expected behavior. Might also be because of low resources on minikube, but 3.3.0 should only be a few days away.
also the sample is from schema-registry.properties while kafka-rest had only the stdout appender (and no per-package levels)
both zookeeper and bootstrap addresses. Was getting connection errors to localhost:9092 broker id -1, resulting in REST requests never returning.
Use config files and kafka-jre based build for Confluent Platform services
Status now is that I think both Schema Registry and REST works. I've tested with fluent/fluent-bit-kubernetes-logging#6 and scaled Remaining work:
|
@solsson ... thanks for your work on this. I had been searching around for a kubernetes implementation of the confluent ecosystem and had been wanting to get kafka-connect and potentially KSQL in a kubernetes context. I happened upon this from https://github.com/Yolean/confluent-quickstart-kubernetes .. which I have played with in the past. Is the plan to merge this soon? To get this running in its current state ... is the idea to run |
I actually aborted that, because the quickstart is very geared towards
Yes, this PR requires no changes to core kafka or zookeeper resources -- pretty clean "addon". |
Thanks @solsson
Previously (ie. not within kubernetes), I was experimenting around running kafka-connect in conjunction with some of the debezium connectors and landoop UI components ... all working from a single docker-compose. I'm now keen to try to emulate that environment on kubernetes ... a blunt way of doing that might be to use kompose to do that with the existing compose file ... but I suspect that's not going to be that stable ... hence I was interested in the approach you are taking here. I'm also keen to see how |
Yes, those are the steps, ideally :) We're very excited about KSQL too. Waiting for Kafka 1.0 before I experiment with that though. There's a branch from this branch for Kafka Connect: https://github.com/Yolean/kubernetes-kafka/compare/addon-rest...addon-connect?expand=1. It's rather untested, hence no PR yet. Would be interesting to hear your results from |
@solsson Can I ask why you create your own confluent-platform images ... like I don't have much experience with maven, but if you were to go about enabling KSQL .. would you use something like this to inform a build for an image that has KSQL on board ... and build it akin to how you have done the connect-jdbc image? Would you then structure it to run in an independed pod on kubernetes ... as you have done for connect with the Thanks again. Your insights are greatly valued. |
This repository reflects how we use Kafka at Yolean. We started using it only as backend for the collaborative part of our app, but the "streaming platform" principles that Confluent advocates is increasingly influencing our microservices design. Hence we're experimenting with the entire Kafka ecosystem now, but haven't stabilized those parts. The reason for keeping PRs unmerged is that I wanted the bare bones setup to stay simple. But... I should probably re-brand this repo to something like Confluent Platform "for Kubernetes". Back when we set up our first Kafka cluster - and our ops is "Kubernetes only" - it was difficult to find community resources on Kafka and StatefulSet, but now there's semi-official helm charts, several git repos with similar scope as this, and blog posts like http://blog.kubernetes.io/2017/09/kubernetes-statefulsets-daemonsets.html. Confluent's documentation on the other hand doesn't afaik mention Kubernetes, and overall it's quite geared towards enterprise setups rather than startups like us. Which leads to the next question...
This is a difficult choice. I've sort of concluded that any organization that grows with a Kubernets+Kafka setup will switch to their own images. For example to add any 3rd party (non-confluent) connectors you'll have to figure out how to build them and place the resulting jars in your kafka connect image. Other reasons:
|
Hadn't looked at the sources before... Unlike the quickstart we'd have to go directly for https://github.com/confluentinc/ksql/blob/0.1.x/docs/concepts.md#client-server-mode as "same JVM" would be impractical in k8s. I'd have to try and build it to confirm your guess, but it does have a bin folder and a package assembly like the other Confluent components so it can probably be dockerized much like Connect. |
@solsson from confluentinc/cp-zookeeper and confluentinc/cp-kafka ?? |
Sounds like the same image, or do you mean the effect of the ska256? The reason I'm always adding the checksum is that with the default imagePullPolicy in k8s you may otherwise end up with different images for the same pod spec depending on the pull history on the particular node they run on. And with |
The diff make no sense until kafka-011 has been merged to master. This branch should only add the 6* and 7* ymls.