2017-09-19 15 views
0

docker swarm 또는 일부 애플리케이션을 구현하기 시작했습니다. 이 부분 중 하나는 "라이브"콘텐츠를 특정 사용자에게 푸시 할 수있는 웹 소켓 서버입니다.docker swarm의 모든 인스턴스에 액세스

내 질문은 - 오버레이 네트워크에서로드 균형 조정이 아닌 특정 컨테이너를 호출하고 싶다면 가능합니까? 그렇다면 어떻게해야할까요?

감사

+0

Swarm이 귀하의 유스 케이스에 해당하는지 확실하지 않습니다. 컨테이너가 여러 개의 복제본으로 전개 /로드 밸런싱되도록하고 Swarm이 컨테이너의 재배치를 관리하도록하십시오 (필요한 경우)? 이러한 동적 인 동작을 원하는 것처럼 유스 케이스가 소리를 내지 않습니다. – gesellix

+0

보관하려는 보류중인 연결에 대해 특정 컨테이너 또는 추가 요청을하는 데 문제가 있습니까? – gesellix

+0

로드 밸런싱 된 "프록시"가 있습니다 - 컨테이너에 연결된 클라이언트에게 무언가를 전달하기 위해 실행중인 각 인스턴스에 API 호출을 보내려합니다. –

답변

1

내가 제대로 사용 사례를 이해하면, 다음과 같은 예를 들어 당신이 시작 도움이 될 수 있습니다.

는 오버레이 네트워크와 여러 복제본과 서비스를 감안할 때 :

docker network create --driver overlay --attachable nginx 
docker service create --name nginx --network nginx --replicas 3 nginx:alpine 
당신은 nginx를 네트워크에 부착 된 용기 실행할 수 있습니다

:

docker run --rm -it --network nginx alpine:edge ash 

당신이 모든 작업을 찾을 수 컨테이너 내부를 다음과 같은 서비스가 필요합니다.

apk add -U drill 
drill tasks.nginx 

응답에 simi 이 말 :

... 
;; ANSWER SECTION: 
tasks.nginx. 600 IN A 10.0.1.3 
tasks.nginx. 600 IN A 10.0.1.4 
tasks.nginx. 600 IN A 10.0.1.5 
... 

첨부 할 수있는 네트워크와 단일 컨테이너가 필요하지 않습니다. 또는 nginx와 같은 네트워크에 다른 서비스를 만들고 해당 서비스에서 tasks.<service-name> 조회를 수행하여 필요한 작업을 수행 할 수도 있습니다.

+0

IP를 사용하여 정확한 컨테이너에 액세스 할 수 있습니까? –

+1

나는 메뚜기의 주요 디자인 주위에서 뭔가를하려고 노력하고 있다고 생각한다. 나는 지금 무엇을 보는지, pub/sub를 위해 redis 또는 유사한 것을 사용하고 모든 프록시를 redis에 연결하고 특정 채널을 구독하게한다. 모든 컨테이너에 하나의 명령을 보내고 싶다면 거기에 게시 할 수 있습니다. –

+0

감사합니다, 이것은 내가 필요한 것입니다! –