ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 오픈소스로 구성하는 데브옵스 시스템 - Marathon을 이용한 App실행
    DevOps 2017. 4. 26. 00:01

    이전 글에서 구축한 Mesos와 Marathon을 웹을 통해 접속해 보도록 하겠습니다.


    우선 Mesos Master의 경우 1개의 Active와 2개의 Standby 구성으로 총 3개가 셋팅 되었습니다. 각 Mesos Master 웹은 아래 와 같이 호스트네임 또는 IP의 5050 포트로 접속이 가능 합니다.


    http://mesos-master-hostname:5050

    그리고 Active Master의 경우 아래와 같이 Agent의 상태 정보가 표시 됩니다.



    그런데 중간중간 아래와 같은 경고창이 계속 노출되는데요...



    접속하는 PC의 브라우저에서 해당 호스트 네임으로 서버를 찾지 못해서 발생하는 문제 입니다. PC의 hosts 파일에 호스트 네임과 ip를 등록하면 사라집니다.


    그리고 좌측 하단에는 클러스터링 된 정보가 표시 됩니다.



    상단 메뉴를 클릭하면 각각의 정보가 표시 됩니다. 아직은 인스턴스 실행이 되지 않아 많은 정보를 표시하고 있지 않네요.

    현재는 설치 된 Slave 서버 정보를 볼 수 있습니다.



    그리고 Marathon 프레임워크도 같이 설치가 되었기에 해당 정보도 표시가 됩니다.


    Marathon 웹은 http://Mesos-Master-03:8080 으로 접속하면 됩니다.



    Marathon 웹에서도 별다른 내용이 없습니다.


    그러면 Application을 생성해 보도록 하겠습니다. 

    Craete Application을 클릭합니다. 각 항목별 값을 입력하는 창이 나타나지만, JSON Mode를 켜면 아래와 같은 입력창이 나타납니다.



    marathon에서 제공하는 입력창에 해당 값을 입력해도 되지만, json에 적응되면 이 방법이 훨씬 수월하답니다. ㅎㅎㅎ


    위의 내용을 간략하게 설명하면...

    • Application ID : tomcat-web

    • instance 갯수 : 2개

    • instance 당 cpu : 2 core

    • instance 당 mem : 512M

    • container : Docker

    • Docker Image : Docker hub에서 제공하는 library/tomcat 이미지 (버전 8.5.14-jre8)

    • Docker network : BRIDGE 사설 네트워크

    • containerPort : 8080 포트

    Create Application 을 실행하면 아래와 같이 Deploy가 진행 됩니다.



    시간이 오래 경과 되는데, docker hub 이미지를 pull 하고 있어서 그렇습니다. ㅎㅎㅎ

    아래는 running 화면 입니다.



    해당 application을 클릭하면 아래와 같이 instance 상태도 확인 가능 합니다.



    웹페이지는 http://Mesos-Slave-01:31337 또는 http://Mesos-Slave-01:31503으로 접속하면 됩니다.


    그런데 뭔가 이상하죠?? 아까 설정에는 Port가 8080 이었던거 같은데요...


    그건 network를 BRIDGE로 설정했기 때문에 instance는 임의의 포트를 할당 받게 되고, 실제 서비스 port는 HA proxy를 통해 접속하게 됩니다.


    HA proxy는 차후에 marathon-lb를 이용해서 구성해 보도록 하겠습니다.


    그럼 instance를 좀 더 늘려볼까요? Scale Application을 선택 합니다.



    기존 instance는 그대로 서비스 되고, 신규 instance가 deploy 됩니다.



    그런데 deploy 되다가 계속 실패를 합니다. 흑....

    원인 확인을 위해 Mesos-Master 웹에 접속해 보겠습니다.



    Active Task가 2개 운영되고 있고, 4 CPU / 1.0 GB를 사용하고 있습니다. 그리고 Agent가 1개 Unreachable 되어 있는데요...

    아마 Agent 1개가 정상적으로 운영되지 않아 CPU core가 부족한게 아닌가 싶네요.


    다시 Marathon 웹으로 돌아가 Configuration의 Edit 버튼을 클릭 합니다.



    그리고 CPUs 값을 1로 조정하고 Change and deploy configuration 을 실행 합니다.



    열심히 Deploying이 되고 있습니다. 



    배포가 모두 완료되고 모든 instance가 실행되는 상태로 되었습니다.



    그러면 웹 화면을 접속해 볼까요?

    http://Mesos-Slave-01:31220 로 접속하면 아래와 같은 화면이 나타납니다.



    원래는 Mesos-Slave-02도 정상 동작을 해야 되지만, 이런 증상이 나타나는 것도 나쁘지 않을 듯 하군요.

    주말에 열심히 문제 파악해서 고쳐 보도록 하겠습니다...흑

Designed by Tistory.