이 문서에서는 Google Distributed Cloud (GDC) 에어갭에서 특정 가상 머신 (VM) 인스턴스의 1등급 네트워킹 성능을 구성하는 방법을 설명합니다. Tier 1 네트워킹 구성의 VM은 고성능 컴퓨팅 (HPC), 머신러닝 (ML), 딥 러닝 (DL)과 같이 노드 간 통신이 많은 대규모 분산 컴퓨팅 워크로드에 특히 유용합니다.
시작하기 전에
gdcloud 명령줄 인터페이스 (CLI) 명령어를 사용하려면 gdcloud CLI를 다운로드, 설치, 구성해야 합니다.
Distributed Cloud의 모든 명령어는 gdcloud 또는 kubectl CLI를 사용하며 운영체제 (OS) 환경이 필요합니다.
kubeconfig 파일 경로 가져오기
관리 API 서버에 대해 명령어를 실행하려면 다음 리소스가 있어야 합니다.
관리 API 서버의 kubeconfig 파일이 없는 경우 로그인 및 생성합니다.
관리 API 서버의 kubeconfig 파일 경로를 사용하여 이 안내의
MANAGEMENT_API_SERVER를 바꿉니다.
권한 및 액세스 요청
이 페이지에 나열된 작업을 수행하려면 프로젝트 VirtualMachine 관리자 역할이 있어야 합니다. 단계를 따라 VM이 있는 프로젝트의 네임스페이스에 프로젝트 VirtualMachine 관리자 (project-vm-admin) 역할이 있는지 확인합니다.
GDC 콘솔 또는 gdcloud CLI를 사용하는 VM 작업의 경우 프로젝트 IAM 관리자에게 프로젝트 VirtualMachine 관리자 역할과 프로젝트 뷰어 (project-viewer) 역할을 모두 할당해 달라고 요청하세요.
제한사항
Tier 1 네트워킹은 vCPU가 4개 이상인 N2, N3, N4, A2, A3 머신 유형에서 지원됩니다.
대역폭 등급
인그레스 및 이그레스 대역폭 제한은 GDC에서 VM 인스턴스가 네트워크 인터페이스(NIC)로부터 전송하거나 수신하도록 허용된 시간 단위당 최대 가능한 데이터 양(예: 초당 기가비트(Gbps))을 나타냅니다. 대역폭에는 VM 인스턴스와 객체 스토리지 간에 전송되는 데이터가 포함됩니다.
GDC에는 다음과 같은 대역폭 제한이 있습니다.
- 기본 대역폭 한도는 10Gbps입니다.
- Tier 1 네트워킹은 컴퓨팅 인스턴스의 최대 이그레스 대역폭 한도를 늘려줍니다. 최대 이그레스 대역폭 한도 범위는 인스턴스의 크기 및 머신 유형에 따라 16Gbps~25Gbps입니다.
- 실제 이그레스 대역폭은 항상 이그레스 대역폭 제한보다 작거나 같습니다.
가능한 최대 이그레스 대역폭을 얻으려면 다음 조건이 모두 해당되어야 합니다.
- 전송 및 수신 컴퓨팅 인스턴스가 동일한 영역에 있어야 합니다.
- 인스턴스 간에 전송되는 패킷은 내부 IP 주소 대상을 사용해야 합니다.
- TCP 흐름 수는 4~128개여야 합니다.
- 전송 인스턴스에는 TCP 세그먼트 오프로드 (TSO)가 사용 설정되어 있어야 하고 수신 인스턴스에는 일반 수신 오프로드 (GRO)가 사용 설정되어 있어야 합니다.
N2 및 N3 VM
| vCPU | 내부 IP | Tier 1 내부 IP |
|---|---|---|
| 2 | 10Gbps | 해당 없음 |
| 4 | 10Gbps | 해당 없음 |
| 8 | 10Gbps | 16Gbps |
| 12 | 10Gbps | 25Gbps |
| 16 | 10Gbps | 25Gbps |
| 32 | 10Gbps | 25Gbps |
| 64 | 10Gbps | 25Gbps |
N4 VM
| vCPU | 내부 IP | Tier 1 내부 IP |
|---|---|---|
| 4 | 10Gbps | 해당 없음 |
| 8 | 10Gbps | 해당 없음 |
| 16 | 10Gbps | 25Gbps |
| 32 | 10Gbps | 25Gbps |
| 48 | 10Gbps | 25Gbps |
| 64 | 10Gbps | 25Gbps |
| 80 | 10Gbps | 25Gbps |
| 160 | 10Gbps | 25Gbps |
A2 VM
| vCPU | 내부 IP | Tier 1 내부 IP |
|---|---|---|
| 12 | 10Gbps | 18 Gbps |
| 24 | 10Gbps | 25Gbps |
A3 VM
| vCPU | 내부 IP | Tier 1 내부 IP |
|---|---|---|
| 28 | 10Gbps | 25Gbps |
| 56 | 10Gbps | 25Gbps |
| 112 | 10Gbps | 25Gbps |
Tier 1 네트워킹으로 VM 구성
Tier 1 네트워킹을 사용하는 인스턴스 및 컨테이너를 만듭니다.
gdcloud
gdcloud compute instances create VM_NAME \
--machine-type=MACHINE_TYPE \
--image=BOOT_DISK_IMAGE_NAME --image-project=vm-system \
--boot-disk-size=BOOT_DISK_SIZE \
--network-performance-tier=tier_1
다음을 바꿉니다.
| 변수 | 정의 |
|---|---|
VM_NAME |
새 VM의 이름입니다. 이름은 영숫자 문자 및 대시만 포함해야 하며 53자를 초과할 수 없습니다. |
MACHINE_TYPE |
새 VM의 사전 정의된 머신 유형입니다. 사용 가능한 머신 유형을 선택합니다.
gdcloud compute machine-types list
|
BOOT_DISK_IMAGE_NAME |
새 VM 부팅 디스크에 사용할 이미지의 이름입니다. |
BOOT_DISK_SIZE |
부팅 디스크의 크기입니다(예: 20GB).이 값은 항상 부팅 디스크 이미지의 minimumDiskSize보다 크거나 같아야 합니다. |
API
kubectl --kubeconfig MANAGEMENT_API_SERVER \
apply -n PROJECT -f - <<EOF
apiVersion: virtualmachine.gdc.goog/v1
kind: VirtualMachineDisk
metadata:
name: VM_BOOT_DISK_NAME
spec:
source:
image:
name: BOOT_DISK_IMAGE_NAME
namespace: vm-system
size: BOOT_DISK_SIZE
---
apiVersion: virtualmachine.gdc.goog/v1
kind: VirtualMachine
metadata:
name: VM_NAME
spec:
compute:
virtualMachineType: MACHINE_TYPE
disks:
- virtualMachineDiskRef:
name: VM_BOOT_DISK_NAME
boot: true
autoDelete: BOOT_DISK_AUTO_DELETE
network:
networkPerformanceTier: Tier_1
EOF
다음을 바꿉니다.
| 변수 | 정의 |
|---|---|
MANAGEMENT_API_SERVER |
관리 API 서버 kubeconfig 파일입니다. |
PROJECT |
VM을 만들 Distributed Cloud 프로젝트입니다. |
VM_BOOT_DISK_NAME |
새 VM 부팅 디스크의 이름입니다. |
BOOT_DISK_IMAGE_NAME |
새 VM 부팅 디스크에 사용할 이미지의 이름입니다. |
BOOT_DISK_SIZE |
부팅 디스크의 크기입니다(예: 20Gi).이 값은 항상 부팅 디스크 이미지의 minimumDiskSize보다 크거나 같아야 합니다. |
VM_NAME |
새 VM의 이름입니다. 이름은 영숫자 문자 및 대시만 포함해야 하며 53자를 초과할 수 없습니다. |
MACHINE_TYPE |
새 VM의 사전 정의된 머신 유형입니다. 사용 가능한 머신 유형을 선택합니다.
kubectl --kubeconfig MANAGEMENT_API_SERVER
get virtualmachineimage.virtualmachine.gdc.goog --namespace PROJECT
|
BOOT_DISK_AUTO_DELETE |
true 또는 false입니다. VM 인스턴스가 삭제될 때 부팅 디스크가 자동으로 삭제되는지 여부를 나타냅니다. |