작업자 노드 리소스 예약

워커 노드의 리소스 여유량을 파악하면 클러스터 용량을 계획하고 포드 스케줄링 문제를 해결하는 데 도움이 됩니다.

IBM Cloud Kubernetes Service에서는 각 작업자 노드에서 사용 가능한 컴퓨팅 리소스를 제한하는 컴퓨팅 리소스 예약을 설정합니다. 예약 메모리, CPU 리소스 및 프로세스 ID(PID)는 작업자 노드의 팟(Pod)에서 사용될 수 없으며, 각 작업자 노드의 할당 가능한 리소스를 줄입니다. 초기에 팟(Pod)을 배치하는 경우, 작업자 노드에 할당 가능한 리소스가 충분히 없으면 배치에 실패합니다. 또한 팟(Pod)이 메모리 및 CPU에 대해 작업자 노드 리소스 한계를 초과하면 팟(Pod)이 제거됩니다. Kubernetes 에서 이 한도를 ‘하드 퇴거 임계값’이라고 부릅니다. PID 한계를 초과하는 팟(Pod)의 경우 팟(Pod)은 할당 가능한 만큼의 PID를 수신하지만 PID를 기반으로 제거되지는 않습니다.

자원 매장량을 언제 확인해야 하는가

다음과 같은 경우 워커 노드의 리소스 여유량을 확인하십시오:

  • 클러스터 용량 계획 수립 및 필요한 워커 노드 수 결정
  • 포드 스케줄링 실패 또는 강제 종료 문제 해결
  • 워크로드에 사용할 수 있는 리소스 계산하기
  • 클러스터에 워커 노드를 추가해야 할지 판단하기

워커 노드가 예약한 양보다 사용 가능한 PID, CPU 또는 메모리가 부족할 경우, Kubernetes 는 충분한 컴퓨팅 리소스와 PID를 확보하기 위해 포드를 강제 종료하기 시작합니다. 작업자 노드가 사용 가능한 경우 팟(Pod)은 다른 작업자 노드로 다시 스케줄됩니다. 포드가 자주 강제 종료된다면, 클러스터에 워커 노드를 추가하거나 포드에 리소스 제한을 설정하십시오.

자원 예약 등급 이해하기

워커 노드에 할당되는 리소스는 해당 워커 노드가 제공하는 PID, CPU 및 메모리의 양에 따라 달라집니다. IBM Cloud Kubernetes Service 에서는 다음 표와 같이 PID, CPU 및 메모리 티어를 정의하고 있습니다. 워커 노드에 여러 계층의 컴퓨팅 리소스가 포함된 경우, 각 계층별로 PID, CPU 및 메모리 리소스의 일정 비율이 할당됩니다.

팟이 너무 많은 PID를 사용하지 않게 하거나 kubelet 및 기타 IBM Cloud Kubernetes Service 시스템 컴포넌트에 사용 가능한 PID가 충분하도록 클러스터에는 프로세스 ID(PID) 예약 및 한계도 있습니다. PID 예약 또는 한계에 도달하면 Kubernetes는 기존 PID를 확보할 수 있는 충분한 프로세스가 제거될 때까지 새 PID를 생성하거나 할당하지 않습니다. 작업자 노드의 총 PID 양은 작업자 노드의 메모리 GB당 약 8,000 PID에 해당합니다. 예를 들어 메모리가 16GB인 작업자 노드에는 약 128,000개의 PID가 있습니다(16 × 8,000 = 128,000).

워커 노드에서 현재 얼마나 많은 컴퓨팅 리소스가 사용되고 있는지 확인하려면 다음 명령을 실행하세요. kubectl top node를 실행하십시오.

티어별 작업자 노드 메모리 예약. 이 표의 첫 번째 열에는 메모리 계층이, 두 번째 열에는 할당된 비율 또는 용량이, 나머지 열에는 두 가지 다른 워커 노드 크기에 대한 계산 예시가 표시되어 있습니다.
이 표는 워커 노드의 메모리 할당량을 설명합니다. 첫 번째 열에는 메모리 계층이 나열되어 있고, 두 번째 열에는 각 계층에 할당된 비율 또는 용량이 표시되며, 나머지 열에는 16GB 작업자 노드와 256GB 작업자 노드에 대한 계산 예시가 나와 있습니다.
메모리 티어 예약된 % 또는 양 b3c.4x16 작업자 노드(16GB) 예 mg1c.28x256 작업자 노드(256GB) 예
첫 번째 4GB(0 - 4GB) 25% 메모리 1GB 1GB
다음 4GB(5 - 8GB) 20% 메모리 0.8GB 0.8GB
다음 8GB(9 - 16GB) 10% 메모리 0.8GB 0.8GB
다음 112GB(17 - 128GB) 6% 메모리 해당사항 없음 6.72GB
남은 GB(129GB+) 2% 메모리 해당사항 없음 2.54GB
kubelet 퇴거를 위한 추가 예약 100MB 100MB(일정 양) 100MB(일정 양)
총 예약 (변경됨) 총 16GB 중 2.7GB 총 256GB 중 11.96GB
티어별 작업자 노드 CPU 예약. 이 표의 첫 번째 열에는 CPU 계층이, 두 번째 열에는 할당된 비율 또는 양이, 나머지 열에는 두 가지 다른 워커 노드 크기에 대한 계산 예시가 표시되어 있습니다.
이 표는 워커 노드의 CPU 할당량을 설명합니다. 첫 번째 열에는 CPU 계층이 나열되어 있고, 두 번째 열에는 각 계층에 할당된 비율 또는 양이 표시되며, 나머지 열에는 4코어 워커 노드와 28코어 워커 노드에 대한 계산 예시가 나와 있습니다.
CPU 티어 예약된 % 또는 양 b3c.4x16 작업자 노드(4 코어) 예 mg1c.28x256 작업자 노드(28 코어) 예
첫 번째 코어(코어 1) 6% 코어 0.06 코어 0.06 코어
다음 2 코어(코어 2 - 3) 1% 코어 0.02 코어 0.02 코어
다음 2 코어(코어 4 - 5) 0.5% 코어 0.005 코어 0.01 코어
나머지 코어(코어 6+) 0.25% 코어 해당사항 없음 0.0575 코어
총 예약 (변경됨) 총 4 코어 중 0.085 코어 총 28 코어 중 0.1475 코어
계층별 워커 노드 PID 할당량. 이 표의 첫 번째 열에는 총 PID 범위, 두 번째 열에는 예약된 비율, 세 번째 열에는 포드가 사용할 수 있는 비율이 표시되어 있으며, 나머지 행에는 두 가지 다른 워커 노드 크기에 대한 계산 예시가 나와 있습니다.
이 표는 워커 노드의 PID 예약 현황을 보여줍니다. 첫 번째 열에는 총 PID 범위가 나열되어 있고, 두 번째 열에는 예약된 비율이, 세 번째 열에는 파드에 사용할 수 있는 비율이 표시되어 있으며, 나머지 행에는 PID가 126,878개인 워커 노드와 PID가 2,062,400개인 워커 노드에 대한 계산 예시가 나와 있습니다.
총 PID % 예약 팟(Pod)에 사용 가능 %
< 200,000 20% PID 35% PID
200,000 - 499,999 10% PID 40% PID
≥ 500,000 5% PID 45% PID
b3c.4x16 작업자 노드: 126,878 PID 25,376 PID(20%) 44,407 PIDS (35%)
mg1c.28x256 작업자 노드: 2,062,400 PID 103,120 PID(5%) 928,085 PID(45%)
워커 노드의 디스크 임시 저장 공간 할당량. 이 표의 첫 번째 열에는 인프라 제공업체가, 두 번째 열에는 디스크 유형이, 세 번째 열에는 예약된 디스크의 비율이 표시되어 있습니다.
이 표는 워커 노드의 디스크 임시 저장 공간 할당량을 보여줍니다. 첫 번째 열에는 인프라 제공업체(Classic 또는 VPC)가 나열되어 있고, 두 번째 열에는 어떤 디스크가 사용되는지 표시되어 있으며, 세 번째 열에는 두 제공업체 모두에 대해 디스크 공간의 10%가 예약되어 있음을 나타냅니다.
인프라 제공자 디스크 % 디스크 예약
클래식 보조 디스크 10%
VPC 부트 디스크 10%

샘플 작업자 노드 값은 예제에만 제공됩니다. 실제 사용량은 조금 다를 수 있습니다.