5.3. Cluster Loader 구성

이 툴에서는 여러 템플릿 또는 Pod를 포함하는 여러 네임스페이스(프로젝트)를 생성합니다.

5.3.1. Cluster Loader 구성 파일 예

Cluster Loader 구성 파일은 기본 YAML 파일입니다.

provider: local 1
ClusterLoader:
  cleanup: true
  projects:
    - num: 1
      basename: clusterloader-cakephp-mysql
      tuning: default
      ifexists: reuse
      templates:
        - num: 1
          file: cakephp-mysql.json

    - num: 1
      basename: clusterloader-dancer-mysql
      tuning: default
      ifexists: reuse
      templates:
        - num: 1
          file: dancer-mysql.json

    - num: 1
      basename: clusterloader-django-postgresql
      tuning: default
      ifexists: reuse
      templates:
        - num: 1
          file: django-postgresql.json

    - num: 1
      basename: clusterloader-nodejs-mongodb
      tuning: default
      ifexists: reuse
      templates:
        - num: 1
          file: quickstarts/nodejs-mongodb.json

    - num: 1
      basename: clusterloader-rails-postgresql
      tuning: default
      templates:
        - num: 1
          file: rails-postgresql.json

  tuningsets: 2
    - name: default
      pods:
        stepping: 3
          stepsize: 5
          pause: 0 s
        rate_limit: 4
          delay: 0 ms
1
엔드 투 엔드 테스트에 대한 선택적 설정입니다. 추가 로그 메시지가 생성되지 않도록 하려면 local로 설정하십시오.
2
튜닝 세트를 사용하면 속도 제한 및 스테핑이 허용되므로 세트 간에 정지하는 동안 Pod에 대한 여러 일괄 처리를 생성할 수 있습니다. Cluster Loader에서는 이전 단계가 완료되는지를 모니터링한 후 작업을 계속합니다.
3
스테핑은 N개의 오브젝트가 생성될 때마다 M초 동안 정지하는 것입니다.
4
속도 제한은 오브젝트 생성 간에 M밀리초 동안 대기하는 것입니다.

이 예에서는 외부 템플릿 파일 또는 Pod 사양 파일에 대한 참조도 컨테이너에 마운트되었다고 가정합니다.

중요

Microsoft Azure에서 Cluster Loader를 실행하는 경우 AZURE_AUTH_LOCATION 변수를 설치 프로그램 디렉터리에 있는 terraform.azure.auto.tfvars.json 출력이 포함된 파일로 설정해야 합니다.

5.3.2. 구성 필드

표 5.1. 최상위 수준 Cluster Loader 필드

필드설명

cleanup

true 또는 false로 설정합니다. 구성당 정의가 하나입니다. true로 설정되면 테스트 종료 시 cleanup이 Cluster Loader에서 생성한 모든 네임스페이스(프로젝트)를 삭제합니다.

projects

정의가 하나 이상인 하위 오브젝트입니다. projects 아래에는 생성할 각 네임스페이스가 정의되며 projects에는 여러 개의 필수 부제목이 있습니다.

tuningsets

구성당 정의가 하나인 하위 오브젝트입니다. tuningsets를 사용하면 사용자가 튜닝 세트를 정의하여 구성 가능한 타이밍을 프로젝트 또는 오브젝트 생성(Pod, 템플릿 등)에 추가할 수 있습니다.

sync

구성당 정의가 하나인 선택적 하위 오브젝트입니다. 오브젝트 생성 중 동기화 가능성을 추가합니다.

표 5.2. projects 아래 필드

필드설명

num

정수입니다. 생성할 프로젝트 수에 대한 하나의 정의입니다.

basename

문자열입니다. 프로젝트의 기본 이름에 대한 하나의 정의입니다. 충돌을 방지하도록 동일한 네임스페이스 수가 Basename에 추가됩니다.

tuning

문자열입니다. 오브젝트에 적용할 튜닝 세트에 대한 하나의 정의로, 이 네임스페이스 내에서 배포합니다.

ifexists

reuse 또는 delete가 포함된 문자열입니다. 실행 중에 생성되는 프로젝트 또는 네임스페이스와 이름이 동일한 프로젝트 또는 네임스페이스를 찾는 경우 툴에서 수행할 작업을 정의합니다.

configmaps

키-값 쌍 목록입니다. 키는 구성 맵 이름이고 값은 구성 맵을 생성하는 파일의 경로입니다.

secrets

키-값 쌍 목록입니다. 키는 보안 이름이고 값은 보안을 생성하는 파일의 경로입니다.

pods

배포할 Pod 정의가 하나 이상인 하위 오브젝트입니다.

templates

배포할 템플릿 정의가 하나 이상인 하위 오브젝트입니다.

표 5.3. podstemplates 아래 필드

필드설명

num

정수입니다. 배포할 Pod 또는 템플릿 수입니다.

image

문자열입니다. docker 이미지를 가져올 수 있는 리포지토리에 대한 docker 이미지 URL입니다.

basename

문자열입니다. 생성할 템플릿(또는 Pod)의 기본 이름에 대한 하나의 정의입니다.

file

문자열입니다. 생성할 Pod 사양 또는 템플릿이 있는 로컬 파일에 대한 경로입니다.

parameters

키-값 쌍입니다. parameters 아래에서는 Pod 또는 템플릿에서 재정의할 값 목록을 지정할 수 있습니다.

표 5.4. tuningsets 아래 필드

필드설명

name

문자열입니다. 프로젝트에서 튜닝을 정의할 때 지정된 이름과 일치하는 튜닝 세트의 이름입니다.

pods

Pod에 적용할 tuningsets를 식별하는 하위 오브젝트입니다.

templates

템플릿에 적용할 tuningsets를 식별하는 하위 오브젝트입니다.

표 5.5. tuningsets pods 또는 tuningsets templates 아래 필드

필드설명

stepping

하위 오브젝트입니다. 단계 생성 패턴으로 오브젝트를 생성하려는 경우 사용되는 스테핑 구성입니다.

rate_limit

하위 오브젝트입니다. 오브젝트 생성 속도를 제한하는 속도 제한 튜닝 세트 구성입니다.

표 5.6. tuningsets pods 또는 tuningsets templates, stepping 아래 필드

필드설명

stepsize

정수입니다. 오브젝트 생성을 정지하기 전 생성할 오브젝트 수입니다.

pause

정수입니다. stepsize에 정의된 오브젝트 수를 생성한 후 정지하는 시간(초)입니다.

timeout

정수입니다. 오브젝트 생성에 성공하지 못하는 경우 실패 전 대기하는 시간(초)입니다.

delay

정수입니다. 생성 요청 간에 대기하는 시간(밀리초)입니다.

표 5.7. sync 아래 필드

필드설명

server

enabledport 필드가 있는 하위 오브젝트입니다. 부울 enabled는 Pod 동기화를 위해 HTTP 서버를 시작할지 여부를 정의합니다. 정수 port는 청취할 HTTP 서버 포트(기본적으로 9090)를 정의합니다.

running

부울입니다. selectors와 일치하는 레이블이 있는 Pod가 Running 상태가 될 때까지 기다립니다.

succeeded

부울입니다. selectors와 일치하는 레이블이 있는 Pod가 Completed 상태가 될 때까지 기다립니다.

selectors

Running 또는 Completed 상태의 Pod와 일치하는 선택기 목록입니다.

timeout

문자열입니다. Pod가 Running 또는 Completed 상태가 될 때까지 대기할 동기화 시간 제한 기간입니다. 값이 0이 아닌 경우 [ns|us|ms|s|m|h] 단위를 사용하십시오.