인스턴스의 자동 확장
Red Hat OpenStack Platform에서 자동 확장 구성
초록
1장. 컴퓨팅 인스턴스의 자동 스케일링 구성 링크 복사링크가 클립보드에 복사되었습니다!
많은 시스템 사용량에 대응하여 컴퓨팅 인스턴스를 자동으로 확장할 수 있습니다. CPU 또는 메모리 사용과 같은 요소를 고려하는 사전 정의된 규칙을 사용하면 필요에 따라 자동으로 추가 인스턴스를 추가하고 제거하도록 오케스트레이션(heat)을 구성할 수 있습니다.
1.1. 자동 스케일링의 아키텍처 개요 링크 복사링크가 클립보드에 복사되었습니다!
1.1.1. 오케스트레이션 링크 복사링크가 클립보드에 복사되었습니다!
자동 확장을 제공하는 핵심 구성 요소는 Orchestration(heat)입니다. 오케스트레이션을 사용하여 사람이 읽을 수 있는 YAML 템플릿을 사용하여 규칙을 정의할 수 있습니다. 이러한 규칙은 Telemetry 데이터를 기반으로 시스템 부하를 평가하여 스택에 더 많은 인스턴스를 추가해야 하는지 확인하도록 적용됩니다. 로드가 삭제되면 오케스트레이션에서 사용되지 않는 인스턴스를 다시 자동으로 제거할 수 있습니다.
1.1.2. telemetry 링크 복사링크가 클립보드에 복사되었습니다!
Telemetry를 사용하여 Red Hat OpenStack Platform 환경의 성능을 모니터링하고, 인스턴스 및 물리적 호스트에 대한 CPU, 스토리지 및 메모리에 대한 데이터를 수집할 수 있습니다. 오케스트레이션 템플릿은 Telemetry 데이터를 검사하여 사전 정의된 작업이 시작되는지 여부를 평가합니다.
1.1.3. 주요 용어 링크 복사링크가 클립보드에 복사되었습니다!
- 스택 - 애플리케이션을 작동하는 데 필요한 모든 리소스를 나타냅니다. 단일 인스턴스 및 해당 리소스만큼 단순하거나 다계층 애플리케이션을 구성하는 모든 리소스 종속 항목이 있는 여러 인스턴스로 복잡할 수 있습니다.
템플릿 - heat가 실행할 일련의 작업을 정의하는 YAML 스크립트입니다. 예를 들어 특정 함수에 대해 별도의 템플릿을 사용하는 것이 좋습니다.For example, it is preferred to use separate templates for certain functions:
- 템플릿 파일 - Telemetry가 응답해야 하는 임계값을 정의하고 자동 확장 그룹을 정의합니다.
- 환경 파일 - 사용 가능한 플레이버 및 이미지, 가상 네트워크를 구성하는 방법, 설치해야 하는 소프트웨어 등 환경에 대한 빌드 정보를 정의합니다.
1.2. 예: CPU 사용량에 따라 자동 스케일링 링크 복사링크가 클립보드에 복사되었습니다!
이 예제에서 오케스트레이션에서는 원격 분석 데이터를 검사하고 높은 CPU 사용량에 대한 응답으로 인스턴스 수를 자동으로 늘립니다. 필요한 규칙 및 후속 구성을 정의하기 위해 스택 템플릿과 환경 템플릿이 생성됩니다. 이 예제에서는 네트워크와 같은 기존 리소스를 사용하고 자체 환경에서 다를 수 있는 이름을 사용합니다.
인스턴스 플레이버, 네트워킹 구성 및 이미지 유형을 설명하는 환경 템플릿을 생성하여 템플릿
/home/<user>/stacks/example1/cirros.yaml파일에 저장합니다. <user> 변수를 실제 사용자 이름으로 바꿉니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow ~/stacks/example1/environment.yaml에 오케스트레이션 리소스를 등록합니다.resource_registry: "OS::Nova::Server::Cirros": ~/stacks/example1/cirros.yamlresource_registry: "OS::Nova::Server::Cirros": ~/stacks/example1/cirros.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 조사할 CPU 임계값 및 추가할 인스턴스 수를 설명하는 스택 템플릿을 생성합니다. 또한 이 템플릿에 참여할 수 있는 최소 및 최대 인스턴스 수를 정의하는 인스턴스 그룹도 생성됩니다.
참고granularity매개변수는 gnocchicpu_util지표 단위에 따라 설정해야 합니다. 자세한 내용은 이 솔루션 문서 를 참조하십시오.~/stacks/example1/template.yaml에 다음 값을 저장합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 OpenStack 명령을 실행하여 환경을 빌드하고 인스턴스를 배포합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 오케스트레이션에서는 스택을 생성하고
scaleup_group정의의min_size매개변수에 정의된 대로 정의된 cirros 인스턴스 수를 시작합니다. 인스턴스가 성공적으로 생성되었는지 확인합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 또한 오케스트레이션에서는
cpu_alarm_high및cpu_alarm_low에 정의된 대로 확장 또는 축소 이벤트를 트리거하는 데 사용되는 두 개의 cpu 알람을 생성합니다. 트리거가 존재하는지 확인합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.2.1. 자동 확장 인스턴스 테스트 링크 복사링크가 클립보드에 복사되었습니다!
오케스트레이션은 cpu_alarm_high 임계값 정의에 따라 자동으로 인스턴스를 확장할 수 있습니다. CPU 사용률이 임계값 매개변수에 정의된 값에 도달하면 부하 분산을 위해 다른 인스턴스가 시작됩니다. 위의 template.yaml 파일의 임계값 이 80%로 설정됩니다.
인스턴스에 로그온하고 여러
dd명령을 실행하여 부하를 생성합니다.ssh -i ~/mykey.pem cirros@192.168.122.8 sudo dd if=/dev/zero of=/dev/null & sudo dd if=/dev/zero of=/dev/null & sudo dd if=/dev/zero of=/dev/null &
$ ssh -i ~/mykey.pem cirros@192.168.122.8 $ sudo dd if=/dev/zero of=/dev/null & $ sudo dd if=/dev/zero of=/dev/null & $ sudo dd if=/dev/zero of=/dev/null &Copy to Clipboard Copied! Toggle word wrap Toggle overflow dd명령을 실행하면 cirros 인스턴스에서 100% CPU 사용률이 있을 것으로 예상할 수 있습니다. 알람이 트리거되었는지 확인합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 일정 시간(약 60초) 후에 오케스트레이션은 다른 인스턴스를 시작하고 그룹에 추가합니다.
nova list명령을 사용하여 이를 확인할 수 있습니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다른 짧은 기간 후에는 오케스트레이션이 3개의 인스턴스로 다시 자동 확장되었음을 확인할 수 있습니다. 구성은 최대 세 개의 인스턴스로 설정되므로 더 큰 인스턴스(
scaleup_group정의:max_size)를 확장하지 않습니다. 다시 말하지만, 위에서 언급한 명령을 사용하여 이를 확인할 수 있습니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.2.2. 인스턴스 자동 축소 링크 복사링크가 클립보드에 복사되었습니다!
또한 오케스트레이션에서는 cpu_alarm_low 임계값을 기반으로 인스턴스를 자동으로 축소할 수 있습니다. 이 예에서는 CPU 사용률이 5% 미만인 경우 인스턴스가 확장됩니다.
실행 중인
dd프로세스를 종료하고 오케스트레이션을 관찰하여 인스턴스를 다시 축소합니다.killall dd
$ killall ddCopy to Clipboard Copied! Toggle word wrap Toggle overflow dd프로세스를 중지하면cpu_alarm_low 이벤트가 트리거됩니다. 그 결과 오케스트레이션에서 자동으로 축소를 시작하고 인스턴스를 제거합니다. 해당 알람이 트리거되었는지 확인합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 5분 후에 오케스트레이션을 통해 인스턴스 수를
scaleup_group정의의min_size매개변수에 정의된 최소 값으로 지속적으로 줄입니다. 이 시나리오에서는min_size매개변수가1로 설정됩니다.
1.2.3. 설정 문제 해결 링크 복사링크가 클립보드에 복사되었습니다!
환경이 제대로 작동하지 않는 경우 로그 파일 및 기록 레코드에서 오류를 찾을 수 있습니다.
상태 전환에 대한 정보를 얻으려면 스택 이벤트 레코드를 나열할 수 있습니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 알람 기록 로그를 읽으려면 다음을 수행합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 기존 스택에 대해 heat가 수집하는 스케일 아웃 또는 축소 작업의 레코드를 보려면
awk를 사용하여heat-engine.log를 구문 분석할 수 있습니다.awk '/Stack UPDATE started/,/Stack CREATE completed successfully/ {print $0}' /var/log/containers/heat/heat-engine.log$ awk '/Stack UPDATE started/,/Stack CREATE completed successfully/ {print $0}' /var/log/containers/heat/heat-engine.logCopy to Clipboard Copied! Toggle word wrap Toggle overflow aodh 관련 정보
를보려면evaluator.log를 확인하십시오.grep -i alarm /var/log/containers/aodh/evaluator.log | grep -i transition
$ grep -i alarm /var/log/containers/aodh/evaluator.log | grep -i transitionCopy to Clipboard Copied! Toggle word wrap Toggle overflow