내부 범위 만들기 및 사용

이 문서에서는 내부 범위를 만들고, 사용하고, 삭제하는 방법을 설명합니다.

내부 범위를 사용하면 내부 IP 주소 블록을 할당하고 이러한 블록이 사용되는 방법을 지정하여 가상 프라이빗 클라우드(VPC) 네트워크에서 통합 IP 주소 공간을 관리할 수 있습니다.

시작하기 전에

필요한 역할

내부 범위를 사용하는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대한 Compute 네트워크 관리자(roles/compute.networkAdmin) IAM 역할을 부여해 달라고 요청하세요. 역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.

커스텀 역할이나 다른 사전 정의된 역할을 통해 필요한 권한을 얻을 수도 있습니다.

내부 범위 만들기

내부 범위를 만들 때는 적어도 2가지를 지정해야 합니다. 바로 할당할 IP 주소와 주소를 할당할 네트워크입니다. 정확한 CIDR 범위로 내부 범위를 만들거나 Google Cloud에서 범위를 자동으로 선택하도록 할 수 있습니다.

특정 CIDR 블록에 대한 내부 범위 만들기

콘솔

  1. Google Cloud 콘솔에서 내부 범위 페이지로 이동합니다.

    내부 범위로 이동

  2. 내부 범위 예약을 클릭합니다.

  3. 이름을 입력합니다.

  4. 선택사항: 설명을 입력합니다.

  5. 예약 메서드 섹션에서 직접 지정을 선택합니다.

  6. IP 범위 필드에 내부 범위의 IP 주소 범위를 CIDR 표기법으로 입력합니다.

  7. 네트워크를 선택합니다.

  8. 피어링 유형을 선택합니다.

  9. 사용량 유형을 선택합니다.

  10. 예약을 클릭합니다.

gcloud

internal-ranges create 명령어를 사용합니다.

gcloud network-connectivity internal-ranges create RANGE_NAME \
    --ip-cidr-range=CIDR_RANGE \
    --network=NETWORK_NAME \
    --description="DESCRIPTION" \
    --peering=PEERING_TYPE \
    --usage=USAGE_TYPE

다음을 바꿉니다.

  • RANGE_NAME: 새 내부 범위의 이름입니다.
  • CIDR_RANGE: 새 내부 범위에 할당할 CIDR 범위입니다.
  • NETWORK_NAME: 내부 범위를 만들 네트워크의 이름입니다.
  • DESCRIPTION: 내부 범위에 대한 선택적 설명입니다.
  • PEERING_TYPE: 내부 범위의 피어링 유형입니다. 옵션은 FOR_SELF, FOR_PEER, NOT_SHARED입니다. 기본값은 FOR_SELF입니다.
  • USAGE_TYPE: 내부 범위의 사용 유형입니다. 옵션은 FOR_VPCEXTERNAL_TO_VPC입니다. 기본값은 FOR_VPC입니다.

API

internalRanges.create 메서드에 대해 POST 요청을 실행합니다.

POST https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges?internalRangeId=RANGE_NAME
{
  "ipCidrRange": "CIDR_RANGE",
  "network": "NETWORK_NAME",
  "description": "DESCRIPTION",
  "peering": "PEERING_TYPE",
  "usage": "USAGE_TYPE"
}

다음을 바꿉니다.

  • PROJECT_ID: 내부 범위의 상위 프로젝트 ID입니다.
  • RANGE_NAME: 내부 범위의 이름입니다.
  • CIDR_RANGE: 내부 범위에 할당할 CIDR 범위입니다.
  • NETWORK_NAME: 내부 범위를 만들 네트워크의 이름입니다.
  • DESCRIPTION: 새 내부 범위에 대한 선택적 설명입니다.
  • PEERING_TYPE: 내부 범위의 피어링 유형입니다. 옵션은 FOR_SELF, FOR_PEER, NOT_SHARED입니다. 기본값은 FOR_SELF입니다.
  • USAGE_TYPE: 내부 범위의 사용 유형입니다. 옵션은 FOR_VPCEXTERNAL_TO_VPC입니다. 기본값은 FOR_VPC입니다.

자동 할당된 CIDR 블록으로 내부 범위 만들기

자동 할당된 CIDR 블록으로 내부 범위를 만들 때는 프리픽스 길이와 하나 이상의 타겟 CIDR 범위를 지정합니다. Google Cloud는 기존 IP 주소 할당을 고려하고 선택한 크기의 가용 IP 주소 블록을 대상 CIDR 범위 내에서 할당합니다.

