모든 Docker 기반의 마이크로 서비스는 서로 이야기해야합니다. 그들은 컨테이너 이름을 사용하여 서로 이야기합니다. 따라서 Docker Swarm 또는 Kubernetes (w Flannel)로이 도구를 실행할 때 Docker DNS를 사용하여 컨테이너 이름을 IP 주소로 확인합니다.주어진 도커 컨테이너 이름이 설정된 mesos/marathon을 설정하십시오.
이제 Mesos + Marathon과 동일한 동일한 마이크로 서비스 세트를 실행하려고하는데 문제가 발생했습니다. 모든 마이크로 서비스 (Marathon app.App API 사용)를 시작하면 mesos에 'mesos-some_long_hash'라는 이름이 부여됩니다. 컨테이너가 시작되는 기계에 "docker ps"라고 입력하면이 이름을 볼 수 있습니다. 따라서 마이크로 서버는이 메소가 할당 된 컨테이너 이름으로 인해 서로를 찾을 수 없습니다.
실험을 위해 필자는 Marathon app.appContainer.DockerContainer API의 'parameters'를 사용하여 필요한 이름으로 컨테이너 이름을 지정해야했습니다. 마이크로 서비스는 작동하지만 Marathon은 이러한 "mesos-some_long_hash"이름을 예상하므로 혼란스러워합니다. 그것들은 배치에 붙어있는 것으로보고합니다.
마라톤 API를 통해 "mesos-some_long_hash"라는 이름을 원하지 않고 대신 내 이름 (서비스 이름)을 사용하는 방법을 알아야합니다. 마라톤 앱 API에서이 작업을 수행 할 명백한 것은 없습니다.
누구든지이 작업을 수행하는 방법을 알고 있습니까?
편집 : 방금 mesos에있는 containerizer에 대해이 사실을 발견했습니다. http://mesos.apache.org/documentation/latest/docker-containerizer/
컨테이너 이름을 변경할 수없는 것처럼 들리는가요? 이것은 끔찍한 일입니다! 메소 스나 마라톤 프리 커 아웃없이 컨테이너 이름을 지정할 수 없다면 누구가 마이크로 서비스 아키텍처를 수행합니까?
동의하고 [Mesos-DNS] (https://github.com/mesosphere/mesos-dns)와 같은 도구를 사용할 수 있습니다. – js84