자동 확장 워크로드의 커스텀 측정항목 및 외부 측정항목

이 페이지에서는 수평형 Pod 자동 확장 처리가 지정된 워크로드의 복제본 수를 자동으로 늘리거나 줄이기 위해 사용할 수 있는 커스텀 측정항목 및 외부 측정항목을 설명합니다.

수직형 Pod 자동 확장 처리와 달리 수평형 Pod 자동 확장 처리는 워크로드의 구성된 요청을 수정하지 않습니다. 수평형 Pod 자동 확장 처리는 복제본의 수만 조절합니다.

커스텀 측정항목 및 외부 측정항목을 통해 워크로드는 워크로드 자체 이외의 조건에 적응할 수 있습니다. 큐에서 작업을 가져와서 완료하는 애플리케이션을 생각해 보세요. 애플리케이션은 작업을 처리하는 시간 또는 대기중인 작업 수에 대한 서비스 수준 목표(SLO)를 가질 수 있습니다. 큐가 증가하는 경우 워크로드의 복제본이 워크로드의 SLO를 충족할 수 있습니다. 큐가 비어 있거나 예상보다 빠르게 감소하는 경우 워크로드의 SLO를 유지하면서 복제본을 줄여 비용을 절약할 수 있습니다.

커스텀 측정항목 및 외부 측정항목은 서로 다릅니다.

  • 커스텀 측정항목은 Kubernetes에서 실행 중인 애플리케이션에서 보고됩니다. 자세한 내용은 이 주제의 커스텀 측정항목을 참조하세요.
  • 외부 측정항목은 클러스터에서 실행되지 않지만 Kubernetes 애플리케이션에 영향을 주는 성능을 가진 애플리케이션이나 서비스에서 보고됩니다. 참조용으로 Cloud Monitoring 또는 Pub/Sub에서 측정항목을 보고할 수 있습니다.

커스텀 측정항목 및 외부 측정항목은 다른 방향으로 작동합니다. 예를 들어 큐에 적은 수의 작업이 있으면 애플리케이션이 잘 작동하고 자동 축소에 적합할 수 있다는 의미일 수 있습니다.

자세한 내용은 이 주제의 커스텀 측정항목이나 외부 측정항목을 참조하세요.

커스텀 측정항목

애플리케이션에서는 Cloud Monitoring에 커스텀 측정항목을 보고할 수 있습니다. 이러한 측정항목에 응답하고 워크로드를 자동으로 확장하도록 Kubernetes를 구성할 수 있습니다. 예를 들어 초당 쿼리 수, 초당 쓰기, 네트워크 성능, 다른 애플리케이션과 통신할 때의 지연 시간 또는 워크로드에 적합한 기타 측정항목 등의 측정항목을 기반으로 애플리케이션을 확장할 수 있습니다.

다음 항목에서 커스텀 측정항목을 선택할 수 있습니다.

  • 특정 노드, Pod 또는 CustomResourceDefinition(CRD)을 포함한 모든 종류의 Kubernetes 객체
  • 배포의 모든 Pod에서 보고된 측정항목의 평균값

라벨의 키와 값에 selector 필드 집합을 추가하여 라벨별로 지정된 커스텀 측정항목을 필터링할 수 있습니다. 예를 들어 selector: "environment=prod"를 설정하여 environment=prod 라벨이 있는 측정항목 값만 집계할 수 있습니다. selector는 여러 라벨 표현의 바이너리 조합일 수 있습니다. 자세한 내용은 Monitoring 문서의 로그 기반 측정항목 라벨을 참조하세요.

커스텀 측정항목을 사용하려면 먼저 Google Cloud 프로젝트에서 Monitoring을 사용 설정하고 클러스터에 Stackdriver 어댑터를 설치해야 합니다. 커스텀 측정항목을 Monitoring으로 내보낸 후 수평형 Pod 자동 확장 처리에서 자동 확장 이벤트를 트리거하여 워크로드 형태를 변경할 수 있습니다.

커스텀 측정항목은 애플리케이션에서 특정 형식으로 내보내야 합니다. Monitoring UI에는 커스텀 측정항목을 자동으로 생성하는 데 도움이 되는 측정항목 자동 생성 도구가 포함되어 있습니다. 자동 생성 도구를 사용하여 커스텀 측정항목을 만들면 Monitoring이 이를 자동으로 감지합니다.

자세한 내용은 커스텀 측정항목으로 배포 자동 확장과 관련된 가이드를 참조하세요.

외부 측정항목

Kubernetes 외부의 애플리케이션 또는 서비스 성능을 기반으로 워크로드를 확장해야 하는 경우 외부 측정항목을 구성할 수 있습니다. 예를 들어 전달되지 않은 메시지 수가 증가하는 추세를 보이는 경우 Pub/Sub에서 메시지를 수집하기 위해 애플리케이션의 용량을 늘려야 할 수 있습니다.

외부 애플리케이션은 클러스터가 액세스할 수 있는 Monitoring 인스턴스로 측정항목을 내보내야 합니다. 시간 경과에 따라 각 측정항목의 추세를 기반으로 수평형 Pod 자동 확장 처리에서 워크로드의 형태를 자동으로 변경합니다.

자세한 내용은 외부 측정항목으로 배포 자동 확장과 관련된 가이드를 참조하세요.

측정항목 가져오기

측정항목을 Monitoring으로 가져오려면 다음 중 하나를 수행합니다.

  • Cloud Monitoring API을 사용하여 애플리케이션에서 측정항목 내보내거나
  • Prometheus 형식으로 측정항목을 내보내도록 애플리케이션을 구성합니다. 그런 다음 Prometheus-to-Stackdriver 어댑터를 실행합니다. 이 도구는 측정항목을 스크랩하여 Monitoring 형식으로 변환하고 Monitoring API에 푸시하는 소규모 오픈소스 사이드카 컨테이너입니다.

자세한 내용은 Monitoring 문서의 측정항목 만들기를 참조하세요.

다음 단계