콘솔

  1. Google Cloud 콘솔에서 내부 범위 페이지로 이동합니다.

    내부 범위로 이동

  2. 내부 범위 예약을 클릭합니다.

  3. 이름을 입력합니다.

  4. 선택사항: 설명을 입력합니다.

  5. 예약 방법 섹션에서 자동을 선택합니다.

  6. 프리픽스 길이를 선택합니다.

  7. 대상 IP 주소 범위 1 필드에 IP 주소를 할당할 IP 주소 범위를 입력합니다. 대상 IP 주소 범위 추가를 클릭하고 각 범위를 입력하여 여러 IP 주소 범위를 지정할 수 있습니다.

  8. 네트워크를 선택합니다.

  9. 피어링 유형을 선택합니다.

  10. 사용량 유형을 선택합니다.

  11. 예약을 클릭합니다.

gcloud

internal-ranges create 명령어를 사용합니다.

gcloud network-connectivity internal-ranges create RANGE_NAME \
    --network=NETWORK_NAME \
    --prefix-length=PREFIX_LENGTH \
    --target-cidr-range=TARGET_CIDR_RANGE \
    --peering=PEERING_TYPE \
    --usage=USAGE_TYPE \
    --description="DESCRIPTION"

다음을 바꿉니다.

  • RANGE_NAME: 내부 범위의 이름입니다.
  • NETWORK_NAME: 내부 범위를 만들 네트워크의 이름입니다.
  • PREFIX_LENGTH: 할당된 IP 주소의 프리픽스 길이입니다.
  • TARGET_CIDR_RANGE: IP 주소 블록을 할당할 대상 CIDR 범위입니다. 쉼표로 구분된 목록으로 여러 CIDR 범위를 입력할 수 있습니다. 기본값은 커스텀 모드 VPC 네트워크의 경우 10.0.0.0/8이고 자동 모드 VPC 네트워크의 경우 10.128.0.0/9입니다.
  • PEERING_TYPE: 내부 범위의 피어링 유형입니다. 옵션은 FOR_SELF, FOR_PEER, NOT_SHARED입니다. 기본값은 FOR_SELF입니다.
  • USAGE_TYPE: 내부 범위의 사용 유형입니다. 옵션은 FOR_VPCEXTERNAL_TO_VPC입니다. 기본값은 FOR_VPC입니다.
  • DESCRIPTION: 새 내부 범위에 대한 선택적 설명입니다.

API

internalRanges.create 메서드에 대해 POST 요청을 실행합니다.

POST https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges?internalRangeId=RANGE_NAME
{
  "prefixLength": PREFIX_LENGTH,
  "targetCidrRange": "TARGET_RANGE",
  "network": "NETWORK_NAME",
  "description": "DESCRIPTION",
  "peering": "PEERING_TYPE",
  "usage": "USAGE_TYPE"
}

다음을 바꿉니다.

  • PROJECT_ID: 내부 범위의 상위 프로젝트 ID입니다.
  • RANGE_NAME: 내부 범위의 이름입니다.
  • PREFIX_LENGTH: 범위의 IP 주소 블록의 CIDR 프리픽스 길이입니다.
  • TARGET_RANGE: IP 주소 블록을 할당할 대상 CIDR 범위입니다. JSON 배열로 여러 CIDR 범위를 지정할 수 있습니다. 기본값은 커스텀 모드 VPC 네트워크의 경우 10.0.0.0/8이고 자동 모드 VPC 네트워크의 경우 10.128.0.0/9입니다.
  • NETWORK_NAME: 내부 범위를 만들 네트워크의 이름입니다.
  • DESCRIPTION: 새 내부 범위에 대한 선택적 설명입니다.
  • PEERING_TYPE: 내부 범위의 피어링 유형입니다. 옵션은 FOR_SELF, FOR_PEER, NOT_SHARED입니다. 기본값은 FOR_SELF입니다.
  • USAGE_TYPE: 내부 범위의 사용 유형입니다. 옵션은 FOR_VPCEXTERNAL_TO_VPC입니다. 기본값은 FOR_VPC입니다.

내부 범위 예약

사용 유형피어링 유형이 올바르게 설정된 내부 범위를 만들면 할당된 IP 주소가 의도한 대로 사용되도록 Google Cloud에서 도울 수 있습니다. 내부 범위는 사용 유형 및 피어링 유형에 선택한 설정에 따라 사용하도록 예약됩니다.

온프레미스 네트워크의 내부 범위 예약

온프레미스 전용으로 예약된 내부 범위를 만들 수 있습니다. 온프레미스 사용을 위한 범위를 예약할 때는 새 리소스가 예약된 범위와 충돌할 경우 Google Cloud에서 상위 VPC 네트워크에 서브네트워크 또는 경로를 만들 수 없습니다.

