>source

여러 다른 컴퓨터로 확장 할 때 어떻게 도움이되는지 이해할 수 있습니다. 그러나 여기에는 하나의 머신 (또는 노드) 만 있습니다. 그러나 docker는 여전히 다음과 같이 여러 작업 (각 컨테이너가 제공하는)을 실행하도록 서비스 확장을 지원합니다.

docker service scale serviceName=num_of_replicas

웹 API를 실행하는 예를 들어 보자. 실제로이 경우 확장이 어떻게 도움이되는지 모르겠습니다. 웹 API를 호스팅하는 한 대의 컴퓨터가 최대 성능을 발휘할 수 있습니다. 여러 개의 컨테이너를 사용하면 최대 전력을 증가시킬 수 없습니다. Web API의 요청 처리 파이프 라인을 사용하면 서버에 충분한 리소스 (CPU, RAM)가있는 한 서버에서 여러 요청을 동시에 독립적으로 처리 할 수 ​​있습니다. 따라서이 경우 docker service scaling으로 여러 개의 (필요하지 않은) 작업이 필요하지 않습니다.

여기서 볼 수있는 유일한 이점은 하나의 동일한 서버 (컨테이너)에 의한 모든 요청을 처리하는 것보다 도커 서비스 확장이 작업 (컨테이너)을보다 효과적으로 격리 할 수 ​​있다는 것입니다.

이 방법으로 도커 서비스 확장의 다른 이점을 알려주시겠습니까? 위의 가정에 문제가 있습니까?

  • 답변 # 1

    와이즈 비즈

    이것은 실제로 구현에 달려 있습니다. 비효율적 인 일부 구현에서는 단일 프로세스/스레드/CPU 만 사용할 수 있으며 스케일링은 성능에 도움이됩니다.

    또 다른 이점 : 단일 노드에서 확장하면 고 가용성에도 도움이됩니다. 메모리 부족 문제로 복구 할 수없는 오류가 발생할 가능성이 항상 0이 아닌 단일 컨테이너를 중지시킬 수 있습니다. 따라서 오케스트레이션 스케줄러가 컨테이너를 다시 시작할 때까지 다운 타임이 발생합니다.

    Using multiple containers in it cannot help increase that maximum power.

관련 자료

  • 이전 c++ - 추상 클래스에서 해석되지 않은 외부 심볼
  • 다음 axios - 개별 JSON 배열 항목에 액세스하고 블로그 게시물에 동적으로 사용