포드 IPv4 주소 범위 추가


이 페이지에서는 VPC 기반 클러스터의 추가 포드 IPv4 주소 범위를 구성하는 방법과 커스텀 포드 IPv4 주소 범위를 VPC 기반 클러스터의 노드 풀에 지정하는 방법을 설명합니다.

항상 서브넷 보조 IPv4 주소 범위에서 VPC 기반 클러스터의 포드 IPv4 주소 범위를 가져옵니다. 새 클러스터를 만들 때 클러스터에 기본 포드 IPv4 주소 범위를 할당합니다.

  • Autopilot 및 표준 클러스터의 경우 추가 포드 IPv4 주소 범위를 사용하도록 클러스터를 구성할 수 있습니다. GKE는 이후 노드 풀에서 생성되는 노드에서 포드 IPv4 주소에 이러한 추가 포드 IPv4 주소 범위를 사용합니다.
  • 표준 클러스터의 경우 각각 포드 IPv4 주소에 커스텀 서브넷 보조 IPv4 주소 범위를 사용하는 노드 풀을 만들 수 있습니다.

시작하기 전에

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

  • Google Kubernetes Engine API를 사용 설정합니다.
  • Google Kubernetes Engine API 사용 설정
  • 이 태스크에 Google Cloud CLI를 사용하려면 gcloud CLI를 설치한 후 초기화합니다. 이전에 gcloud CLI를 설치한 경우 gcloud components update를 실행하여 최신 버전을 가져옵니다.
  • 클러스터의 서브넷이 포함된 프로젝트에 대한 Compute 네트워크 관리자 Identity and Access Management(IAM) 역할이 있는지 확인합니다. 이는 새 서브넷 보조 IPv4 주소 범위를 만드는 데 필요합니다. 공유 VPC를 사용하는 경우 공유 VPC 호스트 프로젝트에 대해 네트워크 관리자와 협의해야 합니다.
  • GKE 클러스터가 VPC 기반 클러스터인지 확인합니다. 경로 기반 클러스터는 추가 포드 IPv4 주소 범위나 노드 풀 커스텀 포드 IPv4 주소 범위를 지원하지 않습니다.
  • 후속 조치 단계 섹션을 검토합니다.

새 서브넷 보조 IPv4 주소 범위 만들기

새 서브넷 보조 IPv4 주소 범위를 만들려면 Google Cloud 콘솔이나 Google Cloud CLI를 사용합니다. 각 서브넷은 보조 IPv4 주소 범위를 최대 30개까지 지원합니다. 자세한 내용은 VPC 문서의 보조 IPv4 범위 수정을 참조하세요.

Console

  1. Google Cloud 콘솔에서 VPC 네트워크 페이지로 이동합니다.

    VPC 네트워크로 이동

  2. VPC 네트워크 목록에서 확장할 네트워크를 선택합니다.

  3. 서브넷 목록에서 원하는 서브넷을 선택합니다.

  4. 수정을 클릭합니다.

  5. IP 범위 추가를 클릭합니다.

  6. 서브넷 범위 이름에 새 서브넷 보조 IPv4 주소 범위 이름을 입력합니다. 예를 들면 pod-range-2입니다.

  7. 보조 IP 범위에 IPv4 주소 범위를 CIDR 형식으로 입력합니다. 예를 들면 10.2.204.0/22입니다.

  8. 저장을 클릭합니다.

gcloud

gcloud compute networks subnets update SUBNET_NAME \
    --region=REGION \
    --add-secondary-ranges=SECONDARY_RANGE_NAME=SECONDARY_RANGE_CIDR