콘솔

  1. Google Cloud 콘솔에서 내부 범위 페이지로 이동합니다.

    내부 범위로 이동

  2. 내부 범위 예약을 클릭합니다.

  3. 이름을 입력합니다.

  4. 선택사항: 설명을 입력합니다.

  5. 예약 메서드 섹션에서 직접 지정을 선택합니다.

  6. IP 범위 필드에 내부 범위의 IP 주소 범위를 CIDR 표기법으로 입력합니다.

  7. 네트워크를 선택합니다.

  8. 피어링을 클릭한 다음 공유 안함을 선택합니다.

  9. 사용량을 클릭한 후 VPC 외부를 선택합니다.

  10. 예약을 클릭합니다.

gcloud

internal-ranges create 명령어를 사용합니다.

gcloud network-connectivity internal-ranges create RANGE_NAME \
    --ip-cidr-range=CIDR_RANGE \
    --network=NETWORK_NAME \
    --description="reserved for on-premises" \
    --usage=EXTERNAL_TO_VPC \
    --peering=NOT_SHARED

다음을 바꿉니다.

  • RANGE_NAME: 온프레미스 사용을 위해 예약할 내부 범위의 이름입니다.
  • CIDR_RANGE: 온프레미스 사용을 위해 할당할 CIDR 범위입니다.
  • NETWORK_NAME: 내부 범위를 만들 네트워크의 이름입니다.

API

internalRanges.create 메서드에 대해 POST 요청을 실행합니다.

POST https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges?internalRangeId=RANGE_NAME
{
  "ipCidrRange": "CIDR_RANGE",
  "network": "NETWORK_NAME",
  "description": "reserved for on-premises use",
  "usage": "EXTERNAL_TO_VPC",
  "peering": "NOT_SHARED"
}

다음을 바꿉니다.

  • PROJECT_ID: 내부 범위의 상위 프로젝트 ID입니다.
  • RANGE_NAME: 새 내부 범위의 이름입니다.
  • CIDR_RANGE: 범위의 IP 주소 블록의 CIDR 프리픽스 길이입니다.
  • NETWORK_NAME: 내부 범위를 만들 네트워크의 이름입니다.

피어 네트워크용 내부 범위 예약

피어 VPC 네트워크용으로 예약된 내부 범위를 만들 수 있습니다. 피어 VPC 네트워크에 범위를 예약하면 범위의 상위 VPC 네트워크에 있는 리소스는 해당 범위를 사용할 수 없습니다. 피어 및 P2P VPC 네트워크의 피어만 이 범위를 사용할 수 있습니다.

콘솔

  1. Google Cloud 콘솔에서 내부 범위 페이지로 이동합니다.

    내부 범위로 이동

  2. 내부 범위 예약을 클릭합니다.

  3. 이름을 입력합니다.

  4. 선택사항: 설명을 입력합니다.

  5. 예약 메서드 섹션에서 직접 지정을 선택합니다.

  6. IP 범위 필드에 내부 범위의 IP 주소 범위를 CIDR 표기법으로 입력합니다.

  7. 네트워크를 선택합니다.

  8. 피어링을 클릭한 후 피어를 선택합니다.

  9. 사용량을 클릭한 후 VPC용을 선택합니다.

  10. 예약을 클릭합니다.

gcloud

internal-ranges create 명령어를 사용합니다.

gcloud network-connectivity internal-ranges create RANGE_NAME \
    --target-cidr-range=TARGET_CIDR_RANGE \
    --prefix-length=PREFIX_LENGTH \
    --network=NETWORK_NAME \
    --peering=FOR_PEER \
    --usage=FOR_VPC

다음을 바꿉니다.

  • RANGE_NAME: 피어 네트워크 전용으로 예약할 내부 범위의 이름입니다.
  • TARGET_CIDR_RANGE: IP 주소 블록을 할당할 대상 CIDR 범위입니다. 쉼표로 구분된 목록으로 여러 CIDR 범위를 지정할 수 있습니다. 기본값은 커스텀 모드 VPC 네트워크의 경우 10.0.0.0/8이고 자동 모드 VPC 네트워크의 경우 10.128.0.0/9입니다.
  • PREFIX_LENGTH: 할당된 IP 주소의 프리픽스 길이입니다.
  • NETWORK_NAME: 내부 범위를 만들 네트워크의 이름입니다.

API

internalRanges.create 메서드에 대해 POST 요청을 실행합니다.

POST https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges?internalRangeId=RANGE_NAME
{
  "prefixLength": PREFIX_LENGTH,
  "targetCidrRange": "TARGET_CIDR_RANGE",
  "network": "NETWORK_NAME",
  "peering": "FOR_PEER",
  "usage": "FOR_VPC"
}

