2.7. 애플리케이션 스케일링


HPA(horizontal Pod Autoscaler)를 사용하여 Pod를 수동으로 또는 자동으로 스케일링합니다. 클러스터 노드를 확장할 수도 있습니다.

사전 요구 사항

  • 활성 ROSA 클러스터
  • 배포된 OSToy 애플리케이션

2.7.1. 수동 Pod 스케일링

다음 방법 중 하나를 사용하여 애플리케이션 Pod를 수동으로 스케일링할 수 있습니다.

  • ReplicaSet 또는 배포 정의 변경
  • 명령줄 사용
  • 웹 콘솔 사용

이 워크샵은 마이크로 서비스에 하나의 Pod만 사용하여 시작됩니다. 배포 정의에서 1 개의 복제본을 정의하면 Kubernetes Replication Controller에서 하나의 Pod를 활성 상태로 유지합니다. 그런 다음 부하를 기반으로 Horizontal Pod Autoscaler(HPA)를 사용하여 Pod 자동 스케일링을 정의하고 필요한 경우 더 많은 Pod를 확장하는 방법을 알아봅니다.

프로세스

  1. OSToy 앱의 탐색 메뉴에서 네트워킹 탭을 클릭합니다.
  2. "Intra-cluster communication" 섹션에서 무작위로 색상을 변경하는 상자를 찾습니다. 박스 내에는 마이크로 서비스의 포드 이름이 표시됩니다. 마이크로 서비스 pod가 하나뿐이므로 이 예제에는 하나의 박스만 있습니다.

  3. 다음 명령을 실행하여 마이크로 서비스에 대해 실행 중인 포드가 하나뿐인지 확인합니다.

    $ oc get pods
    Copy to Clipboard Toggle word wrap

    출력 예

    NAME                                  READY     STATUS    RESTARTS   AGE
    ostoy-frontend-679cb85695-5cn7x       1/1       Running   0          1h
    ostoy-microservice-86b4c6f559-p594d   1/1       Running   0          1h
    Copy to Clipboard Toggle word wrap

  4. ostoy-microservice-deployment.yaml 을 다운로드하여 로컬 머신에 저장합니다.
  5. 다음 예제를 사용하여 배포 정의를 1개 대신 3개의 Pod로 변경합니다.

    spec:
        selector:
          matchLabels:
            app: ostoy-microservice
        replicas: 3
    Copy to Clipboard Toggle word wrap
  6. 다음 명령을 실행하여 복제본 변경 사항을 적용합니다.

    $ oc apply -f ostoy-microservice-deployment.yaml
    Copy to Clipboard Toggle word wrap
    참고

    워크로드 > Deployments > ostoy-microservice > YAML 탭으로 이동하여 OpenShift 웹 콘솔에서 ostoy-microservice- deployment.yaml 파일을 편집할 수도 있습니다.

  7. 다음 명령을 실행하여 Pod 3개가 있는지 확인합니다.

    $ oc get pods
    Copy to Clipboard Toggle word wrap

    출력에서는 이제 마이크로 서비스에 대한 포드가 하나만 아니라 3개의 포드가 있음을 보여줍니다.

    출력 예

    NAME                                  READY   STATUS    RESTARTS   AGE
    ostoy-frontend-5fbcc7d9-rzlgz         1/1     Running   0          26m
    ostoy-microservice-6666dcf455-2lcv4   1/1     Running   0          81s
    ostoy-microservice-6666dcf455-5z56w   1/1     Running   0          81s
    ostoy-microservice-6666dcf455-tqzmn   1/1     Running   0          26m
    Copy to Clipboard Toggle word wrap

  8. CLI(명령줄 인터페이스)를 사용하거나 웹 UI(사용자 인터페이스)를 사용하여 애플리케이션을 확장합니다.

    • CLI에서 다음 명령을 실행하여 Pod 수를 3 에서 2 로 줄입니다.

      $ oc scale deployment ostoy-microservice --replicas=2
      Copy to Clipboard Toggle word wrap
    • OpenShift 웹 콘솔 UI의 탐색 메뉴에서 워크로드 > 배포 > ostoy-microservice 를 클릭합니다.
    • 중간에서 "3 Pod" 라벨이 있는 파란색 원을 찾습니다.
    • 원 옆에 있는 화살표를 선택하면 Pod 수가 스케일링됩니다. 2 의 아래쪽 화살표를 선택합니다.

검증

