IP 주소 할당 최적화

이 페이지에서는 노드 하나에서 실행될 수 있는 최대 포드 수를 구성하는 방법을 설명합니다. 이 값은 Google Kubernetes Engine의 노드에 할당되는 IP 주소 범위의 크기를 결정합니다. 노드에서 실행되는 포드에는 노드의 포드 CIDR 범위에 속하는 IP 주소가 할당됩니다.

개요

기본적으로 GKE는 노드를 최대 110개까지만 실행하도록 포드를 구성합니다. Kubernetes는 각 노드에 IP 주소 범위(CIDR 블록)를 할당하므로 각 포드는 고유 IP 주소를 가질 수 있습니다. CIDR 블록의 크기는 노드당 최대 포드 수에 해당합니다.

노드당 최대 포드 수의 기본값은 110개이므로 Kubernetes는 각 노드에 /24 CIDR 블록(256개 주소)을 할당합니다. 사용 가능한 IP 주소 수가 가능한 포드 수의 약 두 배이므로 Kubernetes는 노드에서 포드가 추가 및 삭제될 때 IP 주소 재사용을 완화할 수 있습니다.

노드당 최대 포드 수를 기본값보다 낮추면 Kubernetes는 그만큼 작은 CIDR 블록을 할당합니다. 블록에 포함되는 주소 수는 항상 노드당 최대 포드 수의 두 배 이상입니다. 아래 표에서는 노드당 최대 포드 수에 따라 Kubernetes가 각 노드에 할당하는 CIDR 블록 크기를 보여줍니다.

노드당 최대 포드 수 노드당 CIDR 범위
8 /28
9~16 /27
17~32 /26
33~64 /25
65~110 /24

노드당 최대 포드 수를 구성하면 각 클러스터 노드에 필요한 IP 주소 공간이 간접적으로 구성됩니다. 예를 들어 노드당 최대 포드 수를 30으로 설정하면 위 표에 따라 /26 CIDR 범위가 사용되어 각 노드에 64개의 IP 주소가 할당됩니다. 노드당 최대 포드 수를 구성하지 않으면 /24 CIDR 범위가 사용되어 각 노드에 256개의 IP 주소가 할당됩니다.

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

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

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

제한사항

  • VPC 네이티브 클러스터에서만 노드당 최대 포드 수를 구성할 수 있습니다.
  • 노드 생성은 포드 주소 범위의 사용 가능한 주소 수에 따라 제한됩니다. 포드 주소 범위의 기본, 최소, 최대 크기는 이 표를 참조하세요.

노드당 최대 포드 수 구성

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

gcloud 또는 Google Cloud Platform Console에서 클러스터를 만들 때 포드 주소 범위 크기를 설정할 수 있습니다.

노드당 최대 포드 수가 110개인 클러스터를 만드는 방법은 다음과 같습니다.

gcloud

gcloud beta container clusters create \
 --enable-ip-alias --cluster-ipv4-cidr=10.0.0.0/21 \
 --create-subnetwork=name='my-cluster-subnet',range=10.4.32.0/27 \
 --services-ipv4-cidr=10.4.0.0/19 --default-max-pods-per-node=110 \
 my-cluster

콘솔

  1. 클러스터를 만들 때 고급 옵션 섹션을 펼치고 네트워킹 섹션에서 VPC 네이티브 사용 설정(별칭 IP 사용)을 선택합니다.
  2. 노드당 최대 포드 필드를 설정합니다. GKE는 이 값을 사용하여 노드에 할당되는 IP 주소 범위의 크기를 조정합니다.

이렇게 하면 최대 8개의 노드를 포함할 수 있는 클러스터가 만들어집니다. Kubernetes는 노드당 최대 포드 수에 따라 각 노드에 해당 노드의 포드가 사용할 수 있도록 /24 CIDR 범위를 부여합니다. 이 클러스터는 /21 CIDR 범위(cluster-ipv4-cidr)에 속하는 포드 IP 주소를 할당하므로 최대 8개(24-21 = 3, 23 = 8)의 노드가 가능합니다. 110은 기본값이므로 default-max-pods-per-node 옵션을 생략할 수 있습니다.

노드당 최대 포드 수가 8개인 클러스터를 만드는 방법은 다음과 같습니다.

gcloud

gcloud beta container clusters create \
  --enable-ip-alias --cluster-ipv4-cidr=10.0.0.0/21 \
  --create-subnetwork=name='my-cluster-subnet',range=10.4.32.0/21 \
  --services-ipv4-cidr=10.4.0.0/19 --default-max-pods-per-node=8 \
  my-cluster

콘솔

  1. 클러스터를 만들 때 고급 옵션 섹션을 펼치고 네트워킹 섹션에서 VPC 네이티브 사용 설정(별칭 IP 사용)을 선택합니다.
  2. 노드당 최대 포드 필드를 설정합니다. GKE는 이 값을 사용하여 노드에 할당되는 IP 주소 범위의 크기를 조정합니다.

이렇게 하면 최대 128개의 노드를 포함할 수 있는 클러스터가 만들어집니다. Kubernetes는 노드당 최대 포드 수에 따라 각 노드에 해당 노드의 포드가 사용할 수 있도록 /28 CIDR 범위를 부여합니다. 모든 포드가 사용할 수 있는 범위(cluster-ipv4-cidr)가 /21 범위이므로 최대 128개(28-21 = 7, 27 = 128)의 노드가 가능합니다.

기존 클러스터에 노드 풀을 만들 때 노드당 최대 포드 수를 지정할 수도 있습니다. 새 노드 풀을 만들면 기존 클러스터에서 max-pods-per-node가 클러스터 수준으로 구성되지 않았더라도 IP 주소 할당을 최적화할 수 있습니다.

gcloud

gcloud beta container node-pools create \
  my-pool --cluster=my-cluster \
  --max-pods-per-node=30

콘솔

  1. 클러스터 수정 페이지에서 노드 풀 추가를 클릭합니다.
  2. 노드당 최대 포드 필드를 설정합니다. GKE는 이 값을 사용하여 노드에 할당되는 IP 주소 범위의 크기를 조정합니다.

이 값은 클러스터 수준으로 적용된 default-max-pods-per-node 옵션을 재정의합니다. 노드 풀을 만들 때 max-pods-per-node 옵션을 생략하면 클러스터 수준 기본 구성이 사용됩니다.

다음 단계

이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

다음에 대한 의견 보내기...

Kubernetes Engine