노드당 최대 포드 수 구성


이 페이지에서는 표준 클러스터에 대해 노드에서 실행할 수 있는 최대 포드 수를 구성하는 방법을 설명합니다. 이 값은 Google Kubernetes Engine(GKE)에서 노드에 할당된 IP 주소 범위의 크기를 결정합니다. 노드에서 실행되는 포드에는 노드의 할당된 CIDR 범위에 속하는 IP 주소가 할당됩니다.

예약할 때 GKE는 노드당 최대 포드 수를 사용하여 포드를 예약하기에 충분한 용량이 있는지 확인합니다. 노드에 할당되었지만 아직 종료되지 않은 포드(Failed 또는 Succeeded 단계)만 이 용량에 포함됩니다.

이 페이지의 단계는 노드의 최대 개수가 미리 구성되고 변경할 수 없기 때문에 Autopilot 클러스터에 적용되지 않습니다.

시작하기 전에

시작하기 전에 다음 태스크를 수행했는지 확인합니다.

  • Google Kubernetes Engine API를 사용 설정합니다.
  • Google Kubernetes Engine API 사용 설정
  • 이 태스크에 Google Cloud CLI를 사용하려면 gcloud CLI를 설치한 후 초기화합니다. 이전에 gcloud CLI를 설치한 경우 gcloud components update를 실행하여 최신 버전을 가져옵니다.

제한사항

  • VPC 기반 클러스터에서만 노드당 최대 포드 수를 구성할 수 있습니다.
  • 노드 생성은 포드 주소 범위의 사용 가능한 주소 수에 따라 제한됩니다. 기본, 최소, 최대 포드 주소 범위 크기는 IP 주소 범위 계획 테이블을 참조하세요. 또한 연속되지 않은 다중 포드 CIDR을 사용하여 추가 포드 IP 주소를 추가할 수 있습니다.
  • 각 클러스터는 kube-system 네임스페이스에 있는 kube-proxy와 같은 kube-system 포드를 만들어야 합니다. 노드당 최대 포드 수를 줄일 때는 워크로드 포드 및 시스템 포드 모두를 고려해야 합니다. 클러스터의 시스템 포드를 나열하려면 다음 명령어를 실행합니다.

    kubectl get pods --namespace kube-system
    

노드당 최대 포드 수 구성

노드당 최대 포드 수는 클러스터를 만들 때 구성하거나 노드 풀을 만들 때 구성할 수 있습니다. 클러스터 또는 노드 풀이 생성된 후에는 이 설정을 변경할 수 없습니다.

하지만 포드 IP 주소가 부족할 경우 연속되지 않은 다중 포드 CIDR을 사용하여 추가 포드 IP 주소 범위를 만들 수 있습니다.

클러스터를 만들 때 gcloud CLI 또는 Google Cloud 콘솔을 사용하여 포드 주소 범위의 크기를 설정할 수 있습니다.

gcloud

gcloud CLI를 사용하여 노드당 기본 최대 포드 수를 설정하려면 다음 명령어를 실행합니다.

gcloud container clusters create CLUSTER_NAME \
    --enable-ip-alias \
    --cluster-ipv4-cidr=10.0.0.0/21 \
    --services-ipv4-cidr=10.4.0.0/19 \
    --create-subnetwork=name='SUBNET_NAME',range=10.5.32.0/27 \
    --default-max-pods-per-node=MAXIMUM_PODS \
    --location=COMPUTE_LOCATION

다음을 바꿉니다.

  • CLUSTER_NAME: 새 클러스터의 이름
  • SUBNET_NAME: 클러스터의 새 서브네트워크 이름
  • MAXIMUM_PODS: 클러스터의 노드당 기본 최대 포드 수. 최대 256개까지 구성할 수 있습니다. 생략하면 Kubernetes가 110의 기본값을 할당합니다.
  • COMPUTE_LOCATION: 새 클러스터의 Compute Engine 위치

콘솔

  1. Google Cloud 콘솔에서 Google Kubernetes Engine 페이지로 이동합니다.

    Google Kubernetes Engine으로 이동

  2. 만들기를 클릭합니다.

  3. 새 클러스터를 구성합니다.

  4. 탐색창의 클러스터에서 네트워킹을 클릭합니다.

  5. VPC 기반 트래픽 라우팅 사용 설정(별칭 IP 사용) 체크박스가 선택되어 있는지 확인합니다.

  6. 탐색창의 노드 풀에서 노드를 클릭합니다.

  7. 노드당 최대 포드 수 필드를 110로 설정합니다. GKE는 이 값을 사용하여 노드에 할당되는 IP 주소 범위의 크기를 조정합니다.

  8. 만들기를 클릭합니다.

클러스터에 대해 노드당 최대 포드 수를 구성할 때 Kubernetes는 이 값을 사용하여 노드에 대해 CIDR 범위를 할당합니다. 포드에 대한 클러스터의 보조 IP 주소 범위 및 노드에 대한 할당된 CIDR 범위를 기준으로 클러스터의 최대 노드 수를 계산할 수 있습니다.

예를 들어 기본 최대 포드 수를 110으로 설정하고 포드의 보조 IP 주소 범위를 /21로 설정하면 Kubernetes는 /24 CIDR 범위를 클러스터의 노드에 할당합니다. 이렇게 하면 클러스터에서 최대 2(24-21) = 23 = 8개 노드가 허용됩니다.

이와 비슷하게 기본 최대 포드 수를 8로 설정하고 포드에 대한 클러스터의 보조 IP 주소 범위를 /21로 설정하면 Kubernetes가 노드에 /28 CIDR 범위를 할당합니다. 이렇게 하면 클러스터에서 최대 2(28-21) = 27 = 128개 노드가 허용됩니다.