CLI, 웹 UI 또는 OSToy 애플리케이션을 사용하여 Pod 수를 확인합니다.

  • CLI에서 다음 명령을 실행하여 마이크로 서비스에 두 개의 포드를 사용하고 있는지 확인합니다.

    $ oc get pods
    Copy to Clipboard Toggle word wrap

    출력 예

    NAME                                  READY   STATUS    RESTARTS   AGE
    ostoy-frontend-5fbcc7d9-rzlgz         1/1     Running   0          75m
    ostoy-microservice-6666dcf455-2lcv4   1/1     Running   0          50m
    ostoy-microservice-6666dcf455-tqzmn   1/1     Running   0          75m
    Copy to Clipboard Toggle word wrap

  • 웹 UI에서 워크로드 > 배포 > ostoy-microservice 를 선택합니다.

  • OSToy 애플리케이션의 탐색 메뉴에서 네트워킹을 선택하여 개의 포드가 있는지 확인할 수도 있습니다. 두 Pod에는 두 개의 색상이 지정된 박스가 있어야 합니다.

2.7.2. Pod 자동 스케일링

AWS의 Red Hat OpenShift Service는 Horizontal Pod Autoscaler (HPA)를 제공합니다. HPA는 필요한 경우 메트릭을 사용하여 Pod 수를 늘리거나 줄입니다.

프로세스

  1. 웹 UI의 탐색 메뉴에서 Pod 자동 스케일링을 선택합니다.

  2. 다음 명령을 실행하여 HPA를 생성합니다.

    $ oc autoscale deployment/ostoy-microservice --cpu-percent=80 --min=1 --max=10
    Copy to Clipboard Toggle word wrap

    이 명령은 ostoy-microservice 배포에서 제어하는 Pod의 복제본 1~10개 사이를 유지 관리하는 HPA를 생성합니다. 배포 중에 HPA는 모든 Pod에서 평균 CPU 사용을 80% 및 40밀리코어로 유지하기 위해 복제본 수를 늘리고 줄입니다.

  3. Pod 자동 확장 > Horizontal Pod 자동 확장 페이지에서 로드 증가를 선택합니다.

    중요

    부하를 늘리면 CPU 집약적 계산이 생성되므로 페이지가 응답하지 않을 수 있습니다. 이는 예상된 응답입니다. 로드를 한 번만 늘리십시오. 프로세스에 대한 자세한 내용은 마이크로 서비스의 GitHub 리포지토리 를 참조하십시오.

    몇 분 후에 새 Pod가 색상이 지정된 박스로 표시되는 페이지에 표시됩니다.

    참고

    이 페이지는 지연이 발생할 수 있습니다.

검증

다음 방법 중 하나를 사용하여 Pod 수를 확인합니다.

  • OSToy 애플리케이션의 웹 UI에서 원격 pod 상자를 참조하십시오.

    Pod가 하나뿐이므로 워크로드를 늘리면 Pod 증가가 트리거됩니다.

  • CLI에서 다음 명령을 실행합니다.

    oc get pods --field-selector=status.phase=Running | grep microservice
    Copy to Clipboard Toggle word wrap

    출력 예

    ostoy-microservice-79894f6945-cdmbd   1/1     Running   0          3m14s
    ostoy-microservice-79894f6945-mgwk7   1/1     Running   0          4h24m
    ostoy-microservice-79894f6945-q925d   1/1     Running   0          3m14s
    Copy to Clipboard Toggle word wrap

  • OpenShift Cluster Manager에서 자동 스케일링을 확인할 수도 있습니다.

    1. OpenShift 웹 콘솔 탐색 메뉴에서 모니터링 > 대시보드를 클릭합니다.
    2. 대시보드에서 Kubernetes / Compute Resources / Namespace (Pods) 및 네임스페이스 ostoy 를 선택합니다.

    3. CPU 및 메모리 전반에 걸쳐 리소스 사용량이 표시되는 그래프가 표시됩니다. 상단 그래프는 Pod당 최근 CPU 사용량이 표시되고 더 낮은 그래프는 메모리 사용량을 나타냅니다. 다음은 그래프의 호출을 나열합니다.

      1. 부하 증가(A).
      2. 두 개의 새 Pod(B 및 C)가 생성되었습니다.
      3. 각 그래프의 간격은 CPU 소비를 나타내며 더 많은 로드를 처리하는 Pod를 나타냅니다.
      4. 로드가 감소하고 Pod가 삭제되었습니다.

2.7.3. 노드 자동 스케일링

