Questa pagina mostra come risolvere problemi relativi a: crittografia dei secret a livello di applicazione in Google Kubernetes Engine (GKE).
Aggiornamento non riuscito
Quando aggiorni la configurazione della crittografia dei secret a livello di applicazione, GKE deve riscrivere tutto Gli oggetti Secret in Kubernetes. GKE lo fa per garantire che tutti i Secret sono criptati dalla nuova chiave Cloud KMS o sono scritti non criptati se ecco cosa configuri.
Questa operazione di aggiornamento può non riuscire a causa di una delle seguenti condizioni:
- Il piano di controllo Kubernetes è temporaneamente non disponibile durante l'aggiornamento progressi.
- Un
AdmissionWebhook
definito dall'utente impedisce a GKE di per aggiornare gli oggetti Secret. - La chiave Cloud KMS aggiornata o precedente viene disabilitata prima dell'aggiornamento l'operazione.
Finché l'operazione di aggiornamento non va a buon fine, non interagire con nessuno dei due aggiornate o precedenti di Cloud KMS.
Campi di debug
I nuovi cluster GKE che eseguono la versione 1.29 e successive contengono
campi aggiuntivi che ti consentono di monitorare gli aggiornamenti a Cluster.DatabaseEncryption
e aiutarti a risolvere gli errori.
I passaggi seguenti sono validi solo per i cluster in cui
Il campo DatabaseEncryption.CurrentState
non è vuoto. Se CurrentState
è vuoto, la funzionalità non è ancora abilitata in questa versione del cluster.
A questi campi si applicano i seguenti limiti:
- Sono solo output, il che significa che non è possibile impostarli durante la creazione del cluster o richieste di aggiornamento.
Campo CurrentState
Puoi controllare lo stato attuale di un'operazione di aggiornamento di DatabaseEncryption
esaminando il campo CurrentState
in Cluster.DatabaseEncryption
.
Valore di CurrentState |
Descrizione |
---|---|
|
L'ultima operazione di aggiornamento è riuscita. Non devi fare altro necessaria. Puoi smaltire qualsiasi chiave utilizzata in precedenza. |
|
L'aggiornamento è in corso. |
|
Si è verificato un errore con l'aggiornamento più recente. Non disattivare o eliminare tutte le chiavi Cloud KMS utilizzate in precedenza, poiché potrebbero in uso da GKE.
Fai riferimento al campo |
Campo LastOperationErrors
Quando un'operazione di aggiornamento non va a buon fine, l'errore sottostante dell'istanza GKE
viene visualizzato nell'output di gcloud container clusters update
.
Vengono visualizzati anche i messaggi di errore delle due ultime operazioni di aggiornamento non riuscite
disponibile in Cluster.DatabaseEncryption.LastOperationErrors
.
Campo DecryptionKeys
La chiave Cloud KMS utilizzata per le nuove operazioni di crittografia è mostrata in
DatabaseEncryption.KeyName
. Di solito questa è l'unica chiave utilizzata dal cluster.
Tuttavia, DatabaseEncryption.DecryptionKeys
contiene chiavi aggiuntive che sono
e utilizzata dal cluster anche se è in corso un aggiornamento o dopo un errore.
Recuperare i dati da un aggiornamento non riuscito
Per eseguire il ripristino dopo un aggiornamento non riuscito:
- Esamina il messaggio di errore e risolvi gli eventuali problemi segnalati.
- Riprova la richiesta di aggiornamento eseguendo il comando non riuscito, ad esempio
gcloud container clusters update ... --database-encryption-key
. Me ti consigliamo di riprovare con la stessa richiesta di aggiornamento che hai usato o aggiornare il cluster allo stato precedente. GKE potrebbe non essere in grado di passare a una chiave diversa o della crittografia se non può leggere uno o più secret.
Le seguenti sezioni elencano i motivi più comuni per gli errori.
Errore chiave Cloud KMS
Se il messaggio di errore contiene un riferimento a uno o più Cloud KMS di Cloud KMS, esamina la configurazione della chiave Cloud KMS per assicurarti le versioni pertinenti della chiave.
Ad esempio, se l'errore indica che una chiave Cloud KMS è stata disabilitata o eliminata, riabilita la chiave o la versione della chiave.
Impossibile aggiornare il secret
Potrebbe verificarsi il seguente errore se l'API Kubernetes ha rifiutato l'aggiornamento richiesta a causa di un webhook di ammissione:
error admission webhook WEBHOOK_NAME denied the request
Per risolvere questo errore, rimuovi il webhook o modificalo in modo che GKE può aggiornare i secret in tutti gli spazi dei nomi durante gli aggiornamenti delle chiavi.