클러스터에 서브넷 추가


이 페이지에서는 VPC 기반 클러스터에 추가 서브넷을 할당하는 방법을 보여줍니다. 클러스터에 할당된 추가 서브넷을 사용하면 노드 포드 모두의 IPv4 주소가 추가 서브넷 범위에서 가져오는 새 노드 풀을 만들 수 있습니다.

이 페이지는 조직의 네트워크를 설계하는 네트워킹 전문가를 대상으로 합니다. Google Cloud 콘텐츠에서 참조하는 일반적인 역할과 예시 태스크에 대한 자세한 내용은 일반 GKE Enterprise 사용자 역할 및 태스크를 참고하세요.

개요

새 VPC 기반 GKE 클러스터를 만들 때 클러스터의 기본 서브넷을 선택합니다. 클러스터의 기본 서브넷은 VPC 기반 클러스터의 IP 주소 범위에 설명된 대로 노드, 포드, 서비스에 IPv4 주소를 제공합니다.

VPC 기반 클러스터에 최대 8개의 추가 서브넷을 할당하여 클러스터를 크게 확장할 수 있습니다. 새로 할당된 추가 서브넷을 기본이 아닌 서브넷이라고 합니다.

시작하기 전에

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

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

요구사항 및 제한사항

이 섹션에서는 클러스터에 추가 서브넷을 할당하고 사용할 때 적용되는 요구사항과 제한사항을 설명합니다. 추가 서브넷을 할당하기 전에 모든 요구사항을 충족해야 합니다.

  • GKE 클러스터가 GKE 버전 1.30.3-gke.1211000 이상을 실행하는 VPC 기반 클러스터인지 확인합니다. 경로 기반 클러스터와 기존 네트워크의 클러스터는 추가 서브넷을 지원하지 않습니다.
  • 클러스터당 최대 8개의 서브넷을 추가로 할당할 수 있습니다.
  • 추가 서브넷은 노드와 포드에 IPv4 주소만 제공합니다. 추가 서브넷은 노드 또는 포드에 IPv6 주소를 제공하는 데 사용할 수 없습니다.
  • 기존 노드 풀이 아닌 새 노드 풀만 추가 서브넷을 사용할 수 있습니다. 새 노드 풀을 만들 때 기본값이 아닌 여러 서브넷을 사용할 수 있는 경우 GKE는 IP 주소 요구사항과 모든 클러스터 서브넷의 IP 주소 가용성을 기반으로 노드 풀에 가장 적합한 서브넷을 선택합니다.
  • 기본값이 아닌 서브넷의 서브넷 보조 IPv4 주소 범위는 단일 클러스터에서만 사용할 수 있습니다.
  • 포드에 대한 다중 네트워크 지원을 사용하는 경우 추가 서브넷의 기본 및 포드 IPv4 주소 범위가 다중 네트워크 설정 내에 구성된 CIDR 범위와 중복되어서는 안 됩니다. 구성하는 추가 서브넷은 기본 네트워크에만 적용됩니다. 이 제한으로 인해 노드와 포드의 추가 네트워크 인터페이스는 이러한 추가 서브넷에서 제공하는 IP 주소를 사용할 수 없습니다.
  • 기본 서브넷의 IP 주소 풀이 소진되면 추가 서브넷을 사용하더라도 클러스터를 자동 확장할 수 없습니다.

추가 서브넷이 있는 클러스터의 부하 분산기 요구사항