다음을 바꿉니다.

  • PROJECT_ID: 내부 범위의 상위 프로젝트 ID입니다.
  • RANGE_NAME: 내부 범위의 이름입니다.
  • PREFIX_LENGTH: 범위의 IP 주소 블록의 CIDR 프리픽스 길이입니다.
  • TARGET_CIDR_RANGE: IP 주소 블록을 할당할 CIDR 범위입니다. JSON 배열로 여러 CIDR 범위를 지정할 수 있습니다. 기본값은 커스텀 모드 VPC 네트워크의 경우 10.0.0.0/8이고 자동 모드 VPC 네트워크의 경우 10.128.0.0/9입니다.
  • NETWORK_NAME: 내부 범위를 만들 네트워크의 이름입니다.

로컬 VPC 네트워크에 내부 범위 예약

로컬 VPC 네트워크 전용으로 예약된 내부 범위를 만들 수 있습니다. 예약된 범위는 피어 VPC 네트워크에서 공지하지 않으며 피어 VPC 네트워크는 상위 VPC 네트워크에 표시되는 방식으로 내부 범위를 사용할 수 없습니다.

콘솔

  1. Google Cloud 콘솔에서 내부 범위 페이지로 이동합니다.

    내부 범위로 이동

  2. 내부 범위 예약을 클릭합니다.

  3. 이름을 입력합니다.

  4. 선택사항: 설명을 입력합니다.

  5. 예약 메서드 섹션에서 직접 지정을 선택합니다.

  6. IP 범위 필드에 내부 범위의 IP 주소 범위를 CIDR 표기법으로 입력합니다.

  7. 네트워크를 선택합니다.

  8. 피어링을 클릭한 다음 공유 안함을 선택합니다.

  9. 사용량을 클릭한 후 VPC용을 선택합니다.

  10. 예약을 클릭합니다.

gcloud

internal-ranges create 명령어를 사용합니다.

gcloud network-connectivity internal-ranges create RANGE_NAME \
    --ip-cidr-range=CIDR_RANGE \
    --network=NETWORK_NAME \
    --peering=NOT_SHARED \
    --usage=FOR_VPC

다음을 바꿉니다.

  • RANGE_NAME: 로컬 VPC 네트워크에서 사용하도록 예약할 내부 범위의 이름입니다.
  • CIDR_RANGE: 범위의 IP 주소 블록의 CIDR 프리픽스 길이입니다.
  • NETWORK_NAME: 내부 범위를 만들 네트워크의 이름입니다.

API

internalRanges.create 메서드에 대해 POST 요청을 실행합니다.

POST https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges?internalRangeId=RANGE_NAME
{
  "ipCidrRange": "CIDR_RANGE",
  "network": "NETWORK_NAME",
  "peering": "NOT_SHARED",
  "usage": "FOR_VPC"
}

다음을 바꿉니다.

  • PROJECT_ID: 내부 범위의 상위 프로젝트 ID입니다.
  • RANGE_NAME: 새 내부 범위의 이름입니다.
  • CIDR_RANGE: 범위의 IP 주소 블록의 CIDR 프리픽스 길이입니다.
  • NETWORK_NAME: 내부 범위를 만들 네트워크의 이름입니다.

내부 범위가 있는 서브네트워크 만들기

서브네트워크를 만들고 내부 범위를 사용하여 서브넷의 내부 IP 주소 범위를 지정할 수 있습니다. 서브네트워크는 전체 내부 범위와 연결하거나 범위의 일부에만 연결할 수도 있습니다. 서브네트워크의 보조 범위는 내부 범위와 연결할 수도 있습니다.

내부 범위와 연결된 하위 네트워크를 만들려면 Google Cloud CLI를 사용하거나 API 요청을 보내세요.

전체 내부 범위를 사용하는 서브네트워크 만들기

내부 IP 주소 범위에 전체 내부 범위를 사용하는 서브네트워크를 만들려면 다음 단계를 따르세요.

gcloud

  1. 새 서브넷을 만들 네트워크의 내부 범위를 만듭니다. 이 내부 범위의 사용 유형을 FOR_VPC로 설정하고 피어링 유형을 FOR_SELF로 설정합니다.
  2. subnets create 명령어를 사용합니다.

    gcloud beta compute networks subnets create SUBNET_NAME \
        --reserved-internal-range=networkconnectivity.googleapis.com/projects/PROJECT_ID/locations/global/internalRanges/RANGE_NAME \
        --network=NETWORK_NAME \
        --region=REGION
    

    다음을 바꿉니다.

    • SUBNET_NAME: 서브넷의 이름입니다.
    • PROJECT_ID: 서브넷을 만들 프로젝트의 ID입니다.
    • RANGE_NAME: 서브넷과 연결할 내부 범위의 이름입니다.
    • NETWORK_NAME: 서브네트워크를 만들 네트워크의 이름입니다.
    • REGION: 서브네트워크를 만들 리전입니다.

