Halaman ini menampilkan cara menyelesaikan masalah yang terkait dengan enkripsi rahasia lapisan aplikasi di Google Kubernetes Engine (GKE).
Update gagal
Saat Anda memperbarui konfigurasi enkripsi dari enkripsi rahasia lapisan aplikasi, GKE harus menulis ulang semua Objek Secret di cluster Kubernetes. GKE melakukan hal ini untuk memastikan bahwa semua Secret dienkripsi oleh Kunci Cloud KMS baru, atau ditulis tanpa dienkripsi yang Anda konfigurasikan.
Operasi pembaruan ini dapat gagal karena salah satu kondisi berikut:
- Bidang kontrol Kubernetes untuk sementara tidak tersedia saat update berlangsung progresif.
AdmissionWebhook
yang ditentukan pengguna mencegah GKE untuk memperbarui objek Secret.- Kunci Cloud KMS yang diperbarui atau sebelumnya dinonaktifkan sebelum update operasi selesai.
Sampai operasi pembaruan berhasil, jangan berinteraksi dengan kunci Cloud KMS yang diperbarui atau sebelumnya.
Kolom proses debug
Cluster GKE baru yang menjalankan versi 1.29 dan yang lebih baru berisi
kolom tambahan yang membantu Anda melacak pembaruan pada Cluster.DatabaseEncryption
dan membantu Anda
pulih dari kegagalan.
Langkah-langkah berikut hanya berlaku untuk cluster di mana
Kolom DatabaseEncryption.CurrentState
tidak kosong. Jika CurrentState
kosong, fitur tersebut belum diaktifkan pada versi cluster ini.
Batas berikut berlaku untuk kolom ini:
- Bersifat hanya output, yang berarti Anda tidak dapat menyetelnya selama pembuatan cluster permintaan pembaruan atau {i>update<i}.
Kolom CurrentState
Anda dapat memeriksa status operasi update DatabaseEncryption
saat ini
dengan memeriksa kolom CurrentState
di Cluster.DatabaseEncryption
.
Nilai CurrentState |
Deskripsi |
---|---|
|
Operasi update terbaru berhasil. Tidak ada tindakan lebih lanjut diperlukan. Anda dapat membuang kunci yang sebelumnya digunakan. |
|
Update sedang berlangsung. |
|
Terjadi error pada update terbaru. Jangan menonaktifkan atau menghancurkan kunci Cloud KMS yang sebelumnya digunakan, karena mungkin masih akan digunakan oleh GKE.
Lihat kolom |
Kolom LastOperationErrors
Jika operasi update gagal, error yang mendasarinya dari GKE
bidang kontrol ditampilkan dalam output gcloud container clusters update
.
Pesan error dari dua operasi pembaruan terbaru yang gagal juga
tersedia di Cluster.DatabaseEncryption.LastOperationErrors
.
Kolom DecryptionKeys
Kunci Cloud KMS yang digunakan untuk operasi enkripsi baru ditampilkan di
DatabaseEncryption.KeyName
. Biasanya ini adalah satu-satunya kunci yang digunakan oleh cluster.
Namun, DatabaseEncryption.DecryptionKeys
berisi kunci tambahan yang
juga digunakan oleh cluster jika update sedang berlangsung atau setelah terjadi kegagalan.
Memulihkan dari update yang gagal
Untuk memulihkan dari update yang gagal, lakukan hal berikut:
- Periksa pesan error dan selesaikan masalah apa pun yang ditunjukkan.
- Coba lagi permintaan update dengan menjalankan perintah yang gagal, seperti
gcloud container clusters update ... --database-encryption-key
. Rab sebaiknya Anda mencoba lagi dengan permintaan pembaruan yang sama dengan dikeluarkan, atau memperbarui cluster kembali ke status sebelumnya. GKE mungkin tidak dapat bertransisi ke kunci yang berbeda atau status enkripsi jika tidak dapat membaca satu atau beberapa Secret.
Bagian berikut mencantumkan alasan umum terjadinya error.
Error kunci Cloud KMS
Jika pesan error berisi referensi ke satu atau beberapa Cloud KMS kunci Cloud, memeriksa konfigurasi kunci Cloud KMS untuk memastikan versi kunci yang relevan dapat digunakan.
Misalnya, jika error tersebut menunjukkan bahwa kunci Cloud KMS telah dinonaktifkan atau dihancurkan, aktifkan kembali kunci atau versi kunci tersebut.
Tidak dapat memperbarui Secret
Error berikut mungkin terjadi jika Kubernetes API menolak update permintaan karena webhook penerimaan:
error admission webhook WEBHOOK_NAME denied the request
Untuk mengatasi error ini, hapus webhook atau ubah webhook agar GKE dapat mengupdate Secret di semua namespace selama update kunci.