2017-01-13 7 views
0

swarm 모드에서 docker 서비스의 복제본간에로드 균형 조정 알고리즘을 사용하는 문서를 찾을 수 없습니다. 5 초 지연 후docker swarm 모드에서 서비스 복제본 간의 네트워크 요청로드 균형 조정

const LATENCY = 5000; 
var app = require('express')(); 

app.get('/', (req,res)=>{ 
     console.log('Sending response'); 
     setTimeout(function() { 
       res.send('All ok'); 
     }, LATENCY); 
}); 
app.listen(8080); 

코드는 단지 전송 All ok :

FROM node:latest                                           
RUN mkdir -p /usr/src/app                                        
WORKDIR /usr/src/app                                          
COPY package.json /usr/src/app/                                       
RUN npm install                                           
COPY . /usr/src/app                                          
EXPOSE 8080                                            
CMD [ "npm", "start" ]  

npm 다음 server.js 시작 :

는 I는 Dockerfile에서 기초한 화상 mynodeapp를 만들었다. 또한 콘솔에 Sending response을 인쇄합니다.

지금, I는 고정 표시기 떼 모드 시작 :

docker swarm init --advertise-addr:eth0 

및 두 개의 복제본으로 서비스를 시작

docker service create mynodeapp --replicas 2 --publish 8080:8080 

결과 지금

[email protected]:~# docker service ls 
ID   NAME    REPLICAS IMAGE  COMMAND 
233z44bz6sx0 amazing_hypatia 2/2  mynodeapp 



[email protected]:~# docker ps 
CONTAINER ID  PORTS    NAMES 
1f36e0c9eb37  8080/tcp   amazing_hypatia.1.453u2upnyf2nvtwxouopv4olk 

f0fb099a5154  8080/tcp   amazing_hypatia.2.8lbs461uhiv2qvh28433ayi0g 

, 나는 두 단자를 열고 두 컨테이너의 로그를 확인하십시오.

,451,515,
docker logs amazing_hypatia.2.8lbs461uhiv2qvh28433ayi0g -f 

docker logs amazing_hypatia.2.8lbs461uhiv2qvh28433ayi0g -f 

나는 내가 할
curl localhost:8080 

을 실행하면 Sending response 하나 개의 단자와 다른 터미널에서 다른 시간에서 한 시간입니다. 그래서 은 라운드 로빈처럼 보입니다로드 밸런싱이 사용됩니다.

하지만 실제로드 균형 조정 알고리즘은 무엇입니까?

답변

2

알고리즘은 현재 간단한 라운드 로빈입니다. 서비스가있는 다른 도커 호스트로 라우팅되는 요청의 문제도 해결할 수있는 가장 빠른 예상 응답 시간 알고리즘을 사용하기위한 제안이 있었지만 아직 구현되지 않았습니다. docker's swarm networking docs에서


: 활성 작업에 서비스의 VIP에

떼 부하 분산 장치가 자동으로 라우팅 HTTP 요청. 라운드 로빈 선택을 사용하여 후속 요청을 다른 작업에 배포합니다.

가장 빠른 예상 응답 사용에 대한 의견은 지금 당장 사용할 수없는 일부 dockercon 2016 비디오에서 나온 것입니다.

+0

답변을 제공하는 링크를 제공 할 수 있습니까? 나는이 문제를 논의하는 어떤 출처도 찾을 수 없다. – rlib

+0

dockers 문서에서 링크 및 견적을 업데이트했습니다. – BMitch