NetScaler MAS를 사용하여 NetScaler CPX 인스턴스와 Mesos, Marathon, InfoBlox 및 Nuage 통합
2016년 6월 30일
네트워크 관리자는 Marathon 스케줄러를 사용하여 Mesos 클러스터에서 응용 프로그램을 배포하고 여러 NetScaler CPX 인스턴스를 프로비전한 다음 응용 프로그램에 대한 트래픽 부하를 분산할 수 있습니다. 배포 환경에서 Nuage VSP 솔루션을 사용하여 각 응용 프로그램 및 NetScaler CPX 인스턴스에 네트워크 연결을 제공할 수 있으며 InfoBlox 솔루션을 사용하여 배포 환경에 DNS 서비스를 설정할 수 있습니다.
NetScaler MAS를 사용하여 NetScaler CPX 인스턴스 및 응용 프로그램을 관리하고, 모니터링하고, 시각화할 수 있습니다.
이 배포 환경에서 다음 작업을 수행합니다.
- Mesos 및 Marathon 마스터-슬레이브 클러스터를 설정합니다. 모든 응용 프로그램 및 NetScaler CPX 인스턴스를 Ubuntu 호스트에서 구성해야 하며 이러한 호스트를 Mesos 슬레이브로 구성해야 합니다. Ubuntu 호스트를 Mesos 마스터로 구성하고 Mesos 마스터에 Marathon을 설치해야 합니다. 자세한 내용은 https://open.mesosphere.com/getting-started/install/을 참조하십시오.
- 모든 Mesos 슬레이브에서 응용 프로그램 및 NetScaler CPX 인스턴스의 이미지를 저장해야 합니다.
- 그런 다음 Marathon CLI 또는 Marathon GUI를 사용하여 응용 프로그램 및 NetScaler CPX 인스턴스를 시작할 수 있습니다. Marathon에서는 NetScaler CPX 인스턴스를 응용 프로그램으로 시작합니다. Marathon에서 응용 프로그램을 실행하는 것에 관한 자세한 내용은 https://mesosphere.github.io/marathon/docs/application-basics.html을 참조하십시오.
- Nuage VSP 솔루션에서 VIP 서브넷을 설정합니다. VIP 서브넷은 장래에 모든 Mesos 응용 프로그램에 필요한 VIP 요구 사항을 충족할 수 있을 만큼 충분히 커야 합니다. VIP 서브넷은 어떠한 Mesos 응용 프로그램에서도 사용되지 않아야 하며 VIP 서브넷에서 Nuage 끝점(vport)을 만들지 않아야 합니다.
- InfoBlox 솔루션에서 DNS 확인을 위한 DNS 서버를 설정합니다.
- NetScaler MAS에 응용 프로그램, Marathon 스케줄러, Nuage 및 InfoBlox 세부 정보를 등록합니다.
- NetScaler CPX 인스턴스를 NetScaler MAS에 추가합니다.
참고 사항:
- NetScaler CPX IP 주소(관리 IP 주소)는 Mesos 클러스터 내에서 완전히 라우팅 가능해야 합니다.
- Mesos 슬레이브에서 NetScaler CPX 인스턴스를 프로비전할 때 다음과 같은 세부 정보를 지정해야 합니다.
- NetScaler MAS 호스트 이름 또는 IP 주소
- NetScaler MAS 관리자의 사용자 이름 및 암호
- NetScaler CPX 인스턴스에서 DNS 확인용으로 구성할 DNS 서버 이름
- 응용 프로그램과 Nuage 서브넷 사이에 일대일 매핑 관계가 있어야 합니다.
- NetScaler CPX는 Mesos 슬레이브에서 실행되고 있는 Nuage Docker 모니터를 사용하여 네트워크에 연결되어야 합니다.
- 연결된 서브넷에 Marathon 응용 프로그램 작업(응용 프로그램의 VIP 주소에서 IP:포트 구성원)만 나타나야 합니다.
- Marathon 레이블 중 하나에 Marathon 응용 프로그램 포트를 지정해야 합니다.
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(응용 프로그램) 아래에 표시됩니다.
NetScaler MAS에 응용 프로그램, Marathon 스케줄러, Nuage 및 InfoBlox 세부 정보 등록
NetScaler CPX 인스턴스를 성공적으로 배포하려면 응용 프로그램, Marathon 스케줄러, Nuage 및 InfoBlox 솔루션의 세부 정보를 NetScaler MAS에 등록해야 합니다.
NetScaler CPX 인스턴스가 NetScaler MAS 연결을 열 수 있도록 네트워크를 구성해야 합니다. NetScaler CPX 컨테이너가 시작되고 Nuage 환경에서 관리 IP 주소를 얻은 후 보안 연결을 사용하여 NetScaler MAS에 등록 요청을 보냅니다.
등록 프로세스의 일부로 NetScaler MAS는 NetScaler CPX 인스턴스에 대한 정보와 NITRO REST API를 사용한 구성을 위해 인스턴스에 연결할 때 사용할 IP 주소 또는 포트를 파악합니다. 그런 다음 NetScaler MAS는 상태 모니터링을 시작합니다.
NetScaler MAS에 세부 정보를 등록하려면
- NetScaler MAS에 로그온합니다.
- Orchestration(오케스트레이션) > Container Orchestration(컨테이너 오케스트레이션) > Mesos Configuration(Mesos 구성)으로 이동한 다음 Add(추가)를 클릭합니다.
-
Application Settings(응용 프로그램 설정)에서 다음 매개 변수를 지정합니다.
- App Default Domain Suffix(응용 프로그램 기본 도메인 접미사). InfoBlox에서 구성되는 응용 프로그램의 DNS 이름을 만드는 데 사용되는 도메인 접미사입니다.
- VIP Subnet Name(VIP 서브넷 이름). NetScaler MAS에서 응용 프로그램의 VIP를 할당하는 데 사용되는 Nuage 서브넷의 이름입니다. 사전에 Nuage 시스템에서 이 서브넷을 만든 다음 NetScaler MAS에 서브넷을 등록해야 합니다.
- Marathon Scheduler Details(Marathon 스케줄러 세부 정보)에서 Marathon URL, 사용자 이름 및 암호를 지정합니다.
- Nuage Details(Nuage 세부 정보)에서 VSD URL, 사용자 이름, 암호 및 VSD 엔터프라이즈 ID를 지정합니다.
- InfoBlox에서 InfoBlox URL, 사용자 이름 및 암호를 지정합니다.
-
/etc/resolv.conf 파일에 InfoBlox DNS IP 주소와 도메인 검색 경로를 추가합니다.
참고: NetScaler Management and Analytics System을 다시 시작할 때 /etc/resolv.conf 파일에서 InfoBlox DNS IP 주소 및 도메인 검색 경로를 유지하려면 /mpsconfig/svm.conf 파일에서 다음 항목을 업데이트합니다. /mps/changenameserver.sh <DNS IP address1> <DNS IP address2> echo “search <domain name>” » /etc/resolv.conf - JSON 스크립트 파일을 사용하여 NetScaler CPX 인스턴스를 시작합니다. 다음은 샘플 JSON 스크립트 파일입니다.
참고: JSON 스크립트 파일에 다음 줄이 포함되어 있는지 확인하십시오."cmd" : "cd /var/netscaler/bins/ ; sed -i 's/\# Creating NSPPE startup conf, Read By PE/\# Creating NSPPE startup conf, Read By PE\\\\necho \\"$NSIP $HOSTNAME\\" \>\> \\\\\\/etc\\\\\\/hosts/' ./docker\_startup.sh ; bash -C ./docker\_startup.sh ; bash",
샘플 JSON 스크립트:
curl -X POST http://10.xx.xx.62:8080/v2/apps -d @cpx_nuage_custom_etchostcorrection.json -H "Content-type: application/json"
{
"id": "cpx-host3",
"cpus": 1,
"mem": 1024,
"instances": 2,
"cmd" : "cd /var/netscaler/bins/ ; sed -i 's/# Creating NSPPE startup conf, Read By PE/# Creating NSPPE startup conf, Read By PE\necho "$NSIP $HOSTNAME" >> \/etc\/hosts/' ./docker_startup.sh ; bash -C ./docker_startup.sh ; bash",
"constraints": [["hostname", "UNIQUE"]],
"container": {
"type": "DOCKER",
"docker": {
"image": “cpx:11.1.40.3",
"network": "NONE",
"privileged": true,
"parameters": [
{ "key": "tty", "value": "true" }
]
}
},
"env": {
"NUAGE-ENTERPRISE": "<nuage_enterprise>",
"NUAGE-DOMAIN" : "<nuage_domain>",
"NUAGE-ZONE":"<nuage_zone>",
"NUAGE-NETWORK":"<nuage_network>",
"NUAGE-USER":"<nuage_user>",
"NS_MGMT_SERVER":"<NMAS_server_IP>"
},
"labels": {
"NETSCALER_AS_APP": "true"
}
}
여기서:
- <nuage_enterprise>는 Nuage 엔터프라이즈 이름입니다.
- <nuage_domain>은 Nuage 도메인 이름입니다.
- <nuage_zone>은 Nuage 영역 이름입니다.
- <nuage_network>는 Nuage 네트워크 세부 정보입니다.
- <nuage_user>는 Nuage 관리 사용자 이름입니다.
- <NMAS_server_IP>는 NetScaler MAS 서버 IP 주소입니다.