Questa pagina spiega come eseguire il provisioning di spazio di archiviazione SSD locale su Google Kubernetes Engine (GKE) e come configurare carichi di lavoro per consumare dati da SSD locali supportati. archiviazione temporanea collegata ai nodi nel tuo cluster.
Per saperne di più sul supporto degli SSD locali su GKE, consulta Informazioni sullo spazio di archiviazione SSD locale.
Prima di iniziare
Prima di iniziare, assicurati di aver eseguito le seguenti attività:
- Attiva l'API Google Kubernetes Engine. Abilita l'API Google Kubernetes Engine .
- Se vuoi utilizzare Google Cloud CLI per questa attività,
install e poi
initialize
con gcloud CLI. Se hai già installato gcloud CLI, scarica la versione più recente
eseguendo
gcloud components update
.
Crea un cluster o un pool di nodi con archiviazione temporanea supportata da SSD locali
Utilizza Google Cloud CLI per creare un cluster o un pool di nodi con supporto di SSD locali archiviazione temporanea.
Utilizza l'opzione --ephemeral-storage-local-ssd
per collegare gli account locali
archiviazione temporanea
supportate da volumi SSD locali. Questo spazio di archiviazione è legato al ciclo di vita dei pod.
Quando i tuoi pod richiedono l'archiviazione temporanea,
ne pianifica l'esecuzione su nodi con volumi SSD locali configurati come temporanei
archiviazione. Se vuoi un controllo più specializzato o granulare
sulle tue unità SSD locali,
consigliamo di utilizzare archiviazione a blocchi non elaborati supportati su SSD locali
.
Se disponi della scalabilità automatica del cluster
abilitata, GKE scala automaticamente i nodi quando il cluster ne ha bisogno
di archiviazione temporanea. I pod possono accedere ai dati sui volumi SSD locali tramite
il volume di emptyDir
.
Il comando gcloud CLI che esegui per creare il cluster o il pool di nodi dipende dalla generazione di serie di macchine del tipo di macchina selezionato. Ad esempio, tipi di macchina N1 e N2 appartengono rispettivamente a una serie di macchine di prima e seconda generazione, mentre C3 che appartengono a serie di macchine di terza generazione.
Crea un cluster con SSD locale
1a o 2a generazione
Se utilizzi un tipo di macchina di una serie di macchine
di prima o seconda generazione,
crea il tuo cluster specificando --ephemeral-storage-local-ssd count=NUMBER_OF_DISKS
. Questa opzione esegue il provisioning del numero specificato di volumi SSD locali
su ciascun nodo da usare per l'archiviazione temporanea dei kubelet.
Queste impostazioni si applicano solo al pool di nodi predefinito. Se il nodo successivo i pool richiedono un SSD locale, specificalo durante la creazione del pool di nodi.
Per creare un cluster in esecuzione su GKE versione 1.25.3-gke.1800 in seguito in cui il pool predefinito utilizza volumi SSD locali, esegui questo :
gcloud container clusters create CLUSTER_NAME \
--ephemeral-storage-local-ssd count=NUMBER_OF_DISKS \
--machine-type=MACHINE_TYPE \
--release-channel CHANNEL_NAME
Sostituisci quanto segue:
CLUSTER_NAME
: il nome del cluster.NUMBER_OF_DISKS
: il numero di volumi SSD locali da su ciascun nodo. Questi volumi sono combinati in un unico volume logico durante la configurazione del nodo. Il numero massimo di volumi varia in base al tipo di macchina e alla regione. Tieni presente che parte della capacità dei dischi SSD locali è riservata all'uso del sistema.MACHINE_TYPE
: tipo di macchina da utilizzare. Questo campo è obbligatorio, poiché Impossibile utilizzare l'SSD locale con il tipo predefinitoe2-medium
.CHANNEL_NAME
: un canale di rilascio che include versioni GKE successive alla 1.25.3-gke.1800. Se preferisci non utilizzare un canale di rilascio, puoi anche usa il flag--cluster-version
anziché--release-channel
, specificando una versione valida successiva alla 1.25.3-gke.1800. Per determinare versioni valide, usa il comandogcloud container get-server-config
.
3a generazione
Se utilizzi un tipo di macchina di una serie di macchine di terza generazione, non devi specificare le opzioni SSD locali quando crei un cluster. La numero di dischi a ogni nodo dipende dal tipo di macchina.
Per creare un cluster, esegui questo comando:
gcloud container clusters create CLUSTER_NAME \
--machine-type=MACHINE_TYPE \
--cluster-version CLUSTER_VERSION
Sostituisci quanto segue:
CLUSTER_NAME
: il nome del cluster.MACHINE_TYPE
: il tipo di macchina da utilizzare da una di terze parti.CLUSTER_VERSION
: una versione del cluster GKE che supporta SSD locale su tipi di macchine da un di terze parti.
Crea un pool di nodi con SSD locale
1a o 2a generazione
Per creare un pool di nodi in esecuzione su GKE versione 1.25.3-gke.1800, che utilizza volumi SSD locali, esegui questo :
gcloud container node-pools create POOL_NAME \
--cluster=CLUSTER_NAME \
--ephemeral-storage-local-ssd count=NUMBER_OF_DISKS \
--machine-type=MACHINE_TYPE
Sostituisci quanto segue:
POOL_NAME
: il nome del nuovo pool di nodi.CLUSTER_NAME
: il nome del cluster.NUMBER_OF_DISKS
: il numero di volumi SSD locali da su ciascun nodo. Questi volumi sono combinati in un unico volume logico durante la configurazione del nodo. Il numero massimo di volumi varia in base al tipo di macchina e alla regione. Tieni presente che una parte della capacità degli SSD locali è riservata all'uso del sistema.MACHINE_TYPE
: tipo di macchina da utilizzare. Questo campo è obbligatorio perché l'SSD locale non può essere utilizzato con il tipo predefinitoe2-medium
.
3a generazione
Se utilizzi un tipo di macchina di una serie di macchine di terza generazione, non è necessario specificare opzioni SSD locali la creazione di un pool di nodi. Il numero di volumi collegati a ciascun nodo dipende il tipo di macchina.
Per creare un pool di nodi, esegui questo comando:
gcloud container node-pools create POOL_NAME \
--cluster=CLUSTER_NAME \
--machine-type=MACHINE_TYPE \
--node-version NODE_VERSION
Sostituisci quanto segue:
POOL_NAME
: il nome del nuovo pool di nodi.CLUSTER_NAME
: il nome del cluster.MACHINE_TYPE
: il tipo di macchina da utilizzare da una di terze parti.NODE_VERSION
: una versione del pool di nodi GKE che supporta SSD locale su tipi di macchine da un di terze parti.
I nodi nel pool di nodi vengono creati con un'istruzione cloud.google.com/gke-ephemeral-storage-local-ssd=true
dell'etichetta. Puoi verificare le etichette eseguendo questo comando:
kubectl describe node NODE_NAME
Usa l'archiviazione temporanea basata su SSD locali con i cluster Autopilot
Puoi usare l'SSD locale nelle seguenti classi di calcolo Autopilot:
Performance
Accelerator
Per il corso Performance
, segui le istruzioni per utilizzare gli SSD locali in
Classe di rendimento
di archiviazione dei pod.
Per la classe di computing Accelerator
, puoi usare l'SSD locale per l'archiviazione temporanea
se utilizzi GPU NVIDIA L4 e stai eseguendo la versione patch di GKE
1.28.6-gke.1369000 e successivi o 1.29.1-gke.1575000 e successivi. NVIDIA H100 (80GB)
Le GPU e le GPU NVIDIA A100 (80 GB) usano sempre SSD locali per l'archiviazione temporanea,
e non puoi specificare il seguente selettore di nodi per queste GPU.
Per utilizzare l'SSD locale per l'archiviazione temporanea, aggiungi
cloud.google.com/gke-ephemeral-storage-local-ssd: "true"
nodeSelettore al tuo
del carico di lavoro. La specifica del pod dovrebbe essere simile alla seguente
esempio:
apiVersion: v1
kind: Pod
metadata:
name: l4-localssd-pod
spec:
containers:
- name: my-gpu-container
image: nvidia/cuda:11.0.3-runtime-ubuntu20.04
command: ["/bin/bash", "-c", "--"]
args: ["while true; do sleep 600; done;"]
resources:
requests:
cpu: 16
memory: 64Gi
ephemeral-storage: 800Gi
limits:
cpu: 16
memory: 64Gi
ephemeral-storage: 800Gi
nvidia.com/gpu: 8
nodeSelector:
cloud.google.com/gke-accelerator: nvidia-l4
cloud.google.com/compute-class: Accelerator
cloud.google.com/gke-ephemeral-storage-local-ssd: "true"
Utilizzo del parametro API legacy
L'opzione --local-ssd-count
è un parametro API legacy che supporta l'SSD locale SCSI.
La serie di macchine di terza generazione di Compute Engine non supporta SCSI
e supporta solo NVMe. Dovresti utilizzare questa opzione solo con i cluster Windows Server.
Se attualmente utilizzi il parametro API legacy su cluster Linux,
ti consigliamo di usare invece l'opzione --ephemeral-storage-local-ssd
.
SSD locale su cluster Windows Server
Quando usi un SSD locale con cluster che eseguono pool di nodi Windows Server, devi accedere al nodo e formattare il volume prima di utilizzarlo. Nella nell'esempio seguente, il volume SSD locale è formattato con il file system NTFS. Puoi anche creare directory sotto il volume. In questo esempio, le directory si trovano nel disco D.
PS C:\> Get-Disk | Where partitionstyle -eq 'raw' | Initialize-Disk -PartitionStyle MBR -PassThru | New-Partition -AssignDriveLetter -UseMaximumSize | Format-Volume -FileSystem ntfs -Confirm:$false
PS C:\> mkdir D:\test-ssd
Accedi a volumi SSD locali
L'esempio seguente mostra come accedere allo spazio di archiviazione temporaneo supportato da SSD locali.
Archiviazione temporanea come volume emptyDir
Un pool di nodi GKE può essere configurato per l'utilizzo di SSD locale
archiviazione temporanea, inclusi emptyDir
volumi.
Il seguente manifest dei pod utilizza un emptyDir
e un nodo
selettore di cloud.google.com/gke-ephemeral-storage-local-ssd
. Puoi applicare un
una tecnica simile per i manifest di deployment o i manifest StatefulSet.
Quando scegli la richiesta di risorse di archiviazione temporanea, tieni conto Capacità SSD locale riservata per l'uso da parte del sistema.
apiVersion: v1
kind: Pod
metadata:
name: POD_NAME
spec:
containers:
- name: CONTAINER_NAME
image: "registry.k8s.io/pause"
resources:
requests:
ephemeral-storage: "200Gi"
volumeMounts:
- mountPath: /cache
name: scratch-volume
nodeSelector:
cloud.google.com/gke-ephemeral-storage-local-ssd: "true"
volumes:
- name: scratch-volume
emptyDir: {}
Risoluzione dei problemi
Per istruzioni sulla risoluzione dei problemi, consulta Risoluzione dei problemi di archiviazione in GKE.