0부터 시작하는 Docker Swarm 공부 - Docker Stack - 자원 지정
1. 자원 지정하기
p. 111 , 116
- 명령어로도 자원 지정이 가능하지만, 이번에는 Stack 으로 자원 지정을 해보자
- 자원 지정은 deploy 밑에 resource 에 지정한다
- limits: 자원 최대량
- reservations : 자원 최소량 ( 보장하는 자원량 )
2. limits & reservations
- 예를 들어, 컨테이너 자원 memory 의 최대를 500M, 최소를 250M 으로 주었을 때, 만약 물리자원이 750M 밖에 안된다면, 컨테이너들은 기본적으로 250M 씩 사용하고, 필요시 남아 있는 공간을 사용해서 최대 500M 까지 사용할 수 있다
- B 컨테이너가 자원을 필요로 하면, A 컨테이너가 사용하고 있는 자원을 밀어내서, 자신이 필요한만큼 사용할 수 있지만, A 컨테이너의 최소 보장된 자원은 B 컨테이너가 사용할 수 없다
- 즉, 각 컨테이너의 보장된 자원량은 기본적으로 제공해주고, 나머지 여유 자원은 컨테이너들이 필요시 공유해서 사용할 수 있다. 이 공유 자원에 대해서는 컨테이너가 필요시 다른 컨테이너를 밀어내고 사용할 수 있지만, 각 컨테이너의 보장된 자원량에는 침범할 수 없다
3. 배포 및 확인
- 다시 배포해주자. nginx Service 에 대해서만 변경 사항이 있으므로, nginx Service 를 Update 해준다
- Service 의 상세 정보를 확인하면, 자원 사용에 대한 정보가 추가되었다
- Container 의 상세 정보를 확인하면, 지정된 최대 자원량을 확인할 수 있다