본문 바로가기
728x90
반응형

도커스웜7

07 도커 스웜 모드 노드 다루기 마스터 노드는 최대한 부하를 받지 않도록 서비스를 할당받지 않게 하거나, 문제가 발생한 특정 노드를 유지보수할 때 해당 노드에 컨테이너를 할당하지 않게 만들고 싶을 때 등 docker node update --availability 명령으로 노드의 상태를 변경할 수 있음 구축한 스웜 클러스터의 노드 상태 확인 Active 상태 $ docker node update --availability active node_name 새로운 노드가 스웜 클러스터에 추가되면 기본적으로 설정되는 상태 노드가 서비스의 컨테이너를 할당받을 수 있음을 의미 Drain 상태 $ docker node update --availability drain node_name 스웜 매니저의 스케줄러는 컨테이너를 해당 노드에 할당하지 않음 .. 2020. 9. 17.
06 스웜 모드 볼륨 도커 데몬 명령어 중 run 명령어에서 -v 옵션을 사용할 때는 호스트와 디렉터리를 공유하는 경우와 볼륨을 사용하는 경우에 대한 구분이 없음 스웜 모드에서는 서비스를 생성할 때 도커 볼륨을 사용할지, 호스트와 디렉터리를 공유할지를 명확하게 명시 volume 타입의 볼륨 생성 → --mount 옵션의 type값에 volume을 지정 ⇒ 도커 볼륨을 사용하는 서비스를 생성 → source ⇒ 사용할 볼륨 (도커 데몬에 해당 볼륨이 존재하면 해당 볼륨을 사용하고 없으면 새로 생성) → target ⇒ 컨테이너 내부에 마운트될 디렉터리 위치 srouce 옵션을 명시하지 않으면 임의의 16진수로 구성된 익명의 이름을 가진 볼륨을 생성 서비스의 컨테이너에서 볼륨에 공유할 컨테이너의 디렉터리에 파일이 이미 존재하면 .. 2020. 9. 17.
05 서비스 디스커버리 같은 컨테이너를 여러 개 만들어 사용할 때 새로 생성된 컨테이너 발견(Service Descovery) 혹은 없어진 컨테이너 감지가 중요 일반적으로 주키퍼, etcd 등의 분산 코디네이터를 외부에 두고 사용해서 해결하지만 스웜 모드는 서비스 발견 기능을 자체적으로 지원 스웜 모드에서는 서비스 이름으로 해당 서비스의 모든 컨테이너에 접근이 가능 ⇒ 서비스의 컨테이너 IP 주소를 알 필요도 없고 새롭게 생성된 사실도 알 필요 없음 #1 예제 서비스에서 사용할 오버레이 네트워크 생성 #2 server 서비스 생성 - 컨테이너의 호스트 이름을 출력하는 웹 서버 컨테이너 2개를 생성 #3 client 서비스 생성 - server 서비스에 http 요청을 보낼 컨테이너를 생성 #4 client 서비스 컨테이너 실행.. 2020. 9. 17.
04 도커 스웜 네트워크 #1 매니저 노드에서 네트워크 목록 확인 #2 ingress 네트워크 - 스웜 클러스터를 생성하면 자동으로 등록되는 네트워크 - 스웜 모드를 사용할 때만 유효 - 스웜 클러스터에 등록된 모든 노드에 ingress 네트워크가 생성 ingress 네트워크는 어떤 스웜 노드에 접근하더라도 서비스 내의 컨테이너에 접근할 수 있게 설정하는 라우팅 메시를 구성하고, 서비스 내의 컨테이너에 대한 접근을 라운드 로빈 방식으로 분산하는 로드 밸런싱을 담당 #2-1 임의로 할당된 16진수를 출력하는 PHP 파일이 들어있는 웹 서버 이미지로 서비스 생성 #2-2 생성된 컨테이너 목록 확인 → replicas를 4로 설정했으므로 4개의 컨테이너가 생성 #2-3 각 노드 주소로 접근 → 접속하는 노드에 존재하지 않는 컨테이너 .. 2020. 9. 17.
728x90
반응형