검색

4.3. 클러스터의 노드 자동 스케일링 정보

download PDF
중요

자동 스케일링은 Google Cloud Marketplace 및 Red Hat Marketplace를 통해 구매한 클러스터에서만 사용할 수 있습니다.

자동 스케일러 옵션은 클러스터의 머신 수를 자동으로 확장하도록 구성할 수 있습니다.

리소스가 부족하여 현재 노드에서 pod를 예약할 수 없거나 배포 요구를 충족시키기 위해 다른 노드가 필요한 경우 클러스터 자동 스케일러는 클러스터 크기를 늘립니다. 클러스터 자동 스케일러는 사용자가 지정한 제한을 초과하여 클러스터 리소스를 늘리지 않습니다.

또한 클러스터 자동 스케일러는 리소스 사용이 적고 중요한 pod가 모두 다른 노드에 적합한 경우와 같이 상당한 기간 동안 일부 노드가 지속적으로 필요하지 않은 경우 클러스터 크기를 줄입니다.

자동 스케일링을 활성화하는 경우 최소 및 최대 작업자 노드 수를 설정해야 합니다.

참고

클러스터 소유자 및 조직 관리자만 클러스터를 확장하거나 삭제할 수 있습니다.

4.3.1. 클러스터에서 노드 자동 스케일링 활성화

작업자 노드에서 자동 스케일링을 활성화하여 기존 클러스터에 대한 머신 풀 정의를 편집하여 사용 가능한 노드 수를 늘리거나 줄일 수 있습니다.

Red Hat OpenShift Cluster Manager를 사용하여 기존 클러스터에서 노드 자동 스케일링 활성화

OpenShift Cluster Manager 콘솔에서 머신 풀 정의에서 작업자 노드에 대한 자동 스케일링을 활성화합니다.

절차

  1. OpenShift Cluster Manager 에서 클러스터 목록 페이지로 이동하여 자동 스케일링을 활성화할 클러스터를 선택합니다.
  2. 선택한 클러스터에서 머신 풀 탭을 선택합니다.
  3. 자동 스케일링을 활성화하려는 머신 풀 끝에 있는 옵션 메뉴 kebab 를 클릭하고 편집을 선택합니다.
  4. Edit machine pool 대화 상자에서 자동 스케일링 활성화 확인란을 선택합니다.
  5. 저장을 선택하여 이러한 변경 사항을 저장하고 머신 풀에 대한 자동 스케일링을 활성화합니다.

4.3.2. 클러스터에서 자동 스케일링 노드 비활성화

작업자 노드에서 자동 스케일링을 비활성화하여 기존 클러스터에 대한 머신 풀 정의를 편집하여 사용 가능한 노드 수를 늘리거나 줄일 수 있습니다.

OpenShift Cluster Manager 콘솔을 사용하여 클러스터에서 자동 스케일링을 비활성화할 수 있습니다.

Red Hat OpenShift Cluster Manager를 사용하여 기존 클러스터에서 자동 스케일링 노드 비활성화

OpenShift Cluster Manager의 시스템 풀 정의에서 작업자 노드의 자동 스케일링을 비활성화합니다.

절차

  1. OpenShift Cluster Manager 에서 Cluster List 페이지로 이동하여 비활성화해야 하는 자동 스케일링이 있는 클러스터를 선택합니다.
  2. 선택한 클러스터에서 머신 풀 탭을 선택합니다.
  3. 자동 스케일링을 사용하여 머신 풀 끝에 있는 옵션 메뉴 kebab 를 클릭하고 편집을 선택합니다.
  4. Edit machine pool (시스템 풀 편집) 대화 상자에서 자동 스케일링 활성화 확인란을 선택 취소합니다.
  5. 저장을 선택하여 이러한 변경 사항을 저장하고 시스템 풀에서 자동 스케일링을 비활성화합니다.

OpenShift Dedicated 클러스터에 자동 스케일링을 적용하려면 클러스터 자동 스케일러를 배포한 다음 클러스터의 각 머신 유형에 대한 머신 자동 스케일러를 배포해야 합니다.

중요

Machine API가 작동하는 클러스터에서만 클러스터 자동 스케일러를 구성할 수 있습니다.

4.3.3. 클러스터 자동 스케일러 정보

클러스터 자동 스케일러는 현재 배포 요구 사항에 맞게 OpenShift Dedicated 클러스터의 크기를 조정합니다. 이는 Kubernetes 형식의 선언적 인수를 사용하여 특정 클라우드 공급자의 개체에 의존하지 않는 인프라 관리를 제공합니다. 클러스터 자동 스케일러에는 클러스터 범위가 있으며 특정 네임 스페이스와 연결되어 있지 않습니다.

리소스가 부족하여 현재 작업자 노드에서 pod를 예약할 수 없거나 배포 요구를 충족시키기 위해 다른 노드가 필요한 경우 클러스터 자동 스케일러는 클러스터 크기를 늘립니다. 클러스터 자동 스케일러는 사용자가 지정한 제한을 초과하여 클러스터 리소스를 늘리지 않습니다.

클러스터 자동 스케일러는 컨트롤 플레인 노드를 관리하지 않더라도 모든 노드에서 클러스터의 총 메모리와 CPU를 계산합니다. 이러한 값은 단일 시스템 지향이 아닙니다. 전체 클러스터에 있는 모든 리소스를 집계합니다. 예를 들어 최대 메모리 리소스 제한을 설정하면 클러스터 자동 스케일러에 현재 메모리 사용량을 계산할 때 클러스터의 모든 노드가 포함됩니다. 그런 다음 해당 계산은 클러스터 자동 스케일러에 작업자 리소스를 더 추가할 수 있는 용량이 있는지 결정하는 데 사용됩니다.

