내부 범위 만들기 및 사용
이 문서에서는 내부 범위를 만들고, 사용하고, 삭제하는 방법을 설명합니다.
내부 범위를 사용하면 내부 IP 주소 블록을 할당하고 이러한 블록이 사용되는 방법을 지정하여 가상 프라이빗 클라우드(VPC) 네트워크에서 통합 IP 주소 공간을 관리할 수 있습니다.
시작하기 전에
- 이 가이드의 명령줄 예시를 사용하려면 최신 버전의 Google Cloud CLI를 설치하거나 업데이트합니다.
- 프로젝트에서 Network Connectivity API를 사용 설정해야 합니다.
- VPC 네트워크를 식별하거나 만듭니다.
필요한 역할
내부 범위를 사용하는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대한 Compute 네트워크 관리자(roles/compute.networkAdmin
) IAM 역할을 부여해 달라고 요청하세요.
역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.
커스텀 역할이나 다른 사전 정의된 역할을 통해 필요한 권한을 얻을 수도 있습니다.
내부 범위 예약
내부 범위를 만들 때는 적어도 2가지를 지정해야 합니다. 바로 할당할 IP 주소와 주소를 할당할 네트워크입니다. 특정 CIDR 블록으로 IPv4 또는 IPv6 내부 범위를 만들거나 Google Cloud 에서 IPv4 블록을 자동으로 할당하도록 할 수 있습니다. 자동으로 할당된 주소 블록으로 IPv6 내부 범위를 만들 수 없습니다.
자동 할당된 IPv4 CIDR 블록을 요청할 때는 프리픽스 길이와 하나 이상의 선택적 대상 IPv4 CIDR 블록을 제공합니다. 대상 CIDR 블록을 지정하지 않으면 Google Cloud 에서 커스텀 모드 VPC 네트워크의 경우 기본 범위인 10.0.0.0/8
을 사용하고 자동 모드 VPC 네트워크의 경우 10.128.0.0/9
를 사용합니다. Google Cloud 는 기존 IP 주소 할당을 고려하고 대상 CIDR 블록 내에서 선택한 크기의 가용 CIDR 블록을 내부 범위에 할당합니다. gcloud CLI를 사용하거나 API 요청을 전송하여 제외할 CIDR 블록의 선택적 목록(프리뷰)을 제공하여 이 할당을 더 세분화할 수 있습니다. Google Cloud 는 제외된 블록과 겹치지 않는 내부 범위에 IP 주소 블록을 할당합니다. 내부 범위를 만든 후에는 제외된 블록 목록을 업데이트할 수 없습니다.
Google Cloud 가 가용 블록을 자동으로 선택하기 위해 사용하는 메서드를 제어하려면 할당 전략(프리뷰)을 지정하면 됩니다. 할당 전략을 지정하지 않으면 Google Cloud는 대상 CIDR 블록(또는 대상 CIDR 블록이 지정되지 않은 경우 기본 범위) 내에서 가용 IP 주소 범위를 무작위로 할당합니다. 할당 전략을 선택하려면 Google Cloud CLI를 사용하거나 API 요청을 전송합니다.
IPv6 내부 범위를 사용하면 새 IPv6 전용 또는 이중 스택 서브넷에 IP 주소가 자동으로 할당되는 것을 방지할 수 있습니다. IPv6 내부 범위에는 사용 유형 EXTERNAL_TO_VPC
및 피어링 유형 FOR_SELF
가 있어야 합니다. 특정 IPv6 CIDR 블록을 포함해야 하며 overlaps
필드는 비어 있거나 지정되지 않아야 합니다.
사용자가 내부 범위의 CIDR 블록 또는 중복 구성을 업데이트하지 못하도록 변경 불가능한 내부 범위를 만들 수 있습니다. 변경 불가능한 내부 범위는 이러한 속성의 변경을 방지하지만 설명은 업데이트할 수 있습니다. 내부 범위가 생성된 후에는 불변성을 변경할 수 없습니다.
기본적으로 Google Cloud 는 동일한 VPC 네트워크에서 겹치는 IP 주소를 공유하는 경우 내부 범위 또는 리소스의 생성을 차단합니다. 경로, 서브넷 또는 둘 다의 주소 범위와 겹치도록 IPv4 내부 범위를 구성할 수 있습니다. 리소스를 명시적으로 내부 범위와 연결(서브넷의 경우)하거나 중복을 구성(경로의 경우)하지 않는 한 기존 내부 범위의 IP 주소를 사용하는 Google Cloud 리소스를 만들 수 없습니다. 중복되는 내부 범위를 만들려면 Google Cloud CLI를 사용하거나 API 요청을 전송합니다.
콘솔
Google Cloud 콘솔에서 내부 범위 페이지로 이동합니다.
내부 범위 예약을 클릭합니다.
이름을 입력합니다.
선택사항: 설명을 입력합니다.
IP 버전을 선택합니다.
- IPv4를 선택하는 경우 다음을 실행합니다.
- 내부 범위를 변경할 수 없는지 여부를 지정합니다.
- 예약 방법을 선택합니다.
- 자동을 선택하는 경우 프리픽스 길이를 선택한 다음 CIDR 표기법으로 대상 IP 주소 범위를 입력합니다.
- 직접 지정을 선택한 경우 CIDR 표기법으로 IP 범위를 입력합니다.
- 네트워크를 선택하세요.
- 피어링 유형을 선택합니다.
- 사용 유형을 선택합니다.
- IPv6를 선택하는 경우 다음을 실행합니다.
- 내부 범위를 변경할 수 없는지 여부를 지정합니다.
- 직접 지정을 선택한 다음 IPv6 또는 IPv4 매핑 IPv6 CIDR 블록을 입력합니다.
- 네트워크를 선택하세요.
- 피어링을 클릭한 후 셀프를 선택합니다.
- 사용량을 클릭한 후 VPC 외부를 선택합니다.
- IPv4를 선택하는 경우 다음을 실행합니다.
예약을 클릭합니다.
gcloud
특정 IPv4 또는 IPv6 CIDR 블록의 내부 범위를 예약하려면
gcloud network-connectivity 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
: 새 내부 범위에 할당할 IPv4, IPv6 또는 IPv4 매핑 IPv6 CIDR 블록입니다.- IPv6 블록을 지정하는 경우 다음을 실행해야 합니다.
peering
유형을FOR_SELF
로 설정합니다.usage
유형을EXTERNAL_TO_VPC
로 설정합니다.
- IPv6 블록을 지정하는 경우 다음을 실행해야 합니다.
NETWORK_NAME
: 내부 범위를 만들 네트워크의 이름입니다.DESCRIPTION
: 내부 범위에 대한 선택적 설명입니다.PEERING_TYPE
: 내부 범위의 피어링 유형입니다.옵션은
FOR_SELF
,FOR_PEER
,NOT_SHARED
입니다. 기본값은FOR_SELF
입니다.USAGE_TYPE
: 내부 범위의 사용 유형입니다.옵션은
FOR_VPC
,EXTERNAL_TO_VPC
,FOR_MIGRATION
입니다. 기본값은FOR_VPC
입니다.FOR_MIGRATION
옵션을 사용하는 경우 소스 및 대상 서브넷도 지정해야 합니다. 예를 보려면 서브넷 마이그레이션을 위해 IPv4 내부 범위 예약을 참조하세요.
자동으로 할당된 CIDR 블록으로 IPv4 내부 범위를 예약하려면 다음 명령어를 사용합니다.
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" \ --allocation-strategy=ALLOCATION_STRATEGY [--first-available-ranges-lookup-size=FIRST_N_LOOKUP_SIZE]
다음을 바꿉니다.
PREFIX_LENGTH
: 할당된 IP 주소의 프리픽스 길이입니다.TARGET_CIDR_RANGE
: IPv4 주소 블록을 할당할 대상 CIDR 블록입니다.쉼표로 구분된 목록으로 여러 CIDR 블록을 입력할 수 있습니다. 기본값은 커스텀 모드 VPC 네트워크의 경우
10.0.0.0/8
이고 자동 모드 VPC 네트워크의 경우10.128.0.0/9
입니다.ALLOCATION_STRATEGY
: 이 내부 범위의 CIDR 블록에 사용할 할당 전략입니다.옵션은
RANDOM
,FIRST_AVAILABLE
,RANDOM_FIRST_N_AVAILABLE
,FIRST_SMALLEST_FITTING
입니다. 기본값은RANDOM
입니다.FIRST_N_LOOKUP_SIZE
:RANDOM_FIRST_N_AVAILABLE
할당 전략의 경우 무작위로 하나를 결정하기 전에 찾을 가용 CIDR 블록 수입니다.RANDOM_FIRST_N_AVAILABLE
할당 전략을 선택하는 경우에만 이 플래그를 포함합니다.
자동으로 할당된 CIDR 블록으로 IPv4 내부 범위를 예약할 때 IP 주소 범위를 제외하려면(프리뷰) 다음 명령어를 사용합니다.
gcloud alpha 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" \ --exclude-cidr-ranges=EXCLUDED_RANGES
EXCLUDED_RANGES
를 제외할 IPv4 CIDR 블록 1개 이상의 쉼표로 구분된 목록으로 바꿉니다. Google Cloud 가 제외된 블록과 중복되지 않는 내부 범위에 IP 주소 블록을 할당합니다. 내부 범위를 만든 후에는 목록을 업데이트할 수 없습니다.중복되는 IPv4 내부 범위를 예약하려면 다음 명령어를 사용합니다.
gcloud network-connectivity internal-ranges create RANGE_NAME \ --ip-cidr-range=CIDR_RANGE \ --network=NETWORK_NAME \ --description="DESCRIPTION" \ --peering=PEERING_TYPE \ --usage=USAGE_TYPE \ --overlaps=OVERLAPS
OVERLAPS
를 허용하려는 중복 유형으로 바꿉니다. 옵션은OVERLAP_EXISTING_SUBNET_RANGE
및OVERLAP_ROUTE_RANGE
입니다. 쉼표로 구분된 목록으로 두 값 모두 포함할 수 있습니다.변경 불가능한 내부 범위를 예약하려면 다음 명령어를 사용합니다.
gcloud network-connectivity internal-ranges create RANGE_NAME \ --ip-cidr-range=CIDR_RANGE \ --network=NETWORK_NAME \ --description="DESCRIPTION" \ --peering=PEERING_TYPE \ --usage=USAGE_TYPE \ --immutable
API
특정 IPv4 또는 IPv6 CIDR 블록에 대한 내부 범위를 예약하려면
projects.locations.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
: 내부 범위에 할당할 IPv4, IPv6 또는 IPv4 매핑 IPv6 CIDR 블록입니다.- IPv6 블록을 지정하는 경우 다음을 실행해야 합니다.
peering
유형을FOR_SELF
로 설정합니다.usage
유형을EXTERNAL_TO_VPC
로 설정합니다.
- IPv6 블록을 지정하는 경우 다음을 실행해야 합니다.
NETWORK_NAME
: 내부 범위를 만들 네트워크의 이름입니다.DESCRIPTION
: 새 내부 범위에 대한 선택적 설명입니다.PEERING_TYPE
: 내부 범위의 피어링 유형입니다.옵션은
FOR_SELF
,FOR_PEER
,NOT_SHARED
입니다. 기본값은FOR_SELF
입니다.USAGE_TYPE
: 내부 범위의 사용 유형입니다.옵션은
FOR_VPC
,EXTERNAL_TO_VPC
,FOR_MIGRATION
입니다. 기본값은FOR_VPC
입니다.FOR_MIGRATION
옵션을 사용하는 경우 소스 및 대상 서브넷도 지정해야 합니다. 예를 보려면 서브넷 마이그레이션을 위해 IPv4 내부 범위 예약을 참조하세요.
자동으로 할당된 CIDR 블록으로 IPv4 내부 범위를 예약하려면 다음 요청을 실행합니다.
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", "description": "DESCRIPTION", "peering": "PEERING_TYPE", "usage": "USAGE_TYPE", "allocationOptions": { "allocationStrategy": "ALLOCATION_STRATEGY", ["firstAvailableRangesLookupSize": FIRST_N_LOOKUP_SIZE] } }
다음을 바꿉니다.
PREFIX_LENGTH
: 범위의 IP 주소 블록의 CIDR 프리픽스 길이입니다.TARGET_CIDR_RANGE
: IPv4 주소 블록을 할당할 대상 CIDR 블록입니다.JSON 배열로 여러 CIDR 범위를 지정할 수 있습니다. 기본값은 커스텀 모드 VPC 네트워크의 경우
10.0.0.0/8
이고 자동 모드 VPC 네트워크의 경우10.128.0.0/9
입니다.ALLOCATION_STRATEGY
: 이 내부 범위의 CIDR 블록에 사용할 할당 전략입니다.옵션은
RANDOM
,FIRST_AVAILABLE
,RANDOM_FIRST_N_AVAILABLE
,FIRST_SMALLEST_FITTING
입니다. 기본값은RANDOM
입니다.FIRST_N_LOOKUP_SIZE
:RANDOM_FIRST_N_AVAILABLE
할당 전략의 경우 무작위로 하나를 결정하기 전에 찾을 가용 CIDR 블록 수입니다.RANDOM_FIRST_N_AVAILABLE
할당 전략을 선택하는 경우에만 이 필드를 포함합니다.
자동으로 할당된 CIDR 블록으로 IPv4 내부 범위를 예약할 때 IP 주소 범위를 제외하려면(프리뷰) 다음 요청을 실행합니다.
POST https://networkconnectivity.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/global/internalRanges?internalRangeId=RANGE_NAME { "prefixLength": PREFIX_LENGTH, "targetCidrRange": "TARGET_CIDR_RANGE", "network": "NETWORK_NAME", "description": "DESCRIPTION", "peering": "PEERING_TYPE", "usage": "USAGE_TYPE", "excludeCidrRanges": ["EXCLUDED_RANGE_1","EXCLUDED_RANGE_2"] }
EXCLUDED_RANGE_1
및EXCLUDED_RANGE_2
를 제외할 IPv4 CIDR 블록 1개 이상으로 바꿉니다. Google Cloud 가 제외된 블록과 중복되지 않는 내부 범위에 IP 주소 블록을 할당합니다. 내부 범위를 만든 후에는 목록을 업데이트할 수 없습니다.중복되는 IPv4 내부 범위를 예약하려면 다음 요청을 수행합니다.
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", "overlaps": ["OVERLAPS"] }
OVERLAPS
를 허용하려는 중복 유형으로 바꿉니다. 옵션은OVERLAP_EXISTING_SUBNET_RANGE
및OVERLAP_ROUTE_RANGE
입니다. JSON 배열로 두 값을 모두 포함할 수 있습니다.변경 불가능한 내부 범위를 예약하려면 다음 요청을 실행합니다.
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", "immutable": true }
서브넷 마이그레이션을 위해 IPv4 내부 범위 예약
내부 범위를 사용하여 CIDR 범위를 한 서브넷에서 다른 서브넷으로 마이그레이션할 수 있습니다. 자세한 내용은 IPv4 서브넷 범위 마이그레이션을 참조하세요.
gcloud
gcloud network-connectivity internal-ranges create
명령어를 사용합니다.
gcloud network-connectivity internal-ranges create RANGE_NAME \ --ip-cidr-range=CIDR_RANGE \ --network=NETWORK_NAME \ --peering=FOR_SELF \ --usage=FOR_MIGRATION \ --migration-source=SOURCE_SUBNET \ --migration-target=TARGET_SUBNET
다음을 바꿉니다.
RANGE_NAME
: 만들 내부 범위의 이름입니다.CIDR_RANGE
: 마이그레이션하려는 서브넷의 IPv4 CIDR 블록입니다.NETWORK_NAME
: 내부 범위를 만들 네트워크의 이름입니다.SOURCE_SUBNET
: 소스 서브넷의 URI입니다.TARGET_SUBNET
: 대상 서브넷의 URI입니다.
API
projects.locations.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": "FOR_SELF", "usage": "FOR_MIGRATION", "migration": { "source": "SOURCE_SUBNET", "target": "TARGET_SUBNET" } }
다음을 바꿉니다.
PROJECT_ID
: 내부 범위의 상위 프로젝트 ID입니다.RANGE_NAME
: 새 내부 범위의 이름입니다.CIDR_RANGE
: 마이그레이션하려는 서브넷의 IPv4 CIDR 블록입니다.NETWORK_NAME
: 내부 범위를 만들 네트워크의 이름입니다.SOURCE_SUBNET
: 소스 서브넷의 URI입니다.TARGET_SUBNET
: 대상 서브넷의 URI입니다.
IPv4 내부 범위가 있는 서브네트워크 만들기
IPv4 전용 또는 이중 스택 서브넷을 만들고 내부 범위를 사용하여 서브넷의 기본 내부 IPv4 주소 범위를 지정할 수 있습니다. 서브넷은 전체 내부 범위와 연결하거나 범위의 일부에만 연결할 수도 있습니다. 서브넷의 보조 범위를 내부 범위와 연결할 수도 있습니다.
콘솔
새 서브넷을 만들 네트워크에서 IPv4 내부 범위를 예약합니다. 이 내부 범위의 사용 유형을
For VPC
로 설정하고 피어링 유형을For self
로 설정합니다.Google Cloud 콘솔에서 VPC 네트워크 페이지로 이동합니다.
VPC 네트워크 이름을 클릭하여 VPC 네트워크 세부정보 페이지를 표시합니다.
서브넷 추가를 클릭합니다. 대화상자가 표시되면 다음을 수행합니다.
- 이름을 입력합니다.
- 리전을 선택하세요.
- 내부 범위와 연결 체크박스를 선택합니다.
- 예약된 내부 범위에서 선택합니다.
- 선택사항: 서브넷을 내부 범위의 일부와 연결하려면 IPv4 범위를 입력합니다.
- 추가를 클릭합니다.
gcloud
- 새 서브넷을 만들 네트워크에서 IPv4 내부 범위를 예약합니다. 이 내부 범위의 사용 유형을
FOR_VPC
로 설정하고 피어링 유형을FOR_SELF
로 설정합니다. 다음 중 하나를 수행합니다.
전체 내부 범위와 연결된 서브넷을 만들려면
gcloud compute networks subnets create
명령어를 사용합니다.gcloud 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
: 서브넷을 만들 리전입니다.
내부 범위의 일부와 연결된 서브넷을 만들려면 다음 명령어를 사용합니다.
gcloud 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
IP_RANGE
를 내부 범위의 하위 집합인 IPv4 CIDR 범위로 바꿉니다.
예를 들어 다음 명령어는 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 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
- 새 서브넷을 만들 네트워크에서 IPv4 내부 범위를 예약합니다. 이 내부 범위의 사용 유형을
FOR_VPC
로 설정하고 피어링 유형을FOR_SELF
로 설정합니다. 다음 중 하나를 수행합니다.
전체 내부 범위와 연결된 서브넷을 만들려면
subnetworks.insert
메서드에POST
요청을 실행합니다.POST https://compute.googleapis.com/compute/v1/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
: 서브넷을 만들 네트워크의 이름입니다.
내부 범위의 일부와 연결된 서브넷을 만들려면 다음 요청을 실행합니다.
POST https://compute.googleapis.com/compute/v1/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" }
IP_RANGE
를 내부 범위의 하위 집합인 IPv4 CIDR 범위로 바꿉니다.
예를 들어 다음 요청은 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/v1/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" }
IPv4 내부 범위로 GKE 클러스터 만들기
IPv4 내부 범위를 사용하여 Google Kubernetes Engine(GKE) VPC 기반 클러스터의 IP 주소를 할당할 수 있습니다.
gcloud
gcloud network-connectivity internal-ranges create
명령어를 사용하여 다음 IPv4 내부 범위를 만듭니다.- GKE nodes의 경우:
gcloud network-connectivity internal-ranges create gke-nodes-1 \ --prefix-length=NODE_PREFIX_LENGTH \ --network=NETWORK
- GKE 포드:
gcloud network-connectivity internal-ranges create gke-pods-1 \ --prefix-length=POD_PREFIX_LENGTH \ --network=NETWORK
- GKE 서비스:
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
: 네트워크의 이름
gcloud compute networks subnets create
명령어를 사용하여 이전 단계에서 만든 내부 범위로 서브넷을 만듭니다.gcloud 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"
다음을 바꿉니다.
REGION
: 서브넷의 리전입니다.PROJECT_ID
: 프로젝트 ID입니다.
gcloud container 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
ZONE
을 클러스터의 영역으로 바꿉니다.
API
projects.locations.internalRanges.create
메서드에POST
요청을 전송하여 다음 내부 범위를 만듭니다.- GKE nodes의 경우:
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" }
- GKE 포드:
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" }
- GKE 서비스:
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 서비스와 연결된 내부 범위의 프리픽스 길이입니다.
subnetworks.insert
메서드에POST
요청을 전송하여 이전 단계에서 만든 내부 범위로 서브넷을 만듭니다.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks { "name": "gke-subnet-1", "network": "https://compute.googleapis.com/compute/v1/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
: 서브넷의 네트워크입니다.
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 요청을 전송합니다.
콘솔
Google Cloud 콘솔에서 내부 범위 페이지로 이동합니다.
gcloud
현재 프로젝트의 모든 내부 범위를 보려면
gcloud network-connectivity 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
프로젝트의 모든 내부 범위를 보려면
projects.locations.internalRanges.list
메서드에GET
요청을 실행합니다.GET https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges
PROJECT_ID
를 내부 범위를 표시할 프로젝트의 ID로 바꿉니다.VPC 네트워크의 모든 내부 범위를 보려면
projects.locations.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 네트워크의 이름으로 바꿉니다.
내부 범위 설명
내부 범위를 설명하여 내부 범위와 연결된 모든 서브넷을 비롯하여 선택한 범위에 관한 세부정보를 볼 수 있습니다.
콘솔
Google Cloud 콘솔에서 내부 범위 페이지로 이동합니다.
설명하려는 내부 범위의 이름을 클릭합니다.
gcloud
gcloud network-connectivity internal-ranges describe
명령어를 사용합니다.
gcloud network-connectivity internal-ranges describe RANGE_NAME
RANGE_NAME
을 설명할 내부 범위의 이름으로 바꿉니다.
API
projects.locations.internalRanges.get
메서드에 대해 GET
요청을 실행합니다.
GET https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges/RANGE_NAME
다음을 바꿉니다.
PROJECT_ID
: 내부 범위의 상위 프로젝트 ID입니다.RANGE_NAME
: 설명할 내부 범위의 이름입니다.
내부 범위 업데이트
내부 범위를 변경 불가능한 경우 설명만 업데이트할 수 있습니다. 내부 범위를 변경할 수 있는 경우 범위의 CIDR 블록을 확장하고 중복 속성과 설명을 업데이트할 수 있습니다.
내부 범위를 확장하려면 범위의 CIDR 블록을 업데이트하거나 프리픽스 길이를 줄이면 됩니다. 업데이트된 CIDR 블록은 이전 블록을 포함해야 합니다.
할당된 범위를 좁히거나 다른 요소를 수정하려면 내부 범위를 삭제하고 새 범위를 만듭니다.
IPv4 내부 범위의 중복 속성을 업데이트하려면 API 요청을 전송하거나 Google Cloud CLI를 사용합니다.
콘솔
Google Cloud 콘솔에서 내부 범위 페이지로 이동합니다.
업데이트하려는 내부 범위의 이름을 클릭합니다.
범위의 CIDR 블록을 확장하려면 범위 확장을 클릭한 후 다음 중 하나를 실행합니다.
- IPv4 내부 범위의 경우 프리픽스 길이를 클릭한 후 다음 단계를 따르세요.
- 프리픽스 길이 필드에서 이전 프리픽스보다 짧은 프리픽스 길이를 선택합니다.
- 펼치기를 클릭합니다.
- IPv4 또는 IPv6 내부 범위의 경우 IP 범위를 클릭한 후 다음을 실행합니다.
- IPv4, IPv6 또는 IPv4 매핑 IPv6 CIDR 블록을 입력합니다. 새 블록은 이전 블록을 포함해야 합니다.
- 펼치기를 클릭합니다.
- IPv4 내부 범위의 경우 프리픽스 길이를 클릭한 후 다음 단계를 따르세요.
범위의 설명을 업데이트하려면 다음 단계를 따르세요.
- 설명 수정을 클릭합니다.
- 새로운 설명을 입력합니다.
- 저장을 클릭합니다.
gcloud
내부 범위를 업데이트하려면
gcloud network-connectivity internal-ranges update
명령어를 사용합니다. 수정하지 않을 속성의 플래그는 생략합니다.gcloud network-connectivity internal-ranges update RANGE_NAME \ --ip-cidr-range=CIDR_RANGE \ --overlaps=OVERLAPS \ --description=DESCRIPTION
다음을 바꿉니다.
RANGE_NAME
: 내부 범위의 이름입니다.CIDR_RANGE
: 이전 블록을 포함해야 하는 확장된 IPv4, IPv6, IPv4 매핑 IPv6 CIDR 블록입니다.OVERLAPS
: 허용되는 중복 유형입니다(IPv4 범위만 해당).옵션은
OVERLAP_EXISTING_SUBNET_RANGE
및OVERLAP_ROUTE_RANGE
입니다. 쉼표로 구분된 목록으로 두 값 모두 포함할 수 있습니다. 중복을 사용 중지하려면 플래그를 포함하되 값(--overlaps=
)을 지정하지 않습니다.DESCRIPTION
: 업데이트된 설명입니다.
프리픽스 길이를 줄여 내부 범위를 확장하려면 다음 명령어를 사용합니다.
gcloud network-connectivity internal-ranges update RANGE_NAME \ --prefix-length=PREFIX_LENGTH
PREFIX_LENGTH
를 업데이트된 프리픽스 길이로 바꿉니다. 이 길이는 이전 프리픽스 길이보다 작아야 합니다.
API
CIDR 범위를 업데이트하여 내부 범위를 확장하려면
projects.locations.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
: 이전 블록을 포함해야 하는 확장된 IPv4, IPv6 또는 IPv4 매핑 IPv6 CIDR 블록입니다.
프리픽스 길이를 줄여 내부 범위를 확장하려면 다음 요청을 실행합니다.
PATCH https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges/RANGE_NAME?updateMask=prefixLength { "prefixLength": PREFIX_LENGTH }
PREFIX_LENGTH
를 업데이트된 프리픽스 길이로 바꿉니다. 이 길이는 이전 프리픽스 길이보다 작아야 합니다.IPv4 내부 범위의 중복 속성을 업데이트하려면 다음 요청을 실행합니다.
PATCH https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges/RANGE_NAME?updateMask=overlaps { "overlaps": ["OVERLAPS"] }
OVERLAPS
를 허용하려는 중복 유형으로 바꿉니다. 옵션은OVERLAP_EXISTING_SUBNET_RANGE
및OVERLAP_ROUTE_RANGE
입니다. JSON 배열로 두 값을 모두 포함할 수 있습니다. 중복을 사용 중지하려면 필드를 포함하되 값("overlaps": []
)을 지정하지 않습니다.내부 범위의 설명을 업데이트하려면 다음 요청을 실행합니다.
PATCH https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges/RANGE_NAME?updateMask=description { "description": "DESCRIPTION" }
DESCRIPTION
을 업데이트된 설명으로 바꿉니다.
내부 범위 삭제
서브넷과 같은 Google Cloud리소스와 연결되어 있지 않은 경우 내부 범위를 삭제할 수 있습니다. Google Cloud 리소스와 연결된 내부 범위를 삭제하려면 먼저 연결된 리소스를 삭제합니다.
콘솔
Google Cloud 콘솔에서 내부 범위 페이지로 이동합니다.
삭제하려는 내부 범위의 이름을 클릭합니다.
삭제를 클릭합니다.
삭제를 클릭하여 확인합니다.
gcloud
gcloud network-connectivity internal-ranges delete
명령어를 사용합니다.
gcloud network-connectivity internal-ranges delete RANGE_TO_DELETE
RANGE_TO_DELETE
를 삭제할 내부 범위의 이름으로 바꿉니다.
API
projects.locations.internalRanges.delete
메서드에 DELETE
요청을 실행합니다.
DELETE https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges/RANGE_NAME
다음을 바꿉니다.
PROJECT_ID
: 내부 범위의 상위 프로젝트 ID입니다.RANGE_NAME
: 내부 범위의 이름입니다.