Docker에서 NetScaler CPX 인스턴스 배포

2016년 12월 28일

NetScaler CPX는 Docker App Store에서 Docker 이미지 파일로 사용할 수 있습니다. Docker App store에서 NetScaler CPX 이미지를 다운로드한 후 docker run 명령을 사용하거나 Docker Compose 도구를 사용하여 NetScaler CPX 인스턴스를 배포합니다.

사전 요구 사항

확인할 사항:

  • Docker 호스트 시스템은 다음을 갖추고 있습니다.
    • CPU 1개
    • 2GB RAM
  • Docker 호스트 시스템은 다음 중 하나를 실행합니다.
    • Linux Ubuntu 버전 14.04 이상
    • Mac OS X
  • Docker 버전 1.12가 호스트 시스템에 설치되어 있습니다.
  • Docker 호스트가 인터넷에 연결되어 있습니다.

Docker App Store에서 NetScaler CPX 이미지 다운로드

Docker App Store에서 NetScaler CPX Docker 이미지를 다운로드합니다. 이를 위해, 다음 명령을 실행합니다.

docker pull store/citrix/netscalercpx:11.1-53.11

NetScaler CPX Docker 이미지를 다운로드한 후 다음 명령을 사용하여 이미지 세부 정보를 볼 수 있습니다.

docker images

예를 들면 다음과 같습니다.

root@ubuntu:~# docker images
REPOSITORY    TAG       IMAGE ID       CREATED    VIRTUAL SIZE
   cpx     11.1-53.11  2e97aadf918b  43 hours ago  605.5 MB

이 예제에서 출력의 다음 필드에 주의하십시오.

  • REPOSITORY(저장소). 이미지가 저장되어 있는 이름 공간을 지정합니다.
  • TAG(태그). 설치되어 있는 NetScaler CPX 이미지의 버전을 나타냅니다.
  • IMAGE ID(이미지 ID). Docker 호스트에서 이미지의 고유 ID를 나타냅니다.

docker run 명령을 사용하여 NetScaler CPX 인스턴스 배포

호스트에서 NetScaler CPX 이미지를 로딩한 후 docker run 명령을 사용하여 NetScaler CPX 인스턴스를 배포하고, 외부 통신을 활성화하려면 다음 포트를 열어야 합니다. HTTP 포트 80, SSH 포트 22, SNMP 포트 161. 또, Docker 호스트에서 디렉터리를 탑재해야 합니다.

https://www.citrix.com/products/netscaler-adc/cpx-express.html에서 NetScaler CPX Express를 다운로드한 경우 NetScaler CPX 인스턴스를 배포하는 동안 https://www.citrix.com/products/netscaler-adc/cpx-express.html에 있는 최종 사용자 사용권 계약을 읽고 이해한 후 이 계약에 동의해야 합니다.

docker run -dt -p <port_number> --privileged=true -e EULA=yes --name <container_name> -v <host_directory_path>:/cpx --ulimit core=-1 cpx:11.1-52.x

여기서:

  • **는 외부 통신을 설정하기 위한 포트 번호입니다.
  • **은 NetScaler CPX 인스턴스의 이름입니다.
  • *\*는 NetScaler CPX 인스턴스에 탑재할 Docker 호스트의 디렉터리입니다.
docker run -dt -p 22 -p 80 -p 161/udp --privileged=true -e EULA=yes --name mycpx -v /var/cpx:/cpx --ulimit core=-1 cpx:11.1-52.x

라이센스를 구입했거나 평가 라이센스가 있는 경우 라이센스 서버에 라이센스를 업로드하고 docker run 명령에서 라이센스 서버 위치를 지정할 수 있습니다. 이 경우에는 최종 사용자 사용권 계약에 동의하지 않아도 됩니다.

docker run -dt -p 80 -p 22 -e LS_IP=<LS_IP_ADDRESS> -e LS_PORT=<LS_PORT> -e PLATFORM=CP1000 --name=<NAME> --hostname=<HOSTNAME> --privileged=true -v <host_directory_path>:/cpx --ulimit core=-1 <repository>:<tag>

여기서:

  • LS_IPADDRESS는 라이센스 서버의 IP 주소입니다.
  • LS_PORT는 라이센스 서버의 포트입니다.
  • NAME은 컨테이너의 이름입니다.
  • HOSTNAME은 컨테이너의 호스트 이름입니다.
docker run -dt -p 80 -p 22 -e LS_IP=1.2.3.4 -e LS_PORT=27000 -e PLATFORM=CP1000 --name=test --hostname=testhost --privileged=true -v /var/cpx:/cpx--ulimit core=-1 cpx:11.1.52.x

docker ps 명령을 사용하여 시스템에서 실행되고 있는 이미지와 표준 포트에 매핑된 포트를 확인할 수 있습니다.

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6fe01203e7b9 cpx:11.1-53.x "/bin/sh -c 'bash -C " 7 seconds ago Up 5 seconds 443/tcp, 0.0.0.0:32769->22/tcp, 0.0.0.0:32768->80/tcp, 0.0.0.0:32768->161/udp mycpx

Docker Compose를 사용하여 NetScaler CPX 인스턴스 배포

Docker Compose 도구를 사용하여 단일 NetScaler CPX 인스턴스 또는 다중 NetScaler CPX 인스턴스를 프로비전할 수 있습니다. Compose를 사용하여 NetScaler CPX 인스턴스를 프로비전하려면 먼저 NetScaler CPX 이미지, NetScaler CPX 인스턴스용으로 열려는 포트 및 사용자의 NetScaler CPX 인스턴스 권한을 지정하여 Compose 파일을 작성해야 합니다.

다중 다NetScaler CPX 인스턴스를 프로비전하려면:

1. Compose 파일을 작성합니다. 일반적으로 Compose 파일은 다음과 유사한 형식을 따릅니다.

```json
<service-name>:
    container_name:
    image: <repository>:<tag>
    ports:
        - 22
        - 80
    tty: true
    privileged: true
    ulimits:
    core: -1
    environment:
        - EULA=yes
    volumes:
        - <host_directory_path>:/cpx
```

여기서:

-  **\<service-name>**은 프로비전하려는 서비스의 이름입니다.
-  **image:\<repository>:\<tag>**는 NetScaler CPX 이미지의 저장소와 버전을 의미합니다.
-  **privileged: true**는 NetScaler CPX 인스턴스에 모든 루트 권한을 제공합니다.
-  **<host_directory_path>**는 NetScaler CPX 인스턴스에 탑재할 Docker 호스트의 디렉터리입니다.

**샘플 Compose 파일:**

~~~
cpx_DUT-BRIDGE_0:
container_name: cpx_DUT-BRIDGE_0_my
image: cpx:11.1-52.xx
ports:
    - 22
    - 80
tty: true
privileged: true
ulimits:
    core: -1
environment:
    - EULA=yes
volumes:
    - /var/cpx:/cpx
~~~

> **참고**
>
> 단일 NetScaler CPX 인스턴스를 프로비전하고 싶다면 Compose 파일에 다음 줄을 추가해야 합니다.
>
> **container_name:<name_of_container>**

1. 다음 명령을 실행하여 다중 NetScaler CPX 인스턴스를 프로비전합니다.

~~~
docker-compose -f <compose_file_name> scale <service-name>=<number of instances> up –d

docker-compose -f docker-compose.yml scale cpxlb=3 up –d
~~~

> **참고**
>
> 단일 NetScaler CPX 인스턴스를 프로비전하고 싶다면 다음 명령을 실행합니다.
>
> **docker-compose -f** <compose_file_name> **up –d**