클러스터 자동 확장 처리 정보
이 문서에서는 노드 풀 크기를 자동으로 제어하는 클러스터 자동 확장 처리에 대해 설명합니다. 클러스터 자동 확장 처리는 노드 풀의 노드 수에 최솟값과 최댓값을 지정하면 사용 설정됩니다. 노드 풀을 만들거나 노드 풀을 업데이트할 때 이러한 값을 지정합니다.
노드 풀 자동 확장
클러스터 자동 확장 처리는 워크로드 수요를 기준으로 지정된 노드 풀에서 노드 수 크기를 자동으로 조정합니다. 수동으로 노드를 추가, 삭제하거나 노드 풀을 과도하게 프로비저닝할 필요가 없습니다. 대신 노드 풀의 최소 및 최대 크기를 지정하면 나머지는 자동으로 지정됩니다.
클러스터를 자동 확장할 때 리소스를 삭제하거나 이동해야 할 경우 워크로드가 일시적으로 중단될 수 있습니다. 예를 들어 워크로드가 단일 복제본이 포함된 컨트롤러로 구성되었으면, 현재 노드가 삭제된 경우 해당 복제본의 Pod를 다른 노드에서 다시 예약할 수 있습니다. 따라서 잠재적인 중단을 견디도록 또는 중요한 포드가 중단되지 않도록 워크로드를 설계해야 합니다.
클러스터 자동 확장 처리 작동 방식
클러스터 자동 확장 처리는 노드당 풀 기준으로 작동합니다. 클러스터 자동 확장 처리를 사용하여 노드 풀을 구성할 때는 노드 풀의 최소 및 최대 크기를 지정합니다. 노드 풀을 만들거나 노드 풀을 업데이트할 때 최소 및 최대 크기를 변경할 수 있습니다.
클러스터 자동 확장 처리는 실제 리소스 사용률 대신 노드 풀의 리소스 요청에 따라 자동으로 노드 풀의 크기를 늘리거나 줄입니다. 클러스터 자동 확장 처리는 포드 객체를 예약할 수 없고 요청을 충족하기에 노드 풀에 용량이 충분하지 않은 경우 노드를 추가합니다.
또한 활용률이 낮고 모든 포드 객체를 더 적은 노드 수로 예약할 수 있으면 클러스터 자동 확장 처리가 노드를 삭제합니다. 10분 후에 노드를 정상적으로 드레이닝할 수 없으면 노드가 강제로 종료됩니다. 이 기간은 구성할 수 없습니다.
포드가 너무 적은 리소스를 요청하는 경우(예: 기본값이 부족한 경우) 클러스터 자동 확장 처리는 이러한 상황을 해결하지 않습니다. 모든 워크로드에 적절한 리소스 요청을 만들어서 클러스터 자동 확장 처리가 가능한 한 정확하게 작동하도록 보장할 수 있습니다. 자세한 내용은 컨테이너에 대한 리소스 관리를 참조하세요.
작동 조건
클러스터 자동 확장 처리는 노드 풀 크기를 조절할 때 다음 가정을 따릅니다.
- 복제된 모든 포드 객체를 다른 일부 노드에서 다시 시작할 수 있으며, 결과적으로 일시적인 중단이 발생할 수 있습니다. 워크로드에서 중단이 허용되지 않으면 자동 확장이 사용 중지된 노드 풀에서 실행되도록 워크로드를 구성합니다. 자세한 내용은 노드 taint로 예약 관리를 참조하세요.
- 클러스터 자동 확장 처리는 사용자가 수행하는 수동 노드 관리 작업을 재정의할 수 있습니다.
- 단일 노드 풀의 모든 노드에 동일한 라벨 집합이 포함됩니다.
- 클러스터 자동 확장 처리는 확장 후 유휴 CPU 또는 사용되지 않는 메모리가 가장 적은 노드 그룹을 선택합니다. 이 동작은 동일한 클러스터에서 노드 크기가 다를 때(예: 높은 CPU 또는 높은 메모리 노드) 확장되는 노드 풀에 영향을 줍니다.
최소 및 최대 노드 풀 크기
min-nodes
및 max-nodes
플래그를 사용하여 클러스터의 각 노드 풀에 대해 최소 및 최대 크기를 지정할 수 있습니다. 자동 확장을 사용 중지하려면 min-nodes
및 max-nodes
를 같은 숫자로 설정합니다. 클러스터 자동 확장 처리가 크기 경계 내에서 확장 결정을 수행합니다.
노드 풀의 최대 크기를 설정할 때 모든 워크로드를 실행하기에 충분히 큰지 확인합니다. 클러스터의 노드 풀에 모든 워크로드를 실행하는데 사용 가능한 메모리 및 CPU가 부족하면 중단이 발생할 수 있습니다.
PodDisruptionBudget
을 사용하여 워크로드 보호
PodDisruptionBudget
으로 워크로드 중단에 대비하도록 Azure용 GKE를 구성할 수 있습니다. PodDisruptionBudget
을 만들 때 사용 가능한 포드 복제본의 최소 개수 또는 언제든지 사용할 수 없는 포드 복제본의 최대 개수를 지정합니다. 자세한 내용은 애플리케이션에 중단 예산 지정을 참조하세요.