API

  1. 새 서브넷을 만들 네트워크의 내부 범위를 만듭니다. 이 내부 범위의 사용 유형을 FOR_VPC로 설정하고 피어링 유형을 FOR_SELF로 설정합니다.
  2. subnetworks.insert 메서드에 대해 POST 요청을 실행합니다.

    POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/subnetworks
    {
      "name" : "SUBNET_NAME",
      "reservedInternalRange" : "networkconnectivity.googleapis.com/projects/PROJECT_ID/locations/global/internalRanges/RANGE_NAME",
      "network" : "NETWORK"
    }
    

    다음을 바꿉니다.

    • PROJECT_ID: 새 서브넷의 상위 프로젝트 ID입니다.
    • REGION: 서브넷을 만들 리전입니다.
    • SUBNET_NAME: 새 서브넷의 이름입니다.
    • PROJECT_ID: 서브넷을 만들 프로젝트의 ID입니다.
    • RANGE_NAME: 새 서브넷에 사용할 내부 범위의 이름입니다.
    • NETWORK: 서브넷을 만들 네트워크의 이름입니다.

내부 범위의 일부를 사용하는 서브네트워크 만들기

내부 IP 주소 범위에 내부 범위의 일부를 사용하는 하위 네트워크를 만들려면 다음 단계를 따르세요.

gcloud

  1. 새 서브넷을 만들 네트워크의 내부 범위를 만듭니다. 이 내부 범위의 사용 유형을 FOR_VPC로 설정하고 피어링 유형을 FOR_SELF로 설정합니다.
  2. subnets create 명령어를 사용합니다.

    gcloud beta compute networks subnets create SUBNET_NAME \
        --reserved-internal-range=networkconnectivity.googleapis.com/projects/PROJECT_ID/locations/global/internalRanges/RANGE_NAME \
        --range=IP_RANGE \
        --network=NETWORK_NAME \
        --region=REGION
    

    다음을 바꿉니다.

    • SUBNET_NAME: 서브넷의 이름입니다.
    • PROJECT_ID: 서브넷을 만들 프로젝트의 ID입니다.
    • RANGE_NAME: 새 서브넷에 연결할 내부 범위의 이름입니다.
    • IP_RANGE: 내부 범위의 하위 집합인 CIDR 범위입니다.
    • NETWORK_NAME: 서브네트워크를 만들 네트워크의 이름입니다.
    • REGION: 서브네트워크를 만들 리전입니다.

예를 들어 다음 두 명령어는 10.9.0.0/16 CIDR 블록을 예약하는 내부 범위의 10.9.1.0/24 부분에만 연결된 서브넷을 만듭니다.

gcloud network-connectivity internal-ranges create reserved-range-one \
    --ip-cidr-range=10.9.0.0/16 \
    --network=vpc-one
gcloud beta compute networks subnets create subnet-one \
    --reserved-internal-range=networkconnectivity.googleapis.com/projects/project-one/locations/global/internalRanges/reserved-range-one \
    --range=10.9.1.0/24 \
    --network=vpc-one \
    --region=us-central1

API

  1. 새 서브넷을 만들 네트워크의 내부 범위를 만듭니다. 이 내부 범위의 사용 유형을 FOR_VPC로 설정하고 피어링 유형을 FOR_SELF로 설정합니다.
  2. subnetworks.insert 메서드에 대해 POST 요청을 실행합니다.

    POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/subnetworks
    {
      "name" : "SUBNET_NAME",
      "reservedInternalRange" : "networkconnectivity.googleapis.com/projects/PROJECT_ID/locations/global/internalRanges/RANGE_NAME",
      "range" : "IP_RANGE",
      "network" : "NETWORK"
    }
    

    다음을 바꿉니다.

    • PROJECT_ID: 새 서브넷의 상위 프로젝트 ID입니다.
    • REGION: 서브넷을 만들 리전입니다.
    • SUBNET_NAME: 서브넷의 이름입니다.
    • PROJECT_ID: 서브넷을 만들 프로젝트의 ID입니다.
    • RANGE_NAME: 새 서브넷에 연결할 내부 범위의 이름입니다.
    • IP_RANGE: 선택한 내부 범위의 하위 집합인 CIDR 범위입니다.
    • NETWORK: 서브네트워크를 만들 네트워크의 이름입니다.

예를 들어 다음 두 요청은 10.9.0.0/16 CIDR 블록을 포함하는 내부 범위의 10.9.1.0/24 부분에만 연결된 서브넷을 만듭니다.

POST https://networkconnectivity.googleapis.com/v1/projects/sample-project/locations/global/internalRanges?internalRangeId=reserved-for-subnet
{
  "targetCidrRange": "10.9.0.0/16",
  "network": "network-b"
}
POST https://compute.googleapis.com/compute/beta/projects/11223344/regions/us-central1/subnetworks
{
  "name" : "subnet-with-partial-range",
  "reservedInternalRange" : "networkconnectivity.googleapis.com/projects/project-one/locations/global/internalRanges/reserved-for-subnet",
  "range" : "10.9.1.0/24",
  "network" : "network-b"
}

