2017-01-11 2 views
0

docker Swarm에서 실행중인 내 응용 프로그램을 Azure 컨테이너 서비스로 포트하는 동안 Azure의로드 밸런서 부분을 쳤습니다. 로컬로 Swarm Master에서 실행중인 HAproxy의 컨테이너 인스턴스와 여러 웹 컨테이너가 실행 중입니다. 웹 컨테이너는 포트를 방금 노출했으며 실행중인 시스템에 매핑되지 않습니다. HAproxy 컨테이너가 포트를 마스터에 매핑했으며로드 밸런싱을 위해 내부적으로 웹 컨테이너와 통신 중입니다. Docker Swarm에서 제한된 수의 컨테이너로 컨테이너를 운영 할 수있는 기회를 제공합니다. 하늘빛 컨테이너 서비스에서 나는 Azure로드 밸런서가 매핑되는 포트에만 대화 할 것이라는 것을 알았습니다. 즉, 에이전트 당 하나의 컨테이너 만 실행할 수 있거나 내 컨테이너에 내부로드 밸런서를 유지합니다. 이는 사용자가 통과 할 것이라는 것을 의미합니다 내 응용 프로그램을 치기 전에 2로드 밸런서.Azure 컨테이너 서비스 포트로드 밸런서

내 응용 프로그램이 고정 세션을 사용하는 이상적인 시나리오는 아닙니다. 그래서 분명히 마이크로 소프트의 진술 "모든 것이 Azure 컨테이너에서 똑같이 작동한다"는 토스가 나올까? 사용할 수있는 솔루션은 무엇입니까? 아니면 여기서 뭔가 잘못하고 있습니까?

감사 Harneet

+0

두 명의 상담원이있는 경우 풀의 두 컨테이너가 아니라 상담원 풀에 두 개의 vms가 있습니다. 그래서 많은 컨테이너를 보유 할 수 있고 용량을 필요로하는 상담원을 위해 VM의 리소스를 적절히 선택할 수 있다고 생각합니다. 그런 다음 ACS가 LB가 HAProxy가 필요없는 균형을 처리하도록했습니다. – hB0

답변

0

는 ACS의 용액을 거의 동일하다. HAProxy를 사용하고 Azure LB가 그것에 대해서 이야기하도록하십시오. 유일한 차이점은 마스터에서 프록시를 실행하지 않을 것이므로 Swarm이 에이전트를 에이전트에 배포해야합니다.

마스터에서 실제로 작업 부하를 실행하면 안됩니다. 예를 들어, DDoS 공격이 있고 마스터에게 도달 할 수 없다면 어떻게 할 것입니까? Swarm을 사용하면 프록시를 배포함으로써 프록시의 상태를 모니터링 할 수도 있습니다.

정말로 원한다면 이제 마스터에서 프록시를 실행할 수 있습니다. 해결책은 동일 할 것입니다. Azure LB가 현재 프록시처럼 공용 연결을 제공하도록하십시오.

+0

그건 너무 설득력이 들리지 않습니다. 각 요청은 실제 웹 응용 프로그램을 치기 전에 2 개의로드 밸런서를 통과합니다. 또한 클러스터의 여러 응용 프로그램에 어떤 일이 발생합니까? Azure에 여러 개의로드 밸런서를 추가하여 동일한 스웜의 여러 응용 프로그램을들을 수 있습니다. –

+0

트래픽이 Azure 네트워크에 어떻게 든 들어가야합니다. 우리는 대부분의 고객이 컨테이너 작업 부하를 인프라로 마이그레이션 할 수있는 능력에 대한 추가 네트워크 호핑을 처리하고 있음을 확인했습니다. 그러나 네트워크 홉을 최소화하려는 고객은 Azure Traffic Manager를 사용할 수 있습니다. Azure Traffic Manager는 클러스터의 개별 컨테이너에 LB를 배치합니다. – rgardler

+0

죄송합니다. 저렴하기 때문에 Application Gateway를 옵션으로 언급해야합니다 ;-) – rgardler

관련 문제