이 섹션에서는 클러스터에서 추가 서브넷을 사용할 때 적용되는 부하 분산기 요구사항을 설명합니다. 이러한 요구사항은 외부 인그레스, 외부 게이트웨이 또는 외부 LoadBalancer 서비스를 만들 때마다 적용됩니다.

  • 추가 서브넷이 있는 클러스터에서 외부 인그레스, 게이트웨이 또는 LoadBalancer 서비스를 사용하려면 클러스터에서 GKE 버전 1.33.2-gke.4780000 이상을 실행해야 합니다.
  • GKE 인그레스 컨트롤러를 사용하는 외부 인그레스 객체는 컨테이너 기반 부하 분산을 사용해야 합니다.
  • 내부 LoadBalancer 서비스에 대해 GKE 하위 설정 사용 설정 GKE 하위 설정은 내부 LoadBalancer 서비스에만 영향을 미칩니다. 따라서 GKE 하위 설정을 사용 설정한 후 클러스터의 기존 서비스를 삭제하고 다시 만들어야 합니다.
  • 백엔드 서비스 기반 외부 패스 스루 네트워크 부하 분산기를 만들려면 새 외부 LoadBalancer 서비스에 cloud.google.com/l4-rbs: "enabled" 주석이 포함되어야 합니다. 이 주석은 외부 LoadBalancer 서비스에만 영향을 미치며 기존 외부 LoadBalancer 서비스에는 적용되지 않습니다. cloud.google.com/l4-rbs: "enabled" 주석 없이 생성된 모든 외부 LoadBalancer 서비스를 삭제하고 다시 만듭니다.

    사용되는 백엔드 유형 (GCE_VM_IP NEG 백엔드 또는 인스턴스 그룹 백엔드)은 외부 LoadBalancer 서비스를 만들 때의 GKE 버전에 따라 다릅니다. 자세한 내용은 노드 그룹화를 참고하세요.

포드 IPv4 주소 범위가 하나인 새 서브넷 추가

  1. 새 서브넷을 만들고 새 서브넷 보조 IPv4 주소 범위를 추가합니다. 서브넷은 클러스터와 동일한 리전 및 VPC 네트워크에 있어야 합니다.

       gcloud compute networks subnets create SUBNET_NAME \
         --network=NETWORK \
         --region=REGION \
         --range=PRIMARY_RANGE \
         --add-secondary-ranges=POD_RANGE_NAME=SECONDARY_RANGE
    

    다음을 바꿉니다.

    • SUBNET_NAME: 새 서브넷의 이름입니다.
    • NETWORK: 새 서브넷이 포함된 VPC 네트워크의 이름
    • REGION: 서브넷이 있는 리전
    • PRIMARY_RANGE: CIDR 표기법으로 표시된 새 서브넷의 기본 IPv4 주소 범위. 자세한 내용은 IPv4 서브넷 범위를 참조하세요.
    • POD_RANGE_NAME: 보조 범위의 이름
    • SECONDARY_RANGE: CIDR 표기법으로 표시된 보조 IPv4 범위. 유효한 범위는 IPv4 서브넷 범위를 참고하세요.

    자세한 내용은 서브넷 작업을 참조하세요.

  2. gcloud CLI를 사용하여 추가 서브넷을 사용하도록 클러스터를 업데이트합니다.

       gcloud container clusters update CLUSTER_NAME \
         --additional-ip-ranges=subnetwork=SUBNET_NAME,pod-ipv4-range=POD_RANGE_NAME
    

    다음을 바꿉니다.

    • CLUSTER_NAME: 기존 클러스터의 이름입니다.
    • SUBNET_NAME: 생성한 새 서브넷의 이름입니다.
    • POD_RANGE_NAME: 포드 IPv4 주소 범위에 사용할 서브넷 보조 IPv4 주소 범위의 이름입니다.

포드 IPv4 주소 범위가 여러 개인 새 서브넷 추가

  1. 클러스터와 동일한 리전 및 VPC 네트워크에 새 서브넷을 만듭니다. 서브넷 기본 IPv4 주소 범위를 노드의 추가 IPv4 주소 범위로 설정합니다.

  2. 필요한 추가 포드 IPv4 주소 범위마다 이전 단계에서 만든 서브넷에 새 서브넷 보조 IPv4 주소 범위를 추가합니다.

  3. gcloud CLI를 사용하여 추가 서브넷을 사용하도록 클러스터를 업데이트합니다. 다음 예시에서는 포드용 서브넷 보조 IPv4 주소 범위가 두 개인 서브넷을 추가합니다.

       gcloud container clusters update CLUSTER_NAME \
         --additional-ip-ranges=subnetwork=SUBNET_NAME,pod-ipv4-range=POD_RANGE_NAME_1 \
         --additional-ip-ranges=subnetwork=SUBNET_NAME,pod-ipv4-range=POD_RANGE_NAME_2
    

    다음을 바꿉니다.

    • CLUSTER_NAME: 기존 클러스터의 이름입니다.
    • SUBNET_NAME: 생성한 새 서브넷의 이름입니다.
    • POD_RANGE_NAME_1POD_RANGE_NAME_2: 포드 IPv4 주소 범위에 사용할 서브넷 보조 IPv4 주소 범위의 이름입니다.

