Product Documentation

Mesos 및 Marathon 환경에 NetScaler CPX 배포

2016년 6월 30일

이 배포에서는 Mesos 및 Marathon 환경을 사용하여 응용 프로그램을 시작하고 규모를 확장하거나 축소할 수 있습니다. Mesos를 사용하면 분산 응용 프로그램 또는 프레임워크에서 리소스를 격리하고 공유할 수 있습니다. Marathon은 응용 프로그램 오케스트레이션 프레임워크로, 이를 통해 응용 프로그램을 시작하고 규모를 확장하거나 축소할 수 있습니다. Mesos 및 Marathon에 관한 자세한 내용은 https://docs.mesosphere.com/gettingstarted/overview/을 참조하십시오.

Mesos 및 Marathon 환경에 NetScaler CPX를 배포하려면 다음 작업을 완료해야 합니다.

  1. Mesos 및 Marathon 마스터-슬레이브 클러스터를 설정합니다. 모든 응용 프로그램 및 NetScaler CPX 인스턴스를 Ubuntu 호스트에서 구성해야 하며 이러한 호스트를 Mesos 슬레이브로 구성해야 합니다. Ubuntu 호스트를 Mesos 마스터로 구성하고 Mesos 마스터에 Marathon을 설치해야 합니다. 자세한 내용은 https://open.mesosphere.com/getting-started/install/을 참조하십시오.
  2. 모든 Mesos 슬레이브에서 응용 프로그램 및 NetScaler CPX 인스턴스의 이미지를 저장해야 합니다.
  3. 그런 다음 Marathon CLI 또는 Marathon GUI를 사용하여 응용 프로그램 및 NetScaler CPX 인스턴스를 시작할 수 있습니다. Marathon에서는 NetScaler CPX 인스턴스를 응용 프로그램으로 시작합니다. Marathon에서 응용 프로그램을 실행하는 것에 관한 자세한 내용은 https://mesosphere.github.io/marathon/docs/application-basics.html을 참조하십시오.

다음 그림에서는 Mesos 및 Marathon 환경의 NetScaler CPX 배포를 보여 줍니다.

지역화된 이미지

이 예제에서 UH1은 Mesos 마스터로 구성된 Ubuntu 호스트입니다. Ubuntu 호스트 UH2, UH3 및 UH4는 Mesos 슬레이브로 구성되었습니다. Marathon은 Mesos 마스터에 설치되었습니다. App1 및 App2는 NetScaler CPX로 부하를 분산할 응용 프로그램입니다. 응용 프로그램을 시작하기 위해서 Mesos 마스터가 Mesos 슬레이브 및 기타 리소스를 응용 프로그램에 할당하고 Marathon이 할당된 Mesos 슬레이브에서 응용 프로그램을 시작합니다. 이 예제에서 CPX, App1 및 App2는 각각 Ubuntu 호스트 UH2, UH3 및 UH4에서 시작됩니다.

Marathon CLI 또는 Marathon GUI를 사용하여 응용 프로그램 및 NetScaler CPX 인스턴스를 시작할 수 있습니다.

Marathon CLI를 사용하여 응용 프로그램 및 NetScaler CPX 인스턴스 시작

응용 프로그램 또는 NetScaler CPX 인스턴스를 시작하려면 JSON 스크립트를 작성해야 합니다. JSON 스크립트에는 ID, 인스턴스 수, 컨테이너 유형, 응용 프로그램 이미지 파일 이름, 포트 매핑, 네트워크, 레이블 및 상태 확인 사양 같은 세부 정보가 포함되어야 합니다. 그런 다음 Mesos 마스터에서 JSON 스크립트를 실행하여 응용 프로그램 및 NetScaler CPX 인스턴스를 시작해야 합니다.

응용 프로그램 및 NetScaler CPX 인스턴스를 시작하려면:

