ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Docker Swarm이란
    Docker & Kubernetes 2019. 2. 19. 14:00

    Docker Swarm이란?




    도커가 공식적으로 만든 오케스트레이션 툴이다.


    오케스트레이션 툴이란 여러 호스트 서버의 컨테이너들을 배포 및 관리를 위한 툴이다.


    도커 스웜을 쉽게 말하면 쿠버네티스를 대신할 도커에서 만든 컨테이너 관리를 위한 툴이다.



    오케스트렐이션 툴은 컨테이너 배포뿐만 아니라 다양한 기능을 포함한다.


    • 컨테이너 자동 배치 및 복제

    • 컨테이너 그룹에 대한 로드밸런싱

    • 컨테이너 장애 복구

    • 클러스터 외부에 서비스 노출

    • 컨테이너 추가 또는 제거를 이용한 확장 및 축소

    • 컨테이너 서비스간의 인터페이스를 통한 연결 및 네트워크 포트 노출 제어


    Docker Swarm의 장점은 아래와같다.


    • 여러개의 Docker 호스트를 함께 클러스터링하여 단일 가상 Docker 호스트 생성

    • 호스트 OS에 Agent만 설치하면 간단하게 작동하고 설정이 쉽고 Agent를 외부에 설치하지 않는다.

    • Docker명령어와 Compose를 그대로 사용가능




    컨테이너 오케스트레이션 도구에는 Docker Swarm뿐만 아니라 KUBERNETES, APACHE MESOS 등이 있다.



    Docker Swarm 생성하기




    docker swarm init --advertise-addr <host IP>

    host IP 부분에는 Swarm Master로 사용할 호스트의 IP를 입력한다.


    Swarm-Worker로 가입시킬 Host에 위의 빨간 네모안의 docker swarm join token을 입력한다.





    가입할 Host에 Token을 입력하면 정상적으로 Join된다.





    Master node에서 docker node ls를 하면 Swarm에 속한 모든 노드를 볼 수 있다.


    AVAILABILITY를 보고 스케쥴러가 노드에게 Task를 부여할 수 있는지 확인 가능하다.


    • Active : 스케쥴러가 Task할당이 가능한 상태

    • Pause : 이미 존재하는 Task는 실행 중이지만, 스케쥴러가 새로운 Task에 대해서 할당할 수 없다.

    Drain : 이미 존재하는 Task도 Shutdown되며, 사용가능한 노드로 스케쥴링하게되고

    스케쥴러가 새로운 Task에 대해서는 할당할 수 없다.





    docker node inspect <node ID>를 입력하면

    Swarm에 속한 해당 노드의 정보를 볼 수 있다.









    'Docker & Kubernetes' 카테고리의 다른 글

    Kubernetes - Pod란?  (0) 2019.10.03
    CentOS 7 - 쿠버네티스 설치  (0) 2019.06.09
    Kubernetes란?  (0) 2019.06.09
    Docker commit을 이용하여 컨테이너를 이미지로 배포하기  (0) 2019.02.19
    Docker란  (0) 2019.02.19
Designed by Tistory.