내부 범위가 있는 GKE 클러스터 만들기

내부 범위를 사용하여 Google Kubernetes Engine(GKE) VPC 기반 클러스터의 IP 주소를 할당할 수 있습니다.

내부 범위가 있는 VPC 기반 클러스터를 만들려면 Google Cloud CLI를 사용하거나 API 요청을 보내세요.

gcloud

  1. internal-ranges create 명령어를 사용하여 다음 내부 범위를 만듭니다.

    gcloud network-connectivity internal-ranges create gke-nodes-1 \
        --prefix-length=NODE_PREFIX_LENGTH \
        --network=NETWORK
    
    gcloud network-connectivity internal-ranges create gke-pods-1 \
        --prefix-length=POD_PREFIX_LENGTH \
        --network=NETWORK
    
    gcloud network-connectivity internal-ranges create gke-services-1 \
        --prefix-length=SERVICE_PREFIX_LENGTH \
        --network=NETWORK
    

    다음을 바꿉니다.

    • NODE_PREFIX_LENGTH: GKE 노드와 연결된 내부 범위의 프리픽스 길이입니다.
    • POD_PREFIX_LENGTH: GKE 포드와 연결된 내부 범위의 프리픽스 길이입니다.
    • SERVICE_PREFIX_LENGTH: GKE 서비스와 연결된 내부 범위의 프리픽스 길이입니다.
    • NETWORK: 네트워크의 이름입니다.
  2. subnets create 명령어를 사용하여 이전 단계에서 만든 내부 범위로 서브넷을 만듭니다.

    gcloud beta compute networks subnets create gke-subnet-1 \
        --network=NETWORK \
        --region=REGION \
        --reserved-internal-range="//networkconnectivity.googleapis.com/projects/PROJECT_ID/locations/global/internalRanges/gke-nodes-1" \
        --secondary-range-with-reserved-internal-range="pods=//networkconnectivity.googleapis.com/projects/PROJECT_ID/locations/global/internalRanges/gke-pods-1,services=//networkconnectivity.googleapis.com/projects/PROJECT_ID/locations/global/internalRanges/gke-services-1"
    

    다음을 바꿉니다.

    • NETWORK: 네트워크의 이름입니다.
    • REGION: 서브넷의 리전입니다.
    • PROJECT_ID: 프로젝트 ID입니다.
  3. clusters create 명령어를 사용하여 VPC 기반 클러스터를 만듭니다.

    gcloud container clusters create CLUSTER_NAME \
        --network=NETWORK \
        --subnetwork=gke-subnet-1 \
        --zone=ZONE \
        --cluster-secondary-range-name=pods \
        --services-secondary-range-name=services \
        --enable-ip-alias
    

