IP 주소 할당 최적화

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

개요

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

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

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

노드당 최대 Pod 수 노드당 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 주소 공간을 지정하여 클러스터에 같은 수의 노드를 지원할 수 있습니다.

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

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

제한사항

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

노드당 최대 포드 수 구성

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

클러스터를 만들 때 gcloud 도구 또는 Google Cloud Console을 사용하여 Pod 주소 범위의 크기를 설정할 수 있습니다.

노드당 최대 Pod 수가 110개인 클러스터 만들기

gcloud

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

Console

  1. Cloud Console에서 Google Kubernetes Engine 메뉴로 이동합니다.

    Google Kubernetes Engine 메뉴로 이동

  2. 클러스터 만들기 버튼을 클릭합니다.

  3. 원하는 대로 클러스터를 구성합니다.

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

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

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

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

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

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

노드당 최대 Pod 수가 8개인 클러스터 만들기

gcloud

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

Console

  1. Cloud Console에서 Google Kubernetes Engine 메뉴로 이동합니다.

    Google Kubernetes Engine 메뉴로 이동

  2. 클러스터 만들기 버튼을 클릭합니다.

  3. 원하는 대로 클러스터를 구성합니다.

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

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

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

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

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

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

기존 클러스터의 새 노드 풀에 있는 최대 Pod 수 설정

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

gcloud

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

Console

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

이 값은 클러스터 수준에서 적용되는 default-max-pods-per-node 옵션보다 우선합니다. 노드 풀을 만들 때 max-pods-per-node 옵션을 생략하면 클러스터 수준 기본 구성이 사용됩니다.

다음 단계

  • VPC 기반 클러스터를 만드는 방법 알아보기