
![[16.0.0.3 and later]](../ng_v16003plus.gif)
Docker 컨테이너 또는 Node.js 서버에서 Liberty 프로비저닝 가능 클러스터 구성
Docker 컨테이너 또는 Node.js 서버에서 Liberty 서버의 자동 배치를 지원하도록 집합체를 구성할 수 있습니다. 스케일링 제어기는 등록된 호스트에 Liberty 소프트웨어를 설치하고 서버를 새로 작성할 수 있습니다. 또한 스케일링 제어기는 자원 사용과 선택적 스케일링 정책을 기반으로 배치된 서버를 시작하거나 중지할 수 있습니다. 애플리케이션 수요가 높으면 사용 가능한 서버의 수가 늘어나고 애플리케이션 수요가 낮으면 수가 줄어듭니다.
프로시저
- JVM 탄력성을 위한 자동 스케일링 가능 클러스터 구성의 단계를 완료하십시오.
시청: JVM 탄력성을 위한 Liberty 자동 스케일링 가능 클러스터 구성 비디오는 단계를 보여줍니다. [비디오 원고]
- 기존 동적 클러스터 멤버가 stackGroups 디렉토리 구조에 놓이는
package_name.deploy.xml 파일에서 사용될 클러스터 이름에 속하는지 확인하십시오.
이 클러스터 멤버는 package_name.deploy.xml 파일에서 정의된 대로 배치될 동일 유형의 멤버여야 합니다. 예를 들어, 스택이 Docker일 경우에는 Liberty Docker 멤버가 있어야 합니다.
package_name은 스케일링 제어기가 대상 호스트에 프로비저닝할 서버 패키지의 이름입니다. 패키지에 대한 자세한 정보는 5단계를 참조하십시오.
- 옵션: 스케일링 제어기에 스케일링 정책을 추가하십시오. 스케일링 정책 정의를 참조하십시오.
- 스케일링 제어기에 각 대상 호스트를 등록하십시오.
호스트를 등록하면 스케일링 제어기가 호스트의 파일, 명령, 기타 자원에 액세스할 수 있을 뿐만 아니라 해당 호스트에 파일을 전송할 수 있습니다. registerHost 명령을 사용하여 대상 호스트를 등록하십시오. 스케일링 제어기의 server.xml 파일에서 --host, --port, --user, --password 매개변수에 대한 값을 찾으십시오. Linux 또는 Windows 운영 체제의 대상 호스트의 경우와 같이 SSH 개인 키 파일을 사용하지 않으려면 --rpcUser 및 --rpcUserPassword 매개변수를 설정하여 운영 체제 로그인 사용자 및 비밀번호를 포함하십시오. --rpcUser에 지정된 사용자에게 대상 배치 위치에 대한 운영 체제 권한이 있어야 합니다.
wlp/bin/collective registerHost targetHost --host=controllerHost --port=controllerHTTPSPort --user=controllerAdmin --password=controllerAdminPassword --rpcUser=osUser --rpcUserPassword=osUserPassword
호스트가 이미 등록된 경우에는 updateHost 명령을 사용하여 등록 정보를 재설정할 수 있습니다. 대상 호스트가 제어기 호스트와 동일한 컴퓨터에 있는 경우 제어기 호스트의 updateHost 명령을 실행해야 합니다.추가 정보는 Liberty 집합체에 호스트 컴퓨터 등록의 내용을 참조하십시오.
- DeployService 배치 조작에 대한 배치 규칙을 구성하는
package_name.deploy.xml로 이름 지정된 파일을 작성하십시오.
배치 규칙 입력 변수에 대한 값을 설정하는 이름/값 쌍을 추가할 수 있습니다.
<deploy> <useRule id="rule_ID" /> <variable name="aName" value="aValue" /> ... </deploy>
rule_ID에 대해, Liberty에서 제공하는 배치 규칙의 id 값을 지정하거나 자체 배치 규칙의 id 값을 지정하십시오. 이 package_name.deploy.xml 파일은 스택 그룹 packages 디렉토리(7단계)에 속합니다.
변수 이름 및 값에 대해, 배치 규칙에 정의된 inputVariables를 사용하십시오.
Node.js 서버의 경우, 배치 REST API를 사용한 Node.js 서버 배치의 2단계에서 애플리케이션 .tgz 컨텐츠 및 위치에 대한 정보를 참조하십시오.
- 스케일링 제어기 server.xml 파일에서 집합체 제어기에 대한 사용자 이름과 비밀번호를 설정하십시오.
<collectiveController user="adminUser" password="adminPassword" />
- package_name.deploy.xml 파일을 WLP_STACK_GROUPS_DIR 위치에 두십시오.
위치의 기본값은 $WLP_USER_DIR/shared/stackGroups입니다.
스케일링 제어기는 파일 시스템에서 기본 패키지 위치를 모니터링하며, 업데이트에 대해 동적으로 반응합니다. 파일을 기본 위치에 두는 경우에는 기본 속성을 변경할 필요가 없습니다.
기본 스택 그룹 defaultStackGroup을 사용할 수 있습니다. 또는 stackGroups의 자체 서브디렉토리를 작성하고(예: myStackGroup) 이를 packages 서브디렉토리에 추가할 수 있습니다.
wlp/usr /servers /shared ... /stackGroups /defaultStackGroup /installables /packages /myStackGroup /packages
스케일링 제어기는 파일을 사용하여 등록된 호스트에서 새 서버를 작성합니다.
팁: 스케일링 정책이 사용되고 새 서버를 필요로 하는 경우에만 새 서버가 작성됩니다. 스케일링 제어기가 새 서버를 작성하도록 하려면 스케일링 제어기의 스케일링 정책에 대한 min 값 및 가능하면 max 값을 조정하십시오. 예를 들어, 스케일링 제어기에 스케일링 정책이 없고 집합체에 세 개의 스케일링 멤버가 있는 경우, 스케일링 제어기가 네 개 이상의 멤버가 실행하도록 하는 정책을 스케일링 제어기 server.xml 파일에 추가하십시오.<scalingDefinitions> <defaultScalingPolicy enabled="true" min="4" max="6"/> </scalingDefinitions>
Liberty 탄력성을 위한 클러스터 이름 지정 규칙은 StackGroupName.PackageName입니다. 스택이 배치되면 <clusterMember name="StackGroupname.PackageName"은 배치된 서버의 server.xml 파일에 자동으로 설정됩니다. 대응되는 <scalingPolicy> 요소에는 <bind clusters="StackGroupName.Packagename"/> 명령문이 포함됩니다. Docker 및 Node.js에 대해 Liberty에서 제공하는 배치 규칙을 사용하여 clusterName을 임의의 값으로 설정할 수 있습니다.
- 배치 변수를 검사하고, 필요하면 이를 사용자 환경에 맞게 변경하십시오.
deployVariable 하위 요소는 배치된 스택에 삽입된 대체 변수를 지정합니다. 스택을 배치할 때마다 대체 변수가 자동으로 증분되도록 지정할 수 있습니다. 예를 들어, deployVariable 속성을 사용하여 초기 포트 번호 값을 지정하고 배치할 때마다 값을 증분하십시오. 이 상황에서 deployVariable은 대상 호스트에서 포트 충돌을 방지하기 위해 사용됩니다.
배치 REST API를 사용하여 Docker 컨테이너 배치의 1c단계에서 설명한 대로 Docker 이미지에 대한 배치 변수를 설정하십시오.
배치 REST API를 사용하여 Node.js 서버 배치의 3단계에서 설명한 대로 Node.js 서버 배치에 대한 배치 변수를 설정하십시오.
- 옵션: 스케일링 제어기가 스택 그룹 추가, 업데이트, 삭제에 대해 파일 시스템을
검사하는 간격을 변경하십시오.
스케일링 제어기가 stackGroups 디렉토리 및 해당 서브디렉토리의 컨텐츠가 변경되었는지 스캔합니다. 컨텐츠가 변경되면 제어기가 이전에 사용할 수 있는 패키지가 없었던 클러스터를 프로비저닝할 수 있습니다. 패키지를 업데이트하는 경우에는 제어기가 기존 클러스터를 다시 프로비저닝하지 않습니다.
기본적으로 제어기는 WLP_STACK_GROUPS_DIR 위치를 5000밀리초(5초)마다 스캔합니다. 스캐닝 간격을 변경하거나 스캐닝을 사용 안함으로 설정하려면 스케일링 제어기 server.xml 파일에서 스택 관리자 속성 scanningInterval 및 scanningEnable의 새 값을 설정하십시오. 예를 들어, 스캐닝 간격을 6초로 설정하고 스캐닝을 사용으로 설정하려면 스케일링 제어기 server.xml 파일에 다음과 유사한 명령문을 추가하십시오.
<stackManager groupsDir="${wlp.install.dir}/usr/shared/stackGroups/" controllerUser="adminUser" controllerUserPassword="adminPassword" scanningInterval="6000" scanningEnable="true"> </stackManager>
스캐닝을 사용 안함으로 설정하려면 scanningEnable을 false로 설정하십시오.
- 옵션: 스케일링 제어기가 새 스택 그룹 추가, 업데이트, 삭제에 대해 파일 시스템을
스캔하도록 지시하십시오.
스케일링 제어기가 스택 그룹 추가, 업데이트, 삭제에 대해 WLP_STACK_GROUPS_DIR 위치를 검사하도록 하려면 StackManager MBean 조작을 실행하십시오. 스케일링 제어기 server.xml 파일에 scanningEnable="false"가 있더라도 StackManager MBean 조작을 실행하여 추가, 업데이트, 삭제에 대해 스캐닝을 강제 실행할 수 있습니다.
StackManager MBean에 대한 정보는 제공된 MBean 목록의 내용을 참조하십시오.
- 옵션: 서버에 대한 라우팅을 사용하려면 IHS를 시작하십시오.
IBM HTTP Server(IHS)가 동적으로 프로비저닝된 클러스터에서 웹 애플리케이션을 발견하고 라우팅하도록 하려면 스케일링 제어기가 상주할 호스트에 동적 라우팅을 사용으로 설정하십시오. IHS는 동적 라우팅 서비스에서 프로비저닝된 서버의 라우팅 정보를 검색합니다. 서버 상태를 사용하는 경우 라우팅 정보를 볼 수 있습니다.
IHS가 설치되어 있지 않으면 Liberty 집합체의 동적 라우팅 설정의 내용을 참조하십시오. 또한 다음 비디오는 IBM Installation Manager를 사용하여 동적 라우팅에 대한 지원을 설치하는 방법을 보여줍니다.
시청: Liberty 동적 라우팅에 IHS 사용 비디오는 IHS를 설치하고 WebSphere Application Server용 웹 서버 플러그인을 설치하며 동적 라우팅에 대한 임시 수정사항을 적용하는 방법을 보여줍니다. [내용]

파일 이름: twlp_autoscale_deployxml.html