API

  1. internalRanges.create 메서드POST 요청을 전송하여 다음 내부 범위를 만듭니다.

    POST https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges?internalRangeId=gke-nodes-1
    {
      "network": "NETWORK",
      "prefixLength": NODE_PREFIX_LENGTH,
      "peering": "FOR_SELF",
      "usage": "FOR_VPC"
    }
    
    POST https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges?internalRangeId=gke-pods-1
    {
      "network": "NETWORK",
      "prefixLength": POD_PREFIX_LENGTH,
      "peering": "FOR_SELF",
      "usage": "FOR_VPC"
    }
    
    POST https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges?internalRangeId=gke-services-1
    {
      "network": "NETWORK",
      "prefixLength": SERVICE_PREFIX_LENGTH,
      "peering": "FOR_SELF",
      "usage": "FOR_VPC"
    }
    

    다음을 바꿉니다.

    • PROJECT_ID: 프로젝트 ID입니다.
    • NETWORK: 네트워크의 이름입니다.
    • NODE_PREFIX_LENGTH: GKE 노드와 연결된 내부 범위의 프리픽스 길이입니다.
    • POD_PREFIX_LENGTH: GKE 포드와 연결된 내부 범위의 프리픽스 길이입니다.
    • SERVICE_PREFIX_LENGTH: GKE 서비스와 연결된 내부 범위의 프리픽스 길이입니다.
  2. subnetworks.insert 메서드POST 요청을 전송하여 이전 단계에서 만든 내부 범위로 서브넷을 만듭니다.

    POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/subnetworks
    {
      "name": "gke-subnet-1",
      "network": "https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/global/networks/NETWORK",
      "privateIpGoogleAccess": false,
      "reservedInternalRange": "//networkconnectivity.googleapis.com/projects/PROJECT_ID/locations/global/internalRanges/gke-nodes-1",
      "secondaryIpRanges": [
        {
          "rangeName": "pods",
          "reservedInternalRange": "//networkconnectivity.googleapis.com/projects/PROJECT_ID/locations/global/internalRanges/gke-pods-1"
        },
        {
          "rangeName": "services",
          "reservedInternalRange": "//networkconnectivity.googleapis.com/projects/PROJECT_ID/locations/global/internalRanges/gke-services-1"
        }
      ]
    }
    

    다음을 바꿉니다.

    • PROJECT_ID: 프로젝트 ID
    • REGION: 서브넷의 리전입니다.
    • NETWORK: 서브넷의 네트워크입니다.
  3. clusters.create 메서드POST 요청을 전송하여 VPC 기반 클러스터를 만듭니다.

    POST https://container.googleapis.com/v1/projects/PROJECT_ID/locations/ZONE/clusters
    {
      "cluster": {
        "ipAllocationPolicy": {
          "clusterSecondaryRangeName": "pods",
          "createSubnetwork": false,
          "servicesSecondaryRangeName": "services",
          "useIpAliases": true
        },
        "name": "CLUSTER_NAME",
        "network": "NETWORK",
        "nodePools": [
          {
            "config": {
              "oauthScopes": [
                "https://www.googleapis.com/auth/devstorage.read_only",
                "https://www.googleapis.com/auth/logging.write",
                "https://www.googleapis.com/auth/monitoring",
                "https://www.googleapis.com/auth/service.management.readonly",
                "https://www.googleapis.com/auth/servicecontrol",
                "https://www.googleapis.com/auth/trace.append"
              ]
            },
            "initialNodeCount": 3,
            "management": {
              "autoRepair": true,
              "autoUpgrade": true
            },
            "name": "default-pool",
            "upgradeSettings": {
              "maxSurge": 1
            }
          }
        ],
        "subnetwork": "gke-subnet-1"
      },
      "parent": "projects/PROJECT_ID/locations/ZONE"
    }
    

    다음을 바꿉니다.

    • PROJECT_ID: 프로젝트 ID입니다.
    • ZONE: 클러스터의 영역입니다.
    • CLUSTER_NAME: 새 클러스터의 이름
    • NETWORK: 클러스터의 네트워크입니다.

내부 범위 나열

내부 범위를 나열하여 현재 프로젝트 또는 특정 VPC 네트워크의 모든 내부 범위를 확인할 수 있습니다. VPC 네트워크의 프로젝트를 나열하려면 Google Cloud CLI를 사용하거나 API 요청을 보내세요.

콘솔

gcloud

  • 현재 프로젝트의 모든 내부 범위를 보려면 internal-ranges list 명령어를 사용합니다.

    gcloud network-connectivity internal-ranges list
    
  • VPC 네트워크의 모든 내부 범위를 보려면 internal-ranges list 명령어를 사용하고 필터를 포함합니다.

    gcloud network-connectivity internal-ranges list \
        --filter=network:NETWORK_NAME \
        --project=PROJECT_ID
    

    다음을 바꿉니다.

    • NETWORK_NAME: 내부 범위를 나열할 VPC 네트워크의 이름입니다.
    • PROJECT_ID: VPC 네트워크가 포함된 프로젝트의 ID입니다.

API

  • 프로젝트의 모든 내부 범위를 보려면 internalRanges.list 메서드에 대해 GET 요청을 실행합니다.

    GET https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges
    

    PROJECT_ID를 내부 범위를 표시할 프로젝트의 ID로 바꿉니다.

  • VPC 네트워크의 모든 내부 범위를 보려면 internalRanges.list 메서드에 GET 요청을 하고 필터를 포함합니다.

    GET https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges?filter=network=\"https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/NETWORK_NAME\"
    

    NETWORK_NAME을 내부 범위를 나열할 VPC 네트워크의 이름으로 바꿉니다.

내부 범위 설명

내부 범위를 설명하여 내부 범위와 연결된 모든 서브네트워크를 비롯하여 선택한 범위에 관한 세부정보를 볼 수 있습니다.

콘솔

  1. Google Cloud 콘솔에서 내부 범위 페이지로 이동합니다.

    내부 범위로 이동

  2. 설명하려는 내부 범위의 이름을 클릭합니다.

gcloud

internal-ranges describe 명령어를 사용합니다.

gcloud network-connectivity internal-ranges describe RANGE_NAME

RANGE_NAME을 설명할 내부 범위의 이름으로 바꿉니다.

API

internalRanges.get 메서드에 대해 GET 요청을 실행합니다.

GET https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges/RANGE_NAME