서브넷 확인

클러스터별: 클러스터와 연결된 모든 서브넷의 세부정보를 보려면 다음 명령어를 실행합니다.

   gcloud container clusters describe CLUSTER_NAME

CLUSTER_NAME을 클러스터 이름으로 바꿉니다.

출력은 다음과 비슷합니다.

ipAllocationPolicy:
  additionalIPRangesConfig:
  - podIpv4RangeNames:
    - pod-range-1
    subnetwork: projects/user-gke-dev-2/regions/us-central1/subnetworks/shared-msc-subnets

노드 풀별: 노드 풀과 연결된 모든 서브넷의 세부정보를 보려면 다음 명령어를 실행합니다.

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

다음을 바꿉니다.

  • POOL_NAME: 노드 풀의 이름입니다.
  • CLUSTER_NAME: 클러스터의 이름입니다.

출력은 다음과 비슷합니다.

name: pool-1
networkConfig:
  podRange: pod-range-1
  subnetwork: projects/user-gke-dev-2/regions/us-central1/subnetworks/shared-msc-subnets

기본값이 아닌 서브넷 삭제

클러스터에서 기본값이 아닌 서브넷을 삭제하면 클러스터가 클러스터의 노드 풀에서 더 이상 서브넷의 범위를 사용하지 않도록 지시합니다. 삭제하면 다음과 같은 효과가 발생합니다.

  • 기본값이 아닌 서브넷의 기본 IPv4 주소 범위는 노드 IPv4 주소 범위에 사용할 수 없습니다.
  • 기본값이 아닌 서브넷의 서브넷 보조 IPv4 범위는 포드 IPv4 범위에 사용할 수 없습니다.

기본값이 아닌 서브넷을 삭제하려면 이 서브넷을 사용하는 모든 노드 풀을 삭제해야 합니다.

클러스터에서 기본값이 아닌 서브넷을 삭제하려면 다음 명령어를 실행합니다.

   gcloud container clusters update CLUSTER_NAME \
     --remove-additional-ip-ranges= subnetwork=SUBNET_NAME

다음을 바꿉니다.

  • CLUSTER_NAME: 클러스터 이름입니다.
  • SUBNET_NAME: 클러스터에서 삭제할 서브넷의 이름

클러스터에서 기본값이 아닌 서브넷을 삭제한 후 기본값이 아닌 서브넷을 삭제할 수 있습니다.

기본값이 아닌 서브넷 보조 IPv4 범위 삭제

클러스터에서 기본값이 아닌 서브넷 보조 IPv4 범위를 삭제하면 GKE는 클러스터에 노드 풀의 포드 IPv4 범위에 해당 범위를 사용하지 않도록 지시합니다. 삭제하는 기본값이 아닌 서브넷 보조 IPv4 범위가 이 클러스터에서 사용하는 기본값이 아닌 서브넷의 유일한 범위인 경우 GKE는 클러스터에 노드 IPv4 주소에 이 서브넷의 기본 IPv4 주소를 사용하지 않도록 지시합니다.

기본값이 아닌 서브넷 보조 IPv4 범위를 삭제하기 전에 포드 IPv4 주소에 해당 범위를 사용하는 모든 노드 풀을 삭제해야 합니다.

클러스터에서 기본값이 아닌 서브넷 보조 IPv4 범위를 삭제하려면 다음 명령어를 실행합니다.

   gcloud container clusters update CLUSTER_NAME \
     --remove-additional-ip-ranges=\
       subnetwork=SUBNET_NAME,pod-ipv4-range=POD_RANGE_NAME

다음을 바꿉니다.

  • CLUSTER_NAME: 클러스터의 이름입니다.
  • SUBNET_NAME: 기본값이 아닌 서브넷의 이름입니다.
  • POD_RANGE_NAME: 클러스터에서 삭제할 기본값이 아닌 서브넷 보조 IPv4 범위의 이름입니다.

클러스터에서 기본값이 아닌 서브넷 보조 IPv4 범위를 삭제한 후 기본값이 아닌 서브넷 보조 IPv4 범위를 삭제할 수 있습니다.

다음 단계