다음을 바꿉니다.

  • SUBNET_NAME: 클러스터의 서브넷 이름입니다(생성될 때 클러스터에 할당된 동일한 서브넷).
  • REGION: 클러스터의 서브넷 리전입니다. 클러스터의 서브넷 리전은 GKE 클러스터가 포함된 리전입니다.
  • SECONDARY_RANGE_NAME: 클러스터의 추가 포드 IPv4 주소 범위 역할을 하는 새 서브넷 보조 IPv4 주소 범위의 이름입니다. 예를 들면 pod-range-2입니다.
  • SECONDARY_RANGE_CIDR: 새 서브넷 보조 IPv4 주소 범위에서 사용할 CIDR입니다. 예를 들면 10.2.204.0/22입니다.

--add-secondary-ranges 플래그 다음에 쉼표로 구분된 SECONDARY_RANGE_NAME=SECONDARY_RANGE_CIDR 쌍을 추가로 지정하여 새 서브넷 보조 IPv4 주소 범위를 2개 이상 추가할 수 있습니다.

클러스터에 추가 포드 IPv4 범위 할당

클러스터 수준에서 클러스터에 만드는 새 노드 풀에 생성된 새 노드에 적용할 수 있는 추가 포드 IPv4 주소 범위를 할당할 수 있습니다. 추가 포드 IPv4 주소 범위를 클러스터에 할당하려면 먼저 새 서브넷 보조 IPv4 주소 범위를 만들어야 합니다.

다음에서 클러스터에 추가 포드 IPv4 주소 범위 할당을 지원합니다.

  • GKE 버전 1.26 이상을 실행하는 Autopilot 클러스터
  • Standard 클러스터

Console

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

    Google Kubernetes Engine으로 이동

  2. 수정하려는 클러스터 옆에 있는 작업을 클릭한 다음 수정을 클릭합니다.

  3. 네트워킹 섹션에서 클러스터 포드 IPv4 범위(추가) 옆에 있는 수정을 클릭합니다.

  4. 추가 클러스터 포드 IPv4 범위 수정 대화상자에서 포드 보조 CIDR 범위를 클릭하고 클러스터 서브넷에 있는 기존 서브넷 보조 IPv4 주소 범위 이름을 하나 이상 선택합니다. 추가 서브넷 보조 IPv4 주소 범위를 사용할 수 없으면 먼저 새 서브넷 보조 IPv4 주소 범위를 만든 후 이러한 단계를 반복합니다.

  5. 변경사항 저장을 클릭합니다.

gcloud

  1. --additional-pod-ipv4-ranges 플래그를 사용하여 클러스터를 업데이트합니다.

    gcloud container clusters update CLUSTER_NAME \
        --additional-pod-ipv4-ranges=SECONDARY_RANGE_NAME \
        --location=ZONE_OR_REGION
    

    다음을 바꿉니다.

    • CLUSTER_NAME: 클러스터의 이름
    • SECONDARY_RANGE_NAME: 쉼표로 구분된 클러스터 서브넷에 하나 이상 있는 기존 서브넷 보조 IPv4 주소 범위의 이름입니다. 서브넷 보조 IPv4 주소 범위를 사용할 수 없으면 먼저 새 서브넷 보조 IPv4 주소 범위를 만듭니다.
    • ZONE_OR_REGION: 영역 클러스터의 경우 클러스터가 위치한 Compute Engine 영역입니다. 리전 클러스터의 경우 클러스터가 위치한 Compute Engine 리전입니다. 영역 및 리전 목록은 Compute Engine 문서에서 리전 및 영역을 참조하세요.

클러스터 포드 IPv4 범위 조회

클러스터의 기본 포드 IPv4 주소 범위와 클러스터에 할당된 모든 추가 포드 IPv4 주소 범위를 조회하려면 다음 명령어를 사용합니다.

gcloud container clusters describe CLUSTER_NAME \
  --location=ZONE_OR_REGION

다음을 바꿉니다.

  • CLUSTER_NAME: 클러스터의 이름
  • ZONE_OR_REGION: 영역 클러스터의 경우 클러스터가 위치한 Compute Engine 영역입니다. 리전 클러스터의 경우 클러스터가 위치한 Compute Engine 리전입니다.

