Merotasi sertifikat CA cluster admin

GKE di VMware menggunakan sertifikat dan kunci pribadi untuk mengautentikasi komunikasi antarkomponen sistem Kubernetes di cluster admin. Saat Anda membuat cluster admin, sertifikat certificate authority (CA) baru akan dibuat, dan root certificate ini digunakan untuk menerbitkan leaf certificate tambahan untuk komponen sistem Kubernetes.

Panduan ini hanya berlaku untuk rotasi sertifikat CA cluster admin. Untuk cluster pengguna, lihat Merotasi sertifikat CA cluster pengguna.

Ada tiga sertifikat CA yang digunakan oleh sistem Kubernetes di cluster admin:

  • Sertifikat CA etcd mengamankan komunikasi dari server Kubernetes API ke replika etcd dan juga komunikasi antara replika etcd. Sertifikat ini ditandatangani sendiri.

  • Sertifikat CA cluster mengamankan komunikasi antara server Kubernetes API dan semua klien Kubernetes API internal, misalnya, kubelet, pengelola pengontrol, dan penjadwal. Sertifikat ini ditandatangani sendiri.

  • Sertifikat CA front-proxy mengamankan komunikasi dengan API gabungan. Sertifikat ini ditandatangani sendiri.

Anda dapat menggunakan gkectl untuk memicu rotasi sertifikat. Selama rotasi, gkectl akan mengganti sertifikat CA sistem inti untuk cluster admin dengan sertifikat yang baru dibuat. Kemudian, Chrome akan mendistribusikan sertifikat CA baru, sertifikat leaf, dan kunci pribadi ke komponen sistem cluster admin. Rotasi terjadi secara bertahap, sehingga komponen sistem dapat terus berkomunikasi selama rotasi. Namun, perlu diperhatikan bahwa workload dan node dimulai ulang selama rotasi.

Tanpa rotasi, masa berlaku sertifikat CA dan sertifikat bidang kontrol akan berakhir dalam lima tahun sejak tanggal pembuatan cluster. Sertifikat bidang kontrol otomatis dirotasi selama upgrade cluster, tetapi CA tidak otomatis dirotasi. Artinya, rotasi CA harus dilakukan setidaknya sekali setiap lima tahun, selain upgrade versi reguler.

Batasan

  • Rotasi sertifikat CA terbatas pada sertifikat etcd, cluster, dan front-proxy yang disebutkan sebelumnya.

  • Rotasi sertifikat CA terbatas pada sertifikat yang diterbitkan secara otomatis oleh GKE di VMware. Tindakan ini tidak memperbarui sertifikat yang diterbitkan secara manual oleh administrator, meskipun sertifikat tersebut ditandatangani oleh CA sistem.

  • Rotasi sertifikat CA memulai ulang server Kubernetes API, proses bidang kontrol lainnya, dan setiap node di cluster admin beberapa kali. Setiap tahap rotasi berlangsung mirip dengan upgrade cluster. Meskipun cluster admin dan cluster pengguna yang dikelola oleh cluster admin tetap beroperasi selama rotasi sertifikat, Anda akan mendapati bahwa beban kerja di cluster admin akan dimulai ulang dan dijadwalkan ulang. Anda juga akan mengalami periode nonaktif singkat untuk bidang kontrol cluster admin dan bidang kontrol cluster pengguna.

  • Anda harus mengupdate file kubeconfig cluster admin di tengah rotasi sertifikat dan mengupdate lagi setelah rotasi selesai. Hal ini terjadi karena sertifikat cluster lama dicabut, dan kredensial di file kubeconfig tidak akan berfungsi lagi.

  • Setelah dimulai, rotasi sertifikat CA tidak dapat di-roll back.

  • Rotasi sertifikat CA mungkin memerlukan waktu yang cukup lama untuk diselesaikan, tergantung pada ukuran cluster.

  • Proses rotasi sertifikat dapat dilanjutkan dengan menjalankan kembali perintah yang sama jika terhenti. Namun, Anda harus memastikan bahwa hanya ada satu perintah rotasi yang berjalan pada satu waktu.

Memulai rotasi

Untuk memulai rotasi sertifikat, jalankan perintah berikut. Fungsi ini melakukan paruh pertama rotasi dan berhenti pada titik jeda.

Mulai rotasi:

gkectl update credentials certificate-authorities rotate \
    --admin-cluster \
    --config ADMIN_CLUSTER_CONFIG \
    --kubeconfig ADMIN_CLUSTER_KUBECONFIG

Ganti kode berikut:

  • ADMIN_CLUSTER_CONFIG: jalur file konfigurasi cluster admin

  • ADMIN_CLUSTER_KUBECONFIG: jalur file kubeconfig cluster admin

Jika perintah terganggu, lanjutkan dengan menjalankan perintah yang sama.

Mengupdate file kubeconfig

Saat perintah sebelumnya dijeda, perbarui file kubeconfig untuk cluster admin. Tindakan ini akan menempatkan sertifikat klien baru dan sertifikat CA baru ke dalam file kubeconfig. Sertifikat klien lama dihapus dari file kubeconfig, dan sertifikat CA lama tetap berada di file kubeconfig.

gkectl update credentials certificate-authorities update-kubeconfig \
    --admin-cluster \
    --config ADMIN_CLUSTER_CONFIG \
    --kubeconfig ADMIN_CLUSTER_KUBECONFIG

Lanjutkan rotasi

Jalankan perintah berikut untuk menjalankan paruh kedua prosedur. Perintah ini tidak akan dilanjutkan sampai gkectl memverifikasi bahwa file kubeconfig yang telah diupdate berada di direktori saat ini.

gkectl update credentials certificate-authorities rotate \
    --admin-cluster \
    --complete \
    --config ADMIN_CLUSTER_CONFIG \
    --kubeconfig ADMIN_CLUSTER_KUBECONFIG

Jika perintah terganggu, lanjutkan dengan menjalankan perintah yang sama.

Setelah rotasi selesai, versi CA saat ini akan dilaporkan.

Update file kubeconfig lagi

Setelah paruh kedua rotasi selesai, update file kubeconfig lagi. Tindakan ini akan menghapus sertifikat CA lama dari file kubeconfig.

gkectl update credentials certificate-authorities update-kubeconfig \
    --admin-cluster \
    --config ADMIN_CLUSTER_CONFIG \
    --kubeconfig ADMIN_CLUSTER_KUBECONFIG

Mendistribusikan file kubeconfig baru

Distribusikan file kubeconfig cluster admin baru ke semua pengguna cluster.