Show HN: Go from Docker-Compose to Kubernetes with a simple tool
kompose.io
kompose.io
The result was sufficiently confusing that we threw it away, but it was helpful to get an idea what we were looking at, and why. We rebuilt the stack from hand, using all the files from the kompose tool as a guide/reference.
Later we found that kubectl can dump yaml, I found `kubectl .... -o=yaml[ ...]` to be super helpful, for any command you run from the tutorial or elsewhere, it'll generate you the equivalent YAML which you can commit/apply at your leisure.
I'm glad the tool existed, but idiomatic stuff in docker-compose is unidomatic in k8s (namely secret handling is completely different) which is a hurdle, and the "links" concept as used in docker-compose is essentially absent from k8s for our purposes (and, replaced wth much, much better and granular dns services and "expose"s)
more generally, what were the biggest upsides / downsides from moving to k8s?!
As a migration tool, it might save some time building your YAML files, but the differences between Compose and Kubernetes are large enough (secret management, for example) that the mapping will be incomplete. But more importantly, the tool itself doesn't lead to a great understanding of Kubernetes itself. In my opinion, the better approach is to learn Kubernetes, then put together your YAML files piece by piece until it all works. Learn by doing.
And it's not useful as a general-purpose tool that abstracts Kubernetes; you need all of the stuff you put in the YAML files. The only way to abstract it is to move one layer up, into a PaaS.
Some people learn better by starting with a working example and going from there.
I suspect you and I are both in the first group, but for the second group, this seems like a nice way to get started.
To be honest, I don't see a reason to use docker-compose anymore, because minikube gives the full Kubernetes experience locally. It might take a bit to learn k8s, but it's definitely worth it.
"docker-compose up" is perhaps still easier to start with, but as soon as you start working, rather than playing with demos, you hit limitations and want more.
What I want is a better way to learn hands-on or as I go. Not sure exactly what that looks like.
https://github.com/kubernetes/charts/tree/master/stable https://github.com/kubernetes/charts/tree/master/incubator
and then very easily tweak them.
Since it's typically hard for the ops team to convince the dev team to abandon compose, the next best thing for is to translate formats each time the dev team wants to deploy. That is what kompose allows.
Note that Docker has a similar translator built-in, so ops teams can deploy compose to production directly without needing an external tool. But it doesn't support kubernetes, so it doesn't help ops teams who have adopted kube.
(I'm one of the Kompose maintainers. ;-) )
https://hackernoon.com/what-is-micro-paas-and-why-its-the-fu...
One of the nice side effects of this tool will be mapping existing Compose knowledge into the Kubernetes config model. It's like a mini translator.
I have a feeling that this will make a big difference in the usage of MiniKube.
Currently the server and cloud editions (Docker for Linux, Docker for AWS, Docker for Azure) don't solve the permission problems for performance reasons. But in production you typically don't want or need to mount source code anyway.
If you want to copy instead of mounting, just use the COPY operation in your Dockerfile. https://docs.docker.com
Whether you use Kubernetes or Swarmkit for deploying to production, that takes place later in the workflow.
"The complexity and learning curve of Emacs will kill the project"
"The complexity and learning curve of LaTex will kill the project"
"The complexity and learning curve of Sendmail will kill the project" <-- The only one that's partially true and it took 35 years.
Exchange is a lot easier to use than Sendmail, but didn't kill that one either.
When you need power and flexibility, which is generally the case when your project gets to any reasonable size, then you go with the pro tool with the learning curve.
You missed the point. Kompose will generate the Kubernetes config and it can even bring up your application using "kompose up" command. Have some faith and read more about it on kompose.io and use it
GP comment was downvoted into oblivion, but he had a point. Compose (at least, v3/v3.1) is a reasonably simple system, that can describe a fairly complex setup. Kubernetes has a lot of complexity to it. And the question "why do I need it, if there are simpler options?" is left unanswered.
The Kubernetes files really arent that complex