출력은 다음과 비슷하며 클러스터의 IPAllocationPolicy가 포함됩니다.

ipAllocationPolicy:
  clusterSecondaryRangeName: cluster-pods
  clusterIpv4CidrBlock: 10.10.0.0/23
  additionalPodRangesConfig:
    podRangeNames:
      - pod-range-1
      - pod-range-2

각 매개변수는 다음과 같습니다.

  • clusterSecondaryRangeName: 클러스터를 만들 때 정의한 클러스터의 기본 포드 IPv4 주소 범위로 사용되는 서브넷 보조 IPv4 주소 범위의 이름입니다.
  • clusterIpv4CidrBlock: 클러스터를 만들 때 정의한 포드 IPv4 주소의 서브넷 보조 IPv4 주소 범위 CIDR입니다.
  • additionalPodRangesConfig.podRangeNames: 포드 IPv4 주소에 추가로 할당된 서브넷 보조 IPv4 주소 범위의 목록입니다.

노드 풀 커스텀 포드 IPv4 주소 범위

GKE 1.20.4-gke.500 이상을 실행하는 표준 클러스터의 경우 다음 방법 중 하나를 사용하여 커스텀 포드 IPv4 범위를 새 노드 풀에 할당할 수 있습니다.

  • GKE에서 관리하는 노드 풀 커스텀 포드 IPv4 주소 범위: 이 옵션을 사용하면 새 노드 풀을 만들고 클러스터 서브넷에 새 서브넷 보조 IPv4 주소 범위를 만드는 데 필요한 정보를 GKE에 제공합니다. 새 노드 풀에서 생성되는 각 새 노드에는 포드 IPv4 주소의 별칭 IP 주소 범위가 할당되며 GKE에서 만드는 새 서브넷 보조 IPv4 주소 범위에서 각 별칭 IP 주소 범위를 가져옵니다. 클러스터와 클러스터 서브넷이 포함된 VPC 네트워크 모두 같은 프로젝트에 있는 경우에만 이 옵션을 사용할 수 있습니다.

  • 사용자 관리형 노드 풀 커스텀 포드 IPv4 주소 범위: 이 옵션을 사용하면 GKE에서 기존 서브넷 보조 IPv4 주소 범위를 사용하는 새 노드 풀을 만듭니다. 새 노드 풀에서 생성되는 각 새 노드에는 포드 IPv4 주소의 별칭 IP 주소 범위가 할당되며 GKE에 사용하라고 지시하는 서브넷 보조 IPv4 주소 범위에서 각 별칭 IP 주소 범위를 가져옵니다. 클러스터가 공유 VPC 서비스 프로젝트에 있고 클러스터 서브넷이 호스트 프로젝트의 공유 VPC 네트워크에 있으면 이 옵션을 사용해야 합니다.

노드 풀의 커스텀 포드 IPv4 주소 범위는 클러스터에 할당된 추가 포드 IPv4 주소 범위를 포함하여 클러스터 수준에서 정의된 모든 포드 IPv4 주소 범위를 재정의합니다. 노드 풀에 할당된 커스텀 포드 IPv4 주소 범위를 연속되지 않은 멀티 포드 CIDR이라고도 합니다.

노드 풀 커스텀 포드 IPv4 주소 범위 예시

다음 다이어그램에서는 사용자 관리형 포드 IPv4 주소 범위가 있는 VPC 기반 클러스터를 보여줍니다.

연속되지 않은 다중 pod CIDR을 사용하여 소진된 보조 pod IP 주소 범위가 있는 클러스터에 노드 풀 추가
다이어그램: 노드 풀 커스텀 포드 IPv4 주소 범위 예시

