Live data from Hacker News

HashiCorp Consul 1.2: Service Mesh

hashicorp.com

1–10 of 50 posts

Re: HashiCorp Consul 1.2: Service Mesh

#3
post #2

Could someone care to elaborate what are the main differences between Consul and Istio? What would be the primary reasons to choose one service mesh over the other?

Here is a section on the HashiCorp Consul website dedicated to it. https://www.consul.io/intro/vs/istio.html

I hope it helps

Re: HashiCorp Consul 1.2: Service Mesh

#4
If you're using Consul for web services, I really recommend the Traefik web server: https://traefik.io

Traefik replaces Nginx: it's the reverse proxy that maps the incoming requests to your various services, which are advertising on some arbitrary localhost port.

The amazing thing is that Traefik integrates with Consul: you only need to point it to your Consul endpoint, and it can automatically publish your services! You can also do other dynamic configuration of Traefik, e.g. by publishing a service via a REST API, via Kubernetes, etc.

I've struggled for years to get Nginx configured correctly, and it's been frustrating to have no alternative. In Nginx, dynamic binding is a premium feature. In the free version, you have to rewrite the config and restart the service. That's not fun if you expect services to come and go as part of your natural life-cycle.

Traefik's still pretty young. Notably, the docs are shit. But the application is well-designed, and it compiles as a single self-contained binary (as it's written in Go).

Re: HashiCorp Consul 1.2: Service Mesh

#5
post #2

Could someone care to elaborate what are the main differences between Consul and Istio? What would be the primary reasons to choose one service mesh over the other?

Consul is not a service mesh. At its core it's a distributed key-value store which is commonly used for service discovery, configuration management and healthchecks.

Re: HashiCorp Consul 1.2: Service Mesh

#6
post #5
post #2

Could someone care to elaborate what are the main differences between Consul and Istio? What would be the primary reasons to choose one service mesh over the other?

Consul is not a service mesh. At its core it's a distributed key-value store which is commonly used for service discovery, configuration management and healthchecks.

Consul just became a service mesh. It’s in the release notes.

Re: HashiCorp Consul 1.2: Service Mesh

#7

If you're using Consul for web services, I really recommend the Traefik web server: https://traefik.io Traefik replaces Nginx: it's the reverse proxy that maps the incoming requests to your various services, which are advertising on some arbitrary localhost port. The amazing thing is that Traefik integrates with Consul: you only need to point it to your Consul endpoint, and it can automatically publish your services!…

In the free version, you have to rewrite the config and restart the service. That's not fun if you expect services to come and go as part of your natural life-cycle

If that's happening super-frequently I could see the problem, but in practice I'd expect you to use `consul-template` and issue a `reload` to nginx to make it reload configurations with no downtime. This is the solution I've used and it works pretty well.

Re: HashiCorp Consul 1.2: Service Mesh

#9

If you're using Consul for web services, I really recommend the Traefik web server: https://traefik.io Traefik replaces Nginx: it's the reverse proxy that maps the incoming requests to your various services, which are advertising on some arbitrary localhost port. The amazing thing is that Traefik integrates with Consul: you only need to point it to your Consul endpoint, and it can automatically publish your services!…

In the free version, you have to rewrite the config and restart the service. That's not fun if you expect services to come and go as part of your natural life-cycle If that's happening super-frequently I could see the problem, but in practice I'd expect you to use `consul-template` and issue a `reload` to nginx to make it reload configurations with no downtime. This is the solution I've used and it works pretty well.

Old workers stay around until all the connections for them or their grace period has expired. So i hope you're not too close to the resource limit to handle many generations of workers sticking around. also if you have many services behind a single port with path based routing and do a deploy the connection will stick around on the old workers until everything dies.

It's super fun with haproxy :(

Re: HashiCorp Consul 1.2: Service Mesh

#10

If you're using Consul for web services, I really recommend the Traefik web server: https://traefik.io Traefik replaces Nginx: it's the reverse proxy that maps the incoming requests to your various services, which are advertising on some arbitrary localhost port. The amazing thing is that Traefik integrates with Consul: you only need to point it to your Consul endpoint, and it can automatically publish your services!…

In the free version, you have to rewrite the config and restart the service. That's not fun if you expect services to come and go as part of your natural life-cycle If that's happening super-frequently I could see the problem, but in practice I'd expect you to use `consul-template` and issue a `reload` to nginx to make it reload configurations with no downtime. This is the solution I've used and it works pretty well.

>This is the solution I've used and it works pretty well.

Just make sure consul-template never writes bad config as that will stop everything reloading. That's bit me a couple of times.

Post reply on HN