Netflix/Prana

Prana Sidecar Seems Unusable in Non-AWS Docker Environment

grahamc opened this issue · 2 comments

I'm running into an issue where I am using Prana for RabbitMQ service discovery. In the middle, we have our own sidecar for performing the actual healthcheck, as well as metric reporting.

In AWS it looks like this:

canvas 1

This works in AWS, because it pulls the hostname from the AWS Metadata API:

$ curl -v 'http://prana/eureka/hosts?appName=RABBIT'
["ec2-55-66-111-77.us-west-2.compute.amazonaws.com"]

However in a non-AWS Docker container:

  • where the Prana IP is different from the service it is a sidecar to
  • and eureka.validateInstanceId=false

it uses Prana's IP address, like so:

in aws

Due to this, it does not seem possible to use Prana + Eureka in a non-AWS development environment.

@grahamc So for now aws environments you have to implement a DataCenterInfo which provides the instance information to Eureka. I think @aspyker has some experience in running Eureka in docker. Can you chime in please @aspyker ?

@grahamc Thank you for the contribution. More will be coming, but please see http://ispyker.blogspot.com/2015/10/towards-being-better-about-open-source.html for a bit of context on the status of this project.