노드당 최대 포드 수 구성


이 페이지에서는 표준 클러스터에 대해 노드에서 실행할 수 있는 최대 포드 수를 구성하는 방법을 설명합니다. 이 값은 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 범위

GKE Autopilot 클러스터에서 노드당 최대 포드 수와 연결된 CIDR 블록 할당은 동적입니다. 즉, GKE 버전과 워크로드 밀도에 따라 달라질 수 있습니다.

  • GKE Autopilot 버전 1.28 이하: 노드당 최대 포드 수가 32로 고정됩니다. 따라서 각 노드에 /26 CIDR 블록(IP 주소 64개)이 할당됩니다.

  • GKE Autopilot 버전 1.28 이상: 노드당 최대 포드 수가 동적이고 범위는 8~256입니다. 각 포드가 고유 IP 주소를 갖도록 CIDR 블록 크기가 적절하게 조정됩니다.

Autopilot 클러스터에서 노드당 최대 포드의 동적인 특성 덕분에 효율적인 리소스 사용이 가능합니다. 클러스터가 워크로드 요구사항에 따라 자동으로 적응하여 노드별로 적절한 수의 포드와 IP 주소를 할당합니다.

초기 클러스터 크기와 노드 구성당 최대 포드 수를 수용하려면 포드에 적절한 보조 IP 주소 범위를 선택합니다. IP 주소 지정은 신중하게 계획하는 것이 좋습니다. 그러나 클러스터가 확장되면서 IP 주소가 소진되면 더 많은 IP 주소가 추가될 때까지 확장이 방지됩니다. 필요한 경우 나중에 보조 범위를 추가할 수 있습니다. 클러스터를 만든 후 IP 주소 범위를 추가하는 방법에 대한 자세한 내용은 VPC 네트워크에 보조 범위 추가를 참조하세요.

일반적으로 클러스터 내에서 포드 밀도의 증가 및 변경에 필요한 유연성을 제공하기 위해 /16 범위(예: cluster-ipv4-cidr=240.0.0.0/16)가 권장됩니다.

Autopilot 클러스터 네트워크 구성을 계획할 때는 다음 사항을 고려하세요.

  • 포드 밀도: 워크로드에 필요한 클러스터의 최대 포드 수를 고려합니다.
  • CIDR 범위: 클러스터 크기 및 포드 밀도 요구사항을 모두 수용할 수 있는 포드의 보조 IP 주소 범위를 선택합니다.
  • 유연성: /16과 같이 더 큰 CIDR 범위는 향후 성장과 포드 밀도의 변경에 필요한 더 많은 유연성을 제공합니다.

CIDR 범위를 신중하게 계획하면 처음에 Autopilot 클러스터를 요구사항에 맞게 확장할 수 있습니다. 하지만 클러스터가 성장함에 따라 IP 주소 제한이 발생할 경우 추가 확장을 지원하기 위해 보조 범위를 추가할 수 있습니다.

최대 포드 수 감소

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

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

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

다음 단계