중요

작성한 ClusterAutoscaler 리솟스 정의의 maxNodesTotal 값이 클러스터에서 예상되는 총 머신 수를 대응하기에 충분한 크기의 값인지 확인합니다. 이 값에는 컨트롤 플레인 머신 수 및 확장 가능한 컴퓨팅 머신 수가 포함되어야 합니다.

10초마다 클러스터 자동 스케일러는 클러스터에서 불필요한 노드를 확인하고 해당 노드를 제거합니다. 다음 조건이 적용되는 경우 클러스터 자동 스케일러는 제거 노드를 고려합니다.

  • 노드 사용률은 클러스터의 노드 사용률 수준 임계값보다 적습니다. 노드 사용률 수준은 노드에 할당된 리소스로 구분된 요청된 리소스의 합계입니다. ClusterAutoscaler 사용자 정의 리소스에 값을 지정하지 않으면 클러스터 자동 스케일러는 기본값 0.5 를 사용하며 이 값은 50%에 해당합니다.
  • 클러스터 자동 스케일러는 노드에서 실행 중인 모든 Pod를 다른 노드로 이동할 수 있습니다. Kubernetes 스케줄러는 노드에서 Pod를 예약하는 역할을 합니다.
  • 클러스터 자동 스케일러에는 축소 비활성화된 주석이 없습니다.

노드에 다음 유형의 pod가 있는 경우 클러스터 자동 스케일러는 해당 노드를 제거하지 않습니다.

  • 제한적인 PDB (Pod Disruption Budgets)가 있는 pod
  • 기본적으로 노드에서 실행되지 않는 Kube 시스템 pod
  • PDB가 없거나 제한적인 PDB가있는 Kube 시스템 pod
  • deployment, replica set 또는 stateful set와 같은 컨트롤러 객체가 지원하지 않는 pod
  • 로컬 스토리지가 있는 pod
  • 리소스 부족, 호환되지 않는 노드 선택기 또는 어피니티(affinity), 안티-어피니티(anti-affinity) 일치 등으로 인해 다른 위치로 이동할 수 없는 pod
  • "cluster-autoscaler.kubernetes.io/safe-to-evict": "true" 주석이없는 경우"cluster-autoscaler.kubernetes.io/safe-to-evict": "false" 주석이 있는 pod

예를 들어 최대 CPU 제한을 64개 코어로 설정하고 각각 8개의 코어가 있는 머신만 생성하도록 클러스터 자동 스케일러를 구성합니다. 클러스터가 30개 코어로 시작하는 경우 클러스터 자동 스케일러는 총 62개 코어에서 최대 4개의 노드를 추가할 수 있습니다.

클러스터 자동 스케일러를 구성하면 추가 사용 제한이 적용됩니다.

  • 자동 스케일링된 노드 그룹에 있는 노드를 직접 변경하지 마십시오. 동일한 노드 그룹 내의 모든 노드는 동일한 용량 및 레이블을 가지며 동일한 시스템 pod를 실행합니다.
  • pod 요청을 지정합니다.
  • pod가 너무 빨리 삭제되지 않도록 해야 하는 경우 적절한 PDB를 구성합니다.
  • 클라우드 제공자 할당량이 구성하는 최대 노드 풀을 지원할 수 있는 충분한 크기인지를 확인합니다.
  • 추가 노드 그룹 Autoscaler, 특히 클라우드 제공자가 제공하는 Autoscaler를 실행하지 마십시오.

HPA (Horizond Pod Autoscaler) 및 클러스터 자동 스케일러는 다른 방식으로 클러스터 리소스를 변경합니다. HPA는 현재 CPU 로드를 기준으로 배포 또는 복제 세트의 복제 수를 변경합니다. 로드가 증가하면 HPA는 클러스터에 사용 가능한 리소스 양에 관계없이 새 복제본을 만듭니다. 리소스가 충분하지 않은 경우 클러스터 자동 스케일러는 리소스를 추가하고 HPA가 생성한 pod를 실행할 수 있도록 합니다. 로드가 감소하면 HPA는 일부 복제를 중지합니다. 이 동작으로 일부 노드가 충분히 활용되지 않거나 완전히 비어 있을 경우 클러스터 자동 스케일러가 불필요한 노드를 삭제합니다.

클러스터 자동 스케일러는 pod 우선 순위를 고려합니다. Pod 우선 순위 및 선점 기능을 사용하면 클러스터에 충분한 리소스가 없는 경우 우선 순위에 따라 pod를 예약할 수 있지만 클러스터 자동 스케일러는 클러스터에 모든 pod를 실행하는 데 필요한 리소스가 있는지 확인합니다. 두 기능을 충족하기 위해 클러스터 자동 스케일러에는 우선 순위 컷오프 기능이 포함되어 있습니다. 이 컷오프 기능을 사용하여 "best-effort" pod를 예약하면 클러스터 자동 스케일러가 리소스를 늘리지 않고 사용 가능한 예비 리소스가 있을 때만 실행됩니다.

컷오프 값보다 우선 순위가 낮은 pod는 클러스터가 확장되지 않거나 클러스터가 축소되지 않도록합니다. pod를 실행하기 위해 추가된 새 노드가 없으며 이러한 pod를 실행하는 노드는 리소스를 확보하기 위해 삭제될 수 있습니다.

머신 API를 사용할 수 있는 플랫폼에서 클러스터 자동 스케일링이 지원됩니다.

4.3.4. 추가 리소스

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.