1. 시작하려는 각 응용 프로그램 및 NetScaler CPX 인스턴스에 대한 JSON 스크립트를 작성합니다.

     예를 들어 응용 프로그램을 시작하려면 다음 샘플 스크립트에 표시된 것처럼 JSON 스크립트를 작성합니다.

    {
      "id": "web-backend",
      "cpus": 0.1,
      "mem": 100.0,
      "instances": 2,
      "container": {
        "type": "DOCKER",
        "docker": {
          "image": "nginx_backend:latest",
          "forcePullImage": false,
          "network": "BRIDGE",
          "portMappings": [
            { "containerPort": 80, "hostPort": 0, "servicePort": 20002, "protocol": "tcp" }
          ]
        }
      },
      "labels": {
              "NETSCALER_GROUP":"BACKEND"
      },
      "healthChecks": [
        {
          "protocol": "HTTP",
          "portIndex": 0,
          "path": "/",
          "gracePeriodSeconds": 5,
          "intervalSeconds": 20,
          "maxConsecutiveFailures": 3
        }
      ]
    }

중요:

응용 프로그램의 경우 레이블을 NETSCALER_CPX로 설정하지 마십시오. 응용 프로그램의 경우 레이블 매개 변수를 NETSCALER_CPX로 설정하면 NetScaler CPX 인스턴스에서 응용 프로그램을 구성할 수 없습니다.

     예를 들어 NetScaler CPX 인스턴스를 시작하려면 다음 샘플 스크립트에 표시된 것처럼 JSON 스크립트를 작성합니다.

    {
      "id": "cpx",
      "cpus": 0.25,
      "mem": 512,
      "instances": 2,
      "container": {
        "type": "DOCKER",
        "docker": {
          "image": "cpx:10.5-53.535",
          "network": "HOST",
          "privileged": true,
          "parameters": [
            { "key": "tty", "value": "true" },
            { "key": "env", "value": "NS_NETMODE=HOST" },
            { "key": "env", "value": "NETSCALER_GROUP=BACKEND" },
            { "key": "env", "value": "marathon_url=http://10.102.103.222:8080" }
          ]
        }
      },
      "labels": {
              "NETSCALER_AS_APP": "true"
      }

    }

참고:

Mesos 및 Marathon 환경에서는 NetScaler CPX 인스턴스를 호스트 네트워킹 모드에서만 실행하도록 지원합니다. 따라서 JSON 스크립트에서 네트워크 매개 변수의 값을 HOST로 설정해야 합니다.

2. Mesos 마스터에서 다음 명령을 실행하여 JSON 스크립트를 실행합니다.

curl -X POST http://<Marathon_IP_Address>:<Marathon port>/v2/apps -d @<JSON_Script_Name>.json -H "Content-type: application/json"

          또는 다음 docker run 명령을 사용하여 NetScaler CPX 인스턴스를 시작할 수 있습니다.

docker run -dt --privileged=true --net=host -e NS_NETMODE="HOST" --ulimit core=-1 -e marathon_url=“http://<Marathon_IP_Address>:<Marathon port>" cpx:7

          Marathon에서 인증을 요구하는 경우 다음 docker run 명령을 사용할 수 있습니다.

docker run -dt --privileged=true --net=host -e NS_NETMODE="HOST" --ulimit core=-1 marathon_url=“http://<Marathon_IP_Address>:<Marathon port>" –e marathon_user=abcd –e marathon_password=secret cpx:7

Marathon GUI를 사용하여 응용 프로그램 및 NetScaler CPX 인스턴스 시작

브라우저에 Marathon IP 주소 및 포트를 입력하여 Marathon GUI에 액세스할 수 있습니다. 기본적으로 Marathon 포트는 8080입니다.

응용 프로그램 및 NetScaler CPX 인스턴스를 시작하려면:

  1. Marathon GUI에 로그온합니다.

  2. Applications(응용 프로그램) 탭의 왼쪽 위 창에서 Create(만들기)를 클릭합니다.

  3. New Application(새 응용 프로그램) 화면의 Docker container settings(Docker 컨테이너 설정), Environment variables(환경 변수), Labels(레이블), Health checks(상태 확인)Optional settings(옵션 설정) 섹션에서 매개 변수를 지정합니다.

지역화된 이미지

참고:

Mesos 및 Marathon 환경에서는 NetScaler CPX 인스턴스를 호스트 네트워킹 모드에서만 실행하도록 지원합니다. 따라서 NetScaler CPX 인스턴스를 시작하려면 Docker container settings(Docker 컨테이너 설정) 섹션의 Network(네트워크) 목록에서 Host(호스트)를 선택합니다.

4. + Create(만들기)를 클릭합니다.

5. 시작한 응용 프로그램이 Applications(응용 프로그램) 아래에 표시됩니다.

지역화된 이미지