docker-archive / dockercloud-haproxy

HAproxy image that autoreconfigures itself when used in Docker Cloud
https://cloud.docker.com/
651 stars 187 forks source link

Is this project dead? #237

Open remy-tiitre opened 6 years ago

remy-tiitre commented 6 years ago

There are no commits or releases for a long period of time. There used to be monthly releases.

and1990 commented 6 years ago

Perhaps.

blop commented 6 years ago

:'(

mister2d commented 6 years ago

The Dockerhub page says

Notice: Unfortunately, this project is currently put into maintenance mode. Please do not send any PR for new features. We will still fix bugs if there is any.

That's not fun to hear. I had just started implementing this for a production rollout.

Why is it dead?

grachevko commented 6 years ago

Anybody knows any alternatives?

jensoleg commented 6 years ago

https://traefik.io/ could be an option

mister2d commented 6 years ago

I evaluated traefik, and I found that it doesn't perform tcp based load balancing, and I witnessed some GO related memory address errors show up in logs.

My assessment was that it is much too young for my production needs. It is nice how you can generate frontend / backend config just by specifying docker labels in your docker-compose.yml file.

remy-tiitre commented 6 years ago

http://proxy.dockerflow.com seems to be the best alternative

blop commented 6 years ago

Docker Flow Proxy is nice but it's configuration looks less native than dockercloud-haproxy.

I'll see how https://www.haproxy.com/blog/dns-service-discovery-haproxy/ can help too.

pdostal commented 6 years ago

I'm confused too. There was a new release approx. 2 weeks ago but it doesn't seem to have other tags than latest and that's why I noticed - I wanted to set particular version of this image in my production swarm environment but I found out I can't.

mateuszdrab commented 6 years ago

Just found and tested this, can't believe this is dead, this is literally the perfect solution to my problem and it works. I just wanted an internal reverse proxy for all the services running inside the swarm so that they can be addressed via https:// with my internal wildcard cert. I will give vfarcic/docker-flow-proxy a shot now and see if I can get same results. Anybody using Docker Flow Proxy?

mister2d commented 6 years ago

@mateuszdrab Yes I use it now and it works great as well.

mateuszdrab commented 6 years ago

@mister2d Only comments for now are:

mister2d commented 6 years ago

@mateuszdrab

unable to get it to work on non manager nodes (tried the environment variable and the sock)

What happens when you set your deploy option to global. I actually haven't encountered not being able to deploy to the node of my choice. Perhaps there is some hidden constraint somewhere that isn't showing itself. Setting an environment variable or binding the Docker socket does nothing to help.

My use case is more to have a swarm between my home networks here and other physical locations and have the service exposed no matter where it runs from.

I'm pretty sure Docker does this out of the box unless I'm totally missing something.

general issue with docker... not easy to replicate config between nodes when they are not supposed to use centralised storage. Will try to embed a cron job to pull and push the config into my git repo.

Use Docker configs or secrets for your swarm if you want configuration data to be accessible between swarm nodes. Otherwise you will have come up with a shared storage solution.

remy-tiitre commented 6 years ago

I haven't run traffic as I consider it to be too young for production as well. But probable cause why it can't run on worker nodes is that it has to listen for Swarm events which are available only on manager nodes. Thats why in case of docker-flow-proxy you can run HAProxy on any node but the swarm listener service that updates the config has to be ran on manager node.

But another point to note is that why would you want to run a service in Swarm that proxies tcp connections? Routing Mesh does that automatically, no point to add extra peaces in the puzzle.

mateuszdrab commented 6 years ago

@remy-tiitre

Thats why in case of docker-flow-proxy you can run HAProxy on any node but the swarm listener service that updates the config has to be ran on manager node.

Think I will give it a go, playing with kubernetes now and I'm thinking of going back to swarm mode.

But another point to note is that why would you want to run a service in Swarm that proxies tcp connections? Routing Mesh does that automatically, no point to add extra peaces in the puzzle.

Simply because if I run two services I can't expose both of them at port 443 and HAproxy makes it possible ;)

@mister2d

Use Docker configs or secrets for your swarm if you want configuration data to be accessible between swarm nodes. Otherwise you will have come up with a shared storage solution.

I wanted some persistent storage solution so I am trying kubernetes, rancher and longhorn. Apart from the fact those spin like 30 containers per node just to run itself, I am seeing different kinds of errors when trying to create an nginx deployment with the longhorn volume. I think I'm gonna use swarm with a cron job to sync my config directories with git 👍 Only thing is, databases can't be synced like this, which is why I wanted a distributed block storage system that can do async replication between sites.

Cooke commented 6 years ago

An alternative that fits my use-case very well: https://github.com/lucaslorentz/caddy-docker-proxy

Auto configured reverse proxy, with clustering support and automatic SSL (let's encrypt).