앞의 다이어그램에서 다음이 수행되었습니다.

  • 클러스터의 노드 풀마다 노드당 최대 포드 수가 64로 설정되었습니다. 노드당 포드를 최대 64개까지 수용할 수 있도록 GKE에서 /25 별칭 IP 주소 범위가 있는 각 노드를 만들어 노드당 포드 IPv4 주소를 128개 제공합니다.
  • 클러스터의 기본 포드 IPv4 주소 범위는 /24입니다. 각 노드의 포드 IPv4 주소에 /25가 필요하므로 클러스터의 기본 포드 IPv4 주소 범위는 노드 2개만 지원합니다.
  • 추가 노드를 지원하기 위해 클러스터 관리자가 노드당 최대 포드 수 64개를 유지하는 추가 노드 풀을 만들었습니다. 추가 노드 풀은 추가 노드 32개를 지원하는 커스텀 /20 포드 IPv4 주소 범위를 사용합니다.

GKE에서 관리하는 노드 풀 커스텀 포드 IPv4 주소 범위

GKE에서 관리하는 커스텀 포드 IPv4 주소 범위가 있는 노드 풀을 만들려면 다음과 같이 gcloud CLI 또는 GKE API를 사용합니다.

gcloud

gcloud container node-pools create POOL_NAME \
  --cluster=CLUSTER_NAME \
  --location=ZONE_OR_REGION \
  --create-pod-ipv4-range=name=SECONDARY_RANGE_NAME,range=CIDR_OR_NETMASK

다음을 바꿉니다.

  • POOL_NAME: 새 노드 풀의 이름.
  • CLUSTER_NAME: 클러스터의 이름
  • ZONE_OR_REGION: 영역 클러스터의 경우 클러스터가 위치한 Compute Engine 영역입니다. 리전 클러스터의 경우 클러스터가 위치한 Compute Engine 리전입니다. 영역 및 리전 목록은 리전 및 영역을 참조하세요.
  • SECONDARY_RANGE_NAME: GKE에서 만드는 서브넷 보조 IPv4 주소 범위의 이름입니다. name=SECONDARY_RANGE_NAME을 생략하면 GKE에서 새 서브넷 보조 IPv4 주소 범위 이름을 자동으로 생성합니다.
  • CIDR_OR_NETMASK: CIDR 형식(예: 10.12.4.0/20) 또는 서브넷 마스크(예: /20)로 표현되는 포드 IPv4 주소 범위입니다.
    • 서브넷 마스크만 제공하면 GKE에서 클러스터 서브넷이 포함된 VPC 네트워크의 기존 서브넷 IPv4 주소 범위와 충돌하지 않는 새 서브넷 보조 IPv4 주소 범위를 만들려고 합니다.
    • range=CIDR_OR_NETMASK를 생략하면 GKE에서 클러스터 서브닛에 포함된 VPC 네트워크의 기존 서브넷 IPv4 주소 범위와 충돌하지 않는 새 /14 서브넷 보조 IPv4 주소 범위를 만들려고 시도합니다.

API

"nodePool": {
  "name": "POOL_NAME",
  ...
  "networkConfig": {
    "createPodRange": true,
    "podRange": "SECONDARY_RANGE_NAME",
    "podIpv4CidrBlock": "CIDR_OR_NETMASK"
    }
}

다음을 바꿉니다.

  • POOL_NAME: 새 노드 풀의 이름.
  • SECONDARY_RANGE_NAME: (선택사항) GKE에서 만드는 서브넷 보조 IPv4 주소 범위의 이름입니다. ""networkConfig.podRange 값으로 사용하거나 요청에서 podRange 매개변수를 생략하면 GKE에서 새 서브넷 보조 IPv4 주소 범위 이름을 자동으로 생성합니다.
  • CIDR_OR_NETMASK: CIDR 형식(예: 10.12.4.0/20) 또는 서브넷 마스크(예: /20)로 표현되는 포드 IPv4 주소 범위입니다.
    • 서브넷 마스크만 제공하면 GKE에서 클러스터 서브넷이 포함된 VPC 네트워크의 기존 서브넷 IPv4 주소 범위와 충돌하지 않는 새 서브넷 보조 IPv4 주소 범위를 만들려고 합니다.
    • ""networkConfig.podIpv4CidrBlock 값으로 사용하면 GKE에서 클러스터 서브넷이 포함된 VPC 네트워크의 기존 서브넷 IPv4 주소 범위와 충돌하지 않는 새 /14 서브넷 보조 IPv4 주소 범위를 만들려고 시도합니다.

