Merotasi sertifikat CA cluster admin

Google Distributed Cloud menggunakan sertifikat dan kunci pribadi untuk melakukan autentikasi komunikasi antar komponen sistem Kubernetes di cluster admin. Jika Anda membuat cluster admin, sertifikat certificate authority (CA) baru akan dibuat, dan {i>root certificate<i} ini digunakan untuk menerbitkan {i>leaf certificate<i} tambahan untuk Komponen sistem Kubernetes.

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

Ada tiga sertifikat CA yang digunakan oleh sistem Kubernetes dalam admin :

  • Sertifikat CA etcd mengamankan komunikasi dari server Kubernetes API ke replika {i>etcd<i} dan juga komunikasi antara replika {i>etcd<i}. Ini sertifikat ditandatangani sendiri.

  • Sertifikat CA cluster mengamankan komunikasi antara Kubernetes API server dan semua klien Kubernetes API internal, misalnya, kubelet, {i>controller<i}, dan {i>scheduler<i}. Sertifikat ini ditandatangani sendiri.

  • Sertifikat CA {i>front-proxy<i} mengamankan komunikasi dengan API gabungan. Sertifikat ini ditandatangani sendiri.

Anda dapat menggunakan gkectl untuk memicu rotasi sertifikat. Selama rotasi, gkectl menggantikan sertifikat CA sistem inti untuk cluster admin dengan sertifikat yang baru dibuat. Kemudian mendistribusikan Sertifikat CA, leaf certificate, dan kunci pribadi untuk sistem cluster admin komponen. Rotasi terjadi secara bertahap, sehingga komponen sistem dapat terus berkomunikasi selama rotasi. Namun, perlu diketahui bahwa beban kerja dan dan node dimulai ulang selama rotasi.

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

Batasan

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

  • Rotasi sertifikat CA dibatasi pada sertifikat yang diterbitkan secara otomatis oleh Google Distributed Cloud. Sistem ini tidak memperbarui sertifikat yang diterbitkan secara manual oleh administrator, meskipun sertifikat tersebut ditandatangani oleh CA sistem.

  • Rotasi sertifikat CA akan memulai ulang server Kubernetes API, proses bidang kontrol, dan setiap {i> node<i} di cluster admin beberapa kali. Setiap tahap rotasi berlangsung mirip dengan upgrade cluster. Sementara cluster admin dan cluster pengguna yang dikelola oleh cluster admin tetap operasional selama rotasi sertifikat, Anda harus mengharapkan bahwa beban kerja di cluster admin akan dimulai ulang dan dijadwalkan ulang. Anda juga diharapkan periode nonaktif singkat untuk bidang kontrol cluster admin dan cluster pengguna bidang kontrol.

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

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

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

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

Memulai rotasi

Untuk memulai rotasi sertifikat, jalankan perintah berikut. Fungsi ini melakukan paruh pertama rotasi dan berhenti di 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 konfigurasi cluster admin file

  • ADMIN_CLUSTER_KUBECONFIG: jalur kubeconfig cluster admin file

Jika perintah terganggu, lanjutkan dengan menjalankan perintah yang sama.

Memperbarui file kubeconfig

Saat perintah sebelumnya dijeda, perbarui file kubeconfig untuk admin . Ini menempatkan sertifikat klien baru dan sertifikat CA baru di {i>kubeconfig<i}. Sertifikat klien yang lama dihapus dari file {i>kubeconfig<i}, dan sertifikat CA lama tetap ada di file {i>kubeconfig<i}.

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

Lanjutkan rotasi

Jalankan perintah berikut untuk melakukan bagian kedua prosedur. Tujuan perintah tidak akan dilanjutkan hingga gkectl memverifikasi bahwa file kubeconfig yang diperbarui ada 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 selesai, rotasi melaporkan versi CA saat ini.

Memperbarui file kubeconfig lagi

Setelah paruh kedua rotasi selesai, perbarui file kubeconfig untuk mencoba lagi perintah. 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.