AWS의 Red Hat OpenShift Service를 사용하면 노드 자동 스케일링을 사용할 수 있습니다. 이 시나리오에서는 클러스터가 처리할 수 없는 대규모 워크로드가 있는 작업으로 새 프로젝트를 생성합니다. 자동 스케일링이 활성화되면 로드가 현재 용량보다 크면 클러스터에서 자동으로 로드를 처리할 새 노드를 생성합니다.

사전 요구 사항

  • 머신 풀에서 자동 스케일링이 활성화됩니다.

프로세스

  1. 다음 명령을 실행하여 autoscale-ex 라는 새 프로젝트를 생성합니다.

    $ oc new-project autoscale-ex
    Copy to Clipboard Toggle word wrap
  2. 다음 명령을 실행하여 작업을 생성합니다.

    $ oc create -f https://raw.githubusercontent.com/openshift-cs/rosaworkshop/master/rosa-workshop/ostoy/yaml/job-work-queue.yaml
    Copy to Clipboard Toggle word wrap
  3. 몇 가지 minuts 후 다음 명령을 실행하여 Pod를 확인합니다.

    $ oc get pods
    Copy to Clipboard Toggle word wrap

    출력 예

    NAME                     READY   STATUS    RESTARTS   AGE
    work-queue-5x2nq-24xxn   0/1     Pending   0          10s
    work-queue-5x2nq-57zpt   0/1     Pending   0          10s
    work-queue-5x2nq-58bvs   0/1     Pending   0          10s
    work-queue-5x2nq-6c5tl   1/1     Running   0          10s
    work-queue-5x2nq-7b84p   0/1     Pending   0          10s
    work-queue-5x2nq-7hktm   0/1     Pending   0          10s
    work-queue-5x2nq-7md52   0/1     Pending   0          10s
    work-queue-5x2nq-7qgmp   0/1     Pending   0          10s
    work-queue-5x2nq-8279r   0/1     Pending   0          10s
    work-queue-5x2nq-8rkj2   0/1     Pending   0          10s
    work-queue-5x2nq-96cdl   0/1     Pending   0          10s
    work-queue-5x2nq-96tfr   0/1     Pending   0          10s
    Copy to Clipboard Toggle word wrap

  4. Pending 상태에 Pod가 많이 있으므로 이 상태는 자동 스케일러를 트리거하여 머신 풀에 더 많은 노드를 생성합니다. 이러한 작업자 노드를 생성하는 시간을 허용합니다.
  5. 몇 분 후에 다음 명령을 사용하여 현재 보유하고 있는 작업자 노드 수를 확인합니다.

    $ oc get nodes
    Copy to Clipboard Toggle word wrap

    출력 예

    NAME                                         STATUS   ROLES          AGE     VERSION
    ip-10-0-138-106.us-west-2.compute.internal   Ready    infra,worker   22h     v1.23.5+3afdacb
    ip-10-0-153-68.us-west-2.compute.internal    Ready    worker         2m12s   v1.23.5+3afdacb
    ip-10-0-165-183.us-west-2.compute.internal   Ready    worker         2m8s    v1.23.5+3afdacb
    ip-10-0-176-123.us-west-2.compute.internal   Ready    infra,worker   22h     v1.23.5+3afdacb
    ip-10-0-195-210.us-west-2.compute.internal   Ready    master         23h     v1.23.5+3afdacb
    ip-10-0-196-84.us-west-2.compute.internal    Ready    master         23h     v1.23.5+3afdacb
    ip-10-0-203-104.us-west-2.compute.internal   Ready    worker         2m6s    v1.23.5+3afdacb
    ip-10-0-217-202.us-west-2.compute.internal   Ready    master         23h     v1.23.5+3afdacb
    ip-10-0-225-141.us-west-2.compute.internal   Ready    worker         23h     v1.23.5+3afdacb
    ip-10-0-231-245.us-west-2.compute.internal   Ready    worker         2m11s   v1.23.5+3afdacb
    ip-10-0-245-27.us-west-2.compute.internal    Ready    worker         2m8s    v1.23.5+3afdacb
    ip-10-0-245-7.us-west-2.compute.internal     Ready    worker         23h     v1.23.5+3afdacb
    Copy to Clipboard Toggle word wrap

    워크로드를 처리하기 위해 작업자 노드가 자동으로 생성되었는지 확인할 수 있습니다.

  6. 다음 명령을 입력하여 OSToy 애플리케이션으로 돌아갑니다.

    $ oc project ostoy
    Copy to Clipboard Toggle word wrap
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat