우리는 Eureka를 사용하여 도커 컨테이너를 확장 할 수있는 AWS ECS 서비스를 사용하고 있습니다. ECS에서 호스트 포트를 생략하거나 태스크 정의에서 '0'으로 지정하면 포트가 자동으로 선택되어 다시 서비스에보고됩니다. 작업이 실행 된 후에는 바인딩 된 포트가 표시되어야합니다. Eureka with AWS ECS
어떻게 유레카는 우리가 여러 EC2 인스턴스가있는 경우에 사용하는 어떤 포트 해결할 수 없습니다. 예를 들어 EC2-A의 서비스 A는 EC2-B에서 서비스 B를 호출합니다. 그래서 유레카는 호스트 이름을 분석 할 수 있지만, 당신은 AWS ECS에서 유레카와 dockerized 봄 부팅 기반의 웹 서비스를 등록하려면이 프로젝트를 살펴 보자 노출 포트를
0
A
답변
0
를 식별 할 수 없습니다 :
- https://gitlab.com/ixilon/docker-aware-eureka-instance
- https://gitlab.com/ixilon/aws-aware-eureka-instance
은 저도 같은 문제를 겪고이 나를 위해 잘 작동합니다.
1
다른 해결책이 있습니다.
당신은 응용 프로그램로드 밸런서와 고정 표시기 용기가 발사 될 수있는 대상 그룹을 만들 수 있습니다.
모든 고정 표시기 컨테이너는로드 밸런서의 호스트 이름에 자신의 호스트 이름을 설정하고있다. 예쁜 URL이 필요하다면 Route53 for DNS-Routing을 이용할 수 있습니다.
Service Discovery with Loadbalancer-Hostname
서로 다른 호스트에서 동일한 작업의 두 용기가 있다면, 모두가 통신 :
그것은 (죄송합니다, 지금 사진을 embedd 할 수 없습니다) 다음과 같습니다 eureka와 동일한로드 밸런서 호스트 이름. 당신은 장점과 동적 포트 매핑의 유연성을 잃지 않고 AWS ECS에 고정 표시기와 유레카 사용할 수있는이 솔루션을
.
그래서 Eureka는 고정 Docker 포트가 있으면 AWS ESC와 잘 작동합니다. 우리는 다음 유레카는 AmazonInfo를 사용하여 AWS 호스트 (http://cloud.spring.io/spring-cloud-netflix/spring-cloud-netflix.html#_using_eureka_on_aws) 해결할 수있는이 포트를 노출해야 할 그러나 유레카는 도움이되지 않습니다 ECS 자동 보정 기능을 사용하려는 경우 실제로 Eureka는 ECS (자동 보정)와 Docker를 Docker 네트워크 호스트 (docker run - net = host)와 만 사용할 수 있습니다. 그러나이 방법은 좋지 않습니다. Kubernetes의 경우 각 Docker 이미지가 Pod에서 분리되어 있기 때문에 괜찮습니다. –