사용자 관리형 노드 풀 커스텀 포드 IPv4 주소 범위

사용자 관리형 커스텀 포드 IPv4 주소 범위가 있는 노드 풀을 만들려면 다음과 같이 gcloud CLI 또는 GKE API를 사용합니다.

gcloud

gcloud container node-pools create POOL_NAME \
  --cluster=CLUSTER_NAME \
  --location=ZONE_OR_REGION \
  --pod-ipv4-range SECONDARY_RANGE_NAME

다음을 바꿉니다.

  • POOL_NAME: 새 노드 풀의 이름.
  • CLUSTER_NAME: 클러스터의 이름
  • ZONE_OR_REGION: 영역 클러스터의 경우 클러스터가 위치한 Compute Engine 영역입니다. 리전 클러스터의 경우 클러스터가 위치한 Compute Engine 리전입니다. 영역 및 리전 목록은 Compute Engine 문서에서 리전 및 영역을 참조하세요.
  • SECONDARY_RANGE_NAME: 클러스터 서브넷에 있는 기존 서브넷 보조 IPv4 주소 범위의 이름입니다. 필요한 경우 먼저 새 서브넷 보조 IPv4 주소 범위를 만듭니다.

API

"nodePool": {
  "name": "POOL_NAME",
  ...
  "networkConfig": {
    "createPodRange": false,
    "podRange": "SECONDARY_RANGE_NAME"
    }
}

다음을 바꿉니다.

노드 풀 포드 IPv4 범위 조회

노드 풀의 포드 IPv4 주소 범위를 조회하려면 다음 명령어를 사용합니다.

gcloud container node-pools describe POOL_NAME \
  --cluster=CLUSTER_NAME \
  --location=ZONE_OR_REGION

다음을 바꿉니다.

  • POOL_NAME: 노드 풀의 이름입니다.
  • CLUSTER_NAME: 클러스터의 이름
  • ZONE_OR_REGION: 영역 클러스터의 경우 클러스터가 위치한 Compute Engine 영역입니다. 리전 클러스터의 경우 클러스터가 위치한 Compute Engine 리전입니다.

출력은 다음과 비슷하며 여기에는 노드 풀의 NodeNetworkConfig가 포함됩니다.

  networkConfig:
    podRange: podrange
    podIpv4CidrBlock: 192.168.0.0/18

각 매개변수는 다음과 같습니다.

  • podRange: 노드 풀의 포드 IPv4 주소에 대한 서브넷 보조 IPv4 주소 범위의 이름입니다.
  • podIpv4CidrBlock: 노드 풀의 포드 IPv4 주소에 대한 서브넷 보조 IPv4 주소 범위의 CIDR입니다.

노드 풀에서 커스텀 포드 IPv4 주소 범위를 사용하는 경우 podRangepodIpv4CidrBlock 값은 클러스터의 기본 포드 IPv4 주소 범위와 다릅니다.

후속 작업 단계

추가 포드 IPv4 주소 범위를 클러스터에 할당하거나 노드 풀 커스텀 포드 IPv4 주소 범위를 구성하면 소스 범위에 모든 포트 IPv4 주소가 포함되도록 GKE에서 자동으로 생성된 gke-[cluster-name]-[cluster-hash]-all VPC 방화벽 규칙을 업데이트합니다.

또한 다음을 수행해야 할 수도 있습니다.

다음 단계