다음을 바꿉니다.

  • PROJECT_ID: 내부 범위의 상위 프로젝트 ID입니다.
  • RANGE_NAME: 설명할 내부 범위의 이름입니다.

내부 범위 확장

내부 범위 리소스에 할당된 IP 주소 범위를 확장할 수는 있지만 범위를 좁힐 수는 없습니다. 업데이트된 범위에는 이전 범위가 포함되어야 합니다. 할당된 범위를 좁히거나 다른 요소를 수정하려면 내부 범위를 삭제하고 새 범위를 만듭니다.

내부 범위의 IP CIDR 범위 확장

IP CIDR 범위를 업데이트하여 내부 범위를 확장하려면 다음 단계를 따르세요.

콘솔

  1. Google Cloud 콘솔에서 내부 범위 페이지로 이동합니다.

    내부 범위로 이동

  2. 업데이트할 내부 범위의 이름을 클릭합니다.

  3. 범위 펼치기를 클릭합니다.

  4. IP 범위를 클릭합니다.

  5. 이전 범위가 포함되어야 하는 새 IP 범위를 입력합니다.

  6. 펼치기를 클릭합니다.

gcloud

internal-ranges update 명령어를 사용합니다.

gcloud network-connectivity internal-ranges update RANGE_NAME \
    --ip-cidr-range=CIDR_RANGE

다음을 바꿉니다.

  • RANGE_NAME: 내부 범위의 이름입니다.
  • CIDR_RANGE: 업데이트된 CIDR 범위로, 이전 범위를 포함해야 합니다.

API

internalRanges.patch 메서드에 대해 PATCH 요청을 실행합니다.

PATCH https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges/RANGE_NAME?updateMask=ipCidrRange
{
  "ipCidrRange": "CIDR_RANGE"
}

다음을 바꿉니다.

  • PROJECT_ID: 내부 범위의 상위 프로젝트 ID입니다.
  • RANGE_NAME: 내부 범위의 이름입니다.
  • CIDR_RANGE: 업데이트된 CIDR 범위로, 이전 범위를 포함해야 합니다.

프리픽스 길이를 줄여 내부 범위 확장

프리픽스 길이를 줄여 내부 범위를 확장하려면 다음 단계를 따르세요.

콘솔

  1. Google Cloud 콘솔에서 내부 범위 페이지로 이동합니다.

    내부 범위로 이동

  2. 업데이트할 내부 범위의 이름을 클릭합니다.

  3. 범위 펼치기를 클릭합니다.

  4. 프리픽스 길이를 클릭합니다.

  5. 프리픽스 길이 목록에서 기존 프리픽스 길이보다 짧은 프리픽스 길이를 선택합니다.

  6. 펼치기를 클릭합니다.

gcloud

internal-ranges update 명령어를 사용합니다.

gcloud network-connectivity internal-ranges update RANGE_NAME \
    --prefix-length=PREFIX_LENGTH

다음을 바꿉니다.

  • RANGE_NAME: 내부 범위의 이름입니다.
  • PREFIX_LENGTH: 업데이트된 프리픽스 길이로, 이전 프리픽스 길이보다 작아야 합니다.

API

internalRanges.patch 메서드에 대해 PATCH 요청을 실행합니다.

PATCH https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges/RANGE_NAME?updateMask=prefixLength
{
  "prefixLength": PREFIX_LENGTH
}

다음을 바꿉니다.

  • PROJECT_ID: 내부 범위의 상위 프로젝트 ID입니다.
  • RANGE_NAME: 내부 범위의 이름입니다.
  • PREFIX_LENGTH: 업데이트된 프리픽스 길이로, 이전 프리픽스 길이보다 작아야 합니다.

내부 범위 삭제

서브네트워크와 같은 Google Cloud 리소스와 연결되어 있지 않은 경우 내부 범위를 삭제할 수 있습니다. Google Cloud 리소스와 연결된 내부 범위를 삭제하려면 먼저 연결된 리소스를 삭제합니다.

콘솔

  1. Google Cloud 콘솔에서 내부 범위 페이지로 이동합니다.

    내부 범위로 이동

  2. 삭제하려는 내부 범위의 이름을 클릭합니다.

  3. 삭제를 클릭합니다.

  4. 삭제를 클릭하여 확인합니다.

gcloud

internal-ranges delete 명령어를 사용합니다.

gcloud network-connectivity internal-ranges delete RANGE_TO_DELETE

RANGE_TO_DELETE를 삭제할 내부 범위의 이름으로 바꿉니다.

API

internalRanges.delete 메서드에 대해 DELETE 요청을 실행합니다.

DELETE https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges/RANGE_NAME

다음을 바꿉니다.

  • PROJECT_ID: 내부 범위의 상위 프로젝트 ID입니다.
  • RANGE_NAME: 내부 범위의 이름입니다.