Questa pagina mostra come personalizzare un disco di avvio del nodo Cluster e pool di nodi di Google Kubernetes Engine (GKE).
Panoramica
Quando crei un cluster GKE o un pool di nodi, puoi scegliere il tipo di Persistent Disk su cui si trova il file system dei nodi Kubernetes installati per ciascun nodo. Per impostazione predefinita, GKE usa Dischi permanenti nella versione 1.24 o successive. Puoi anche specificare altre Tipi di Persistent Disk, come standard o SSD. Per ulteriori informazioni, vedi Opzioni di archiviazione.
I dischi permanenti bilanciati e SSD hanno quote di disco diverse rispetto alle quote standard per i Persistent Disk. Se passi dalla modalità standard a bilanciati, potresti dover richiedere aumenti di quota. Per Per ulteriori informazioni, consulta Quote delle risorse.
Vantaggi dell'utilizzo di un disco di avvio SSD
L'utilizzo di un disco permanente SSD come disco di avvio per i nodi offre vantaggi in termini di rendimento:
- I nodi hanno tempi di avvio più rapidi.
- I file e i file binari forniti dai container sono disponibili per il nodo più velocemente. Ciò può aumentare le prestazioni per i carichi di lavoro ad alta intensità di I/O, come applicazioni per la pubblicazione sul web che ospitano file statici o a breve esecuzione, Job batch ad alta intensità di I/O.
- File archiviati sul supporto locale del nodo (esposti tramite
hostPath
oemptyDir
volumi) possono migliorare le prestazioni di I/O.
Specifica di un tipo di disco di avvio del nodo
Puoi specificare il tipo di disco di avvio quando crei un cluster o un pool di nodi.
gcloud
Per creare un cluster con un disco di avvio personalizzato, esegui questo comando.
[DISK-TYPE]
può essere uno dei seguenti valori:
pd-balanced
(valore predefinito nella versione 1.24 o successive)pd-standard
(valore predefinito nella versione 1.23 o precedenti)pd-ssd
hyperdisk-balanced
Per ulteriori informazioni su questa scelta, consulta Tipi di dischi permanenti.
gcloud container clusters create [CLUSTER_NAME] --disk-type [DISK_TYPE]
Per creare un pool di nodi in un cluster esistente:
gcloud container node-pools create [POOL_NAME] --disk-type [DISK_TYPE]
Ad esempio, il comando seguente crea un cluster example-cluster
,
con il tipo di disco permanente SSD, pd-ssd
:
gcloud container clusters create example-cluster --disk-type pd-ssd
Console
Per selezionare il disco di avvio durante la creazione del cluster con la console Google Cloud:
Vai alla pagina Google Kubernetes Engine nella console Google Cloud.
Fai clic su add_box Crea.
Configura il cluster in base alle tue esigenze.
Dal menu di navigazione, espandi default-pool e fai clic su Nodi.
Nell'elenco a discesa Tipo di disco di avvio, seleziona un tipo di Persistent Disk.
Fai clic su Crea.
Per creare un pool di nodi con un disco di avvio personalizzato per un cluster esistente:
Vai alla pagina Google Kubernetes Engine nella console Google Cloud.
Nell'elenco dei cluster, fai clic sul nome del cluster da modificare.
Fai clic su add_box Aggiungi pool di nodi.
Configura il pool di nodi in base alle tue esigenze.
Nel menu di navigazione, fai clic su Nodi.
Nell'elenco a discesa Tipo di disco di avvio, seleziona un tipo di Persistent Disk.
Fai clic su Crea.
Protezione dei dischi di avvio dei nodi
Un disco di avvio del nodo archivia l'immagine del container, alcuni log di processo di sistema,pod log e il livello container scrivibile per impostazione predefinita.
Se i tuoi carichi di lavoro utilizzano volumi configMap
, emptyDir
o hostPath
, i pod
sui dischi di avvio del nodo. Puoi configurare emptyDir
per
supportato da tmpfs per evitare questo problema. Per scoprire come fare, consulta
Documentazione relativa a Kubernetes.
I volumi secret
, downwardAPI
e projected
sono supportati da tmpfs
i pod che li utilizzano non scrivono dati nel disco di avvio del nodo.
Per impostazione predefinita, Google Cloud cripta i contenuti at-rest dei clienti inclusi i dischi di avvio del nodo, e GKE gestisce la crittografia senza che tu debba fare niente.
Tuttavia, quando utilizzi volumi che scrivono sul disco di avvio del nodo, è consigliabile controllare ulteriormente la protezione dei dati dei carichi di lavoro in GKE. Tu puoi farlo impedendo ai pod di scrivere sui dischi di avvio del nodo oppure utilizzando CMEK (Customer Managed Encryption Key) per i dischi di avvio dei nodi.
Impedisci ai pod di scrivere sui dischi di avvio
Per impedire ai pod di scrivere dati direttamente nel disco di avvio del nodo, utilizza una delle seguenti metodi.
Policy Controller
Policy Controller è una funzionalità di GKE Enterprise che consente di dichiarare e di applicare criteri personalizzati su larga scala tra i tuoi cluster GKE flotte.
- Installa Policy Controller.
- Definisci un vincolo che limiti i seguenti tipi di volume utilizzando il metodo
Modello di vincolo
k8sPspVolumeTypes
:configMap
emptyDir
(se non supportato da tmpfs)hostPath
Per istruzioni, vedi Utilizzare la libreria dei modelli di vincolo nella documentazione di Policy Controller.
Il vincolo di esempio seguente limita questi tipi di volume in tutti i pod della cluster:
apiVersion: constraints.gatekeeper.sh/v1beta1
kind: K8sPSPVolumeTypes
metadata:
name: deny-boot-disk-writes
spec:
match:
kinds:
- apiGroups: [""]
kinds: ["Pod"]
parameters:
volumes:
- configMap
- emptyDir
- hostPath
Controller di ammissione PodSecurity
Il controller di ammissione PodSecurity integrato ti consente di diversi livelli degli standard di sicurezza dei pod in spazi dei nomi specifici in un cluster Kubernetes. Il criterio Con restrizioni impedisce ai pod di scrivere sul disco di avvio del nodo.
Per utilizzare il controller di ammissione PodSecurity, consulta Applica criteri di sicurezza predefiniti a livello di pod utilizzando PodSecurity.
Crittografia gestita dal cliente
Se vuoi controllare e gestire personalmente rotazione della chiave di crittografia, puoi utilizzare Chiavi di crittografia gestite dal cliente (CMEK). Queste chiavi vengono utilizzate per criptare i dati chiavi di crittografia che criptano i tuoi dati. Scopri come utilizzare CMEK per l'avvio dei nodi consulta l'articolo sull'utilizzo dei dischi chiavi di crittografia.
Un limite di CMEK per i dischi di avvio del nodo è che non può essere modificata dopo della creazione del pool di nodi. Ciò significa che:
- Se il pool di nodi è stato creato con la crittografia gestita dal cliente, non puoi a disattivare la crittografia sui dischi di avvio.
- Se il pool di nodi è stato creato senza la crittografia gestita dal cliente, non puoi e poi attivare la crittografia sui dischi di avvio. Tuttavia, puoi creare una nuova pool di nodi con la crittografia gestita dal cliente abilitata ed elimina il pool di nodi precedente.
Limitazioni
Prima di configurare un disco di avvio personalizzato, considera le seguenti limitazioni:
- La serie di macchine C3
e serie di macchine G2
non supportano il tipo di disco di avvio del nodo
pd-standard
.
Passaggi successivi
- Scopri come specificare una piattaforma CPU minima.
- Scopri di più sulla crittografia gestita dal cliente.
- Scopri di più sull'utilizzo delle chiavi di crittografia gestite dal cliente in GKE.