2017-10-30 7 views
1

디지털 바다 구름에 2 대의 기계가 있습니다. 188.226.167.12, 146.185.135.232. 내 애플리케이션에 호스트 이름이 표시됩니다.Docker가 단일 노드에만 요청을 요청했습니다

각 노드에는 내 서비스의 단일 복제본이 있습니다. http://188.226.167.12:8080/ 또는 http://146.185.135.232:8080/에 여러 번 액세스 할 때 호스트 이름이 변경되지 않습니다.

요청에 대한로드 균형 조정이 없음을 의미합니다.

고정 표시기-compose.yml :

가 어떻게 내 요청에 대한 부하 분산을 할 수

version: "3" 
services: 
    web: 
    image: stavalfi/projecty:latest 
    deploy: 
     replicas: 2 
     restart_policy: 
     condition: on-failure 
    ports: 
     - "8080:8080" 
    networks: 
     - webnet 
networks: 
    webnet: 
?

+0

이제 노드의 IP 주소를 인터넷에서 공개적으로 사용할 수 있습니다. 민감한 응용 프로그램에서 즉시 변경을 제안하는 경우 –

+0

설명했듯이 컴퓨터의 이름을 보여주는 응용 프로그램입니다. 아무것도 여기에 민감하지 않습니다. –

+0

이것들이 리눅스 호스트 인 것을 확인할 수 있습니까?'docker stack deploy' 또는'docker-compose up'으로 배포 했습니까? – BMitch

답변

1

RR로드 균형 조정은 오버레이 네트워크 인 수신 네트워크에서 실행됩니다. 당신이 필요로하는 네트워크 오버레이를 들어 세 개의 포트가 열립니다 :

  • 7946/TCP (제어)
  • 7946/UDP (제어)
  • 4789/UDP (데이터) 내부적으로

,이 Linux에서는 VXLAN입니다. 단지 고정 표시기 노드 사이의 연결을 허용하는 더 그 규칙을 제한 할 수 있습니다

iptables -A INPUT -p tcp -m tcp --dport 7946 -j ACCEPT 
iptables -A INPUT -p tcp -m udp --dport 7946 -j ACCEPT 
iptables -A INPUT -p tcp -m tcp --dport 4789 -j ACCEPT 
iptables -A INPUT -p 50 -j ACCEPT 

:처럼 당신이 당신의 오버레이 네트워크에서 IPSec을 사용하는 경우, 당신은 또한의 iptables CLI에 프로토콜 (50)를 필요로이 보인다.