Configurazione di un disco di avvio personalizzato


Questa pagina mostra come personalizzare un disco di avvio dei nodi nei cluster e nei pool di nodi di Google Kubernetes Engine (GKE).

Panoramica

Quando crei un cluster o un pool di nodi GKE, puoi scegliere il tipo di Persistent Disk su cui è installato il file system dei nodi Kubernetes per ciascun nodo. Per impostazione predefinita, GKE utilizza dischi permanenti bilanciati nella versione 1.24 o successive. Puoi inoltre specificare altri tipi di Persistent Disk, come standard o SSD. Per maggiori informazioni, vedi Opzioni di archiviazione.

Per i dischi permanenti bilanciati e SSD sono previste quote per i dischi diverse da quelle standard per i Persistent Disk. Se passi dai dischi permanenti standard a quelli bilanciati, potresti dover richiedere un aumento della quota. 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 alcuni vantaggi in termini di prestazioni:

  • I nodi hanno tempi di avvio più rapidi.
  • I file binari e i file forniti dai container sono disponibili per il nodo più velocemente. Ciò può aumentare le prestazioni per i carichi di lavoro che richiedono un uso intensivo di I/O, ad esempio le applicazioni di servizio web che ospitano file statici o job batch a breve esecuzione con uso intensivo di I/O.
  • I file archiviati sui supporti locali del nodo (esposti tramite volumi hostPath o emptyDir) 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 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:

  1. Vai alla pagina Google Kubernetes Engine nella console Google Cloud.

    Vai a Google Kubernetes Engine

  2. Fai clic su Crea.

  3. Configura il cluster in base alle tue esigenze.

  4. Dal menu di navigazione, espandi default-pool e fai clic su Nodi.

  5. Nell'elenco a discesa Tipo di disco di avvio, seleziona un tipo di Persistent Disk.

  6. Fai clic su Crea.

Per creare un pool di nodi con un disco di avvio personalizzato per un cluster esistente:

  1. Vai alla pagina Google Kubernetes Engine nella console Google Cloud.

    Vai a Google Kubernetes Engine

  2. Nell'elenco dei cluster, fai clic sul nome del cluster da modificare.

  3. Fai clic su Aggiungi pool di nodi.

  4. Configura il pool di nodi in base alle esigenze.

  5. Nel menu di navigazione, fai clic su Nodi.

  6. Nell'elenco a discesa Tipo di disco di avvio, seleziona un tipo di Persistent Disk.

  7. Fai clic su Crea.

Protezione dei dischi di avvio dei nodi

Un disco di avvio del nodo archivia la tua immagine container, alcuni log dei processi di sistema, i log dei pod e il livello container scrivibile per impostazione predefinita.

Se i carichi di lavoro utilizzano volumi configMap, emptyDir o hostPath, i pod potrebbero scrivere dati aggiuntivi sui dischi di avvio dei nodi. Puoi configurare il backup di emptyDir da tmpfs per interrompere questa operazione. Per scoprire come, consulta la documentazione di Kubernetes. Poiché i volumi secret, downwardAPI e projected sono supportati da tmpfs, i pod che li utilizzano non scrivono dati sul disco di avvio del nodo.

Per impostazione predefinita, Google Cloud cripta i contenuti at-rest dei clienti, inclusi i dischi di avvio dei nodi, e GKE gestisce la crittografia per conto tuo senza che sia necessario alcun intervento da parte tua.

Tuttavia, quando utilizzi volumi che scrivono sul disco di avvio del nodo, puoi controllare ulteriormente il modo in cui i dati dei tuoi carichi di lavoro sono protetti in GKE. Puoi farlo impedendo ai pod di scrivere sui dischi di avvio dei nodi o utilizzando chiavi di crittografia gestite dal cliente (CMEK) per i dischi di avvio dei nodi.

Impedisci ai pod di scrivere sui dischi di avvio

Per impedire ai pod di scrivere dati direttamente sul disco di avvio del nodo, utilizza uno dei seguenti metodi.

Policy Controller

Policy Controller è una funzionalità di GKE Enterprise che ti consente di dichiarare e applicare criteri personalizzati su larga scala nei tuoi cluster GKE nei parchi risorse.

  1. Installa Policy Controller.
  2. Definisci un vincolo che limita i seguenti tipi di volume utilizzando il modello di vincolo di k8sPspVolumeTypes:

Il vincolo di esempio seguente limita questi tipi di volume in tutti i pod nel 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 in Kubernetes consente di applicare diversi livelli degli standard di sicurezza dei pod in spazi dei nomi specifici o nel cluster. Il criterio limitato impedisce ai pod di scrivere sul disco di avvio del nodo.

Per utilizzare il controller di ammissione PodSecurity, consulta Applicare criteri di sicurezza predefiniti a livello di pod utilizzando PodSecurity.

Crittografia gestita dal cliente

Se vuoi controllare e gestire autonomamente rotazione della chiave di crittografia, puoi utilizzare le chiavi di crittografia gestite dal cliente (CMEK). Queste chiavi vengono utilizzate per criptare le chiavi di crittografia dei dati. Per scoprire come utilizzare CMEK per i dischi di avvio dei nodi, consulta Utilizzo delle chiavi di crittografia gestite dal cliente.

Un limite della CMEK per i dischi di avvio dei nodi è che non può essere modificata dopo la creazione del pool di nodi. Ciò significa che:

  • Se il pool di nodi è stato creato con crittografia gestita dal cliente, non puoi disabilitare la crittografia sui dischi di avvio in un secondo momento.
  • Se il pool di nodi è stato creato senza crittografia gestita dal cliente, non potrai abilitare successivamente la crittografia sui dischi di avvio. Tuttavia, puoi creare un nuovo pool di nodi con la crittografia gestita dal cliente ed eliminare il pool di nodi precedente.

Limitazioni

Prima di configurare un disco di avvio personalizzato, considera le seguenti limitazioni:

Passaggi successivi