기존 클러스터의 새 노드 풀에 있는 최대 포드 수 구성

기존 클러스터에 노드 풀을 만들 때 노드당 최대 포드 수를 지정할 수도 있습니다. 새 노드 풀을 만들면 클러스터 수준에서 노드당 구성된 기본 최대 포드 수가 없는 기존 클러스터에서도 IP 주소 할당을 최적화할 수 있습니다.

노드 풀 수준에서 최대 포드 수를 설정하면 클러스터 수준의 기본 최댓값이 재정의됩니다. 노드 풀을 만들 때 노드당 최대 포드 수를 구성하지 않으면 클러스터 수준 최댓값이 적용됩니다.

gcloud

gcloud container node-pools create POOL_NAME \
    --cluster=CLUSTER_NAME \
    --max-pods-per-node=MAXIMUM_PODS

다음을 바꿉니다.

  • POOL_NAME: 새 노드 풀의 이름입니다.
  • CLUSTER_NAME: 노드 풀을 만들려는 클러스터의 이름입니다.
  • MAXIMUM_PODS: 노드 풀의 최대 포드 수입니다.

콘솔

  1. Google Cloud 콘솔에서 Google Kubernetes Engine 페이지로 이동합니다.

    Google Kubernetes Engine으로 이동

  2. 클러스터 목록에서 수정하려는 클러스터 이름을 클릭합니다.

  3. 노드 풀 추가를 클릭합니다.

  4. 탐색창에서 노드를 클릭합니다.

  5. 네트워킹에서 노드당 최대 포드 수 필드 값을 입력합니다. GKE는 이 값을 사용하여 노드에 할당되는 IP 주소 범위의 크기를 조정합니다.

노드당 기본 최대 포드 수 정보

기본적으로 GKE는 Standard 클러스터에서 노드당 최대 110개의 포드를 허용하지만 노드당 최대 256개의 포드를 허용하도록 Standard 클러스터를 구성할 수 있습니다. Autopilot 클러스터는 예상 워크로드 포드 밀도를 기반으로 노드당 최대 포드 수를 8~256개 범위에서 선택합니다. Kubernetes는 각 노드에 IP 주소 범위(CIDR 블록)를 할당하므로 각 포드는 고유 IP 주소를 가질 수 있습니다. CIDR 블록의 크기는 노드당 최대 포드 수에 해당합니다.

Standard 클러스터의 포드 CIDR 범위

표준 클러스터의 경우 노드당 최대 포드 수는 기본적으로 110개이므로 Kubernetes는 각 노드에 /24 CIDR 블록(256개 주소)을 할당합니다. 사용 가능한 IP 주소 수가 한 노드에서 만들 수 있는 최대 포드 수의 두 배를 넘으므로, Kubernetes는 노드에서 포드를 추가 및 삭제할 때 IP 주소 재사용을 줄일 수 있습니다.

노드당 포드 수 256개가 하드 한도이지만, 노드에서 포드 수를 줄일 수 있습니다. 노드에 할당된 CIDR 블록 크기는 노드당 최대 포드 수에 따라 다릅니다. 블록에 포함되는 주소 수는 항상 노드당 최대 포드 수의 두 배 이상입니다.

다음 표에서는 Kubernetes가 노드당 최대 포드 수를 기준으로 노드에 할당하는 사용 가능한 IP 주소 개수 및 CIDR 블록 크기를 보여줍니다.

노드당 최대 포드 수 노드당 CIDR 범위 IP 주소 수
8 /28 16
9 – 16 /27 32
17 – 32 /26 64
33 – 64 /25 128
65 – 128 /24 256
129 - 256 /23 512

Autopilot 클러스터의 포드 CIDR 범위

Autopilot 클러스터 CIDR 크기의 기본 설정은 다음과 같습니다.

  • 서브네트워크 범위: /23
  • 포드의 보조 IP 주소 범위: /17
  • 서비스의 보조 IP 주소 범위: /22

Autopilot의 노드당 최대 포드 수는 32입니다. GKE Standard에서와 같이 결과적으로 노드당 프로비저닝되는 /26 범위 즉, 64개 IP를 가져옵니다. /17의 포드 주소 범위는 결과적으로 최대 511개 노드까지 지원할 수 있는 클러스터를 가져옵니다(32,766개 가용 IP/노드당 64개 IP 주소).

지정하는 포드의 보조 IP 주소 범위가 예상되는 최대 클러스터 크기를 지원할 만큼 충분히 커야 합니다. 클러스터의 최대 증가를 지원하기 위해서는 /16 범위(예: cluster-ipv4-cidr=10.0.0.0/16)가 권장됩니다.

최대 포드 수 감소

노드당 최대 포드 수를 줄이면 각 노드가 전체 IP 주소 공간에서 차지하는 부분이 감소하므로 클러스터가 더 많은 노드를 가질 수 있습니다. 또는 클러스터를 만들 때 더 작은 IP 주소 공간을 지정하여 클러스터에 같은 수의 노드를 지원할 수 있습니다.

또한 노드당 최대 포드 수를 줄이면 더 적은 IP 주소가 필요한 더 작은 클러스터를 만들 수 있습니다. 예를 들어 노드당 8개의 포드가 있으면 각 노드에 /28 CIDR이 부여됩니다. 이러한 IP 주소 범위와 사용자가 정의하는 서브넷 및 보조 범위에 따라 클러스터를 성공적으로 만들기 위해 필요한 IP 주소 수가 결정됩니다.

노드당 최대 포드 수는 클러스터를 만들 때 구성할 수도 있고 노드 풀을 만들 때 구성할 수도 있습니다.

다음 단계