Google Distributed Cloud menggunakan sertifikat dan kunci pribadi untuk mengautentikasi komunikasi antara komponen sistem Kubernetes di cluster admin. Saat Anda membuat cluster admin, sertifikat certificate authority (CA) baru akan dibuat, dan sertifikat root ini digunakan untuk menerbitkan sertifikat leaf 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, `gkectl` 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, perhatikan bahwa workload dan node akan dimulai ulang selama rotasi.
Tanpa rotasi, sertifikat CA dan sertifikat bidang kontrol akan berakhir setelah jangka waktu tertentu sejak tanggal cluster dibuat.
Periode masa berlaku bergantung pada jenis cluster dan versi pembuatannya:
- Cluster lanjutan:
- Masa berlaku 10 tahun
- Cluster non-lanjutan:
- Dibuat sebelum versi 1.5: Masa berlaku 10 tahun
- Dibuat antara versi 1.5 hingga 1.16: Masa berlaku 5 tahun
- Dibuat setelah versi 1.16: Masa berlaku 30 tahun
Sertifikat bidang kontrol akan otomatis dirotasi selama upgrade cluster, tetapi CA tidak otomatis dirotasi. Artinya, rotasi CA harus dilakukan sebelum tanggal masa berlaku CA berakhir, selain upgrade versi reguler.
Batasan
Perhatikan batasan berikut dengan cluster lanjutan:
- Versi 1.31: Rotasi CA tidak didukung di cluster lanjutan.
- Versi 1.32 dan yang lebih tinggi: Rotasi CA didukung di cluster lanjutan, tetapi ada beberapa perbedaan kecil yang dicatat jika berlaku dalam dokumen ini.
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 Google Distributed Cloud. Rotasi 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 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 harus memperkirakan bahwa workload di cluster admin akan dimulai ulang dan dijadwalkan ulang. Anda juga harus memperkirakan periode nonaktif singkat untuk bidang kontrol cluster admin dan bidang kontrol cluster pengguna.
Anda harus memperbarui file kubeconfig cluster admin di tengah rotasi sertifikat dan lagi setelah rotasi selesai. Hal ini karena sertifikat cluster lama dicabut, dan kredensial dalam 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, bergantung pada ukuran cluster.
Proses rotasi sertifikat dapat dilanjutkan dengan menjalankan kembali perintah yang sama jika terganggu. Namun, Anda harus memastikan bahwa hanya ada satu perintah rotasi yang berjalan dalam satu waktu.
Memulai rotasi
Untuk memulai rotasi sertifikat, jalankan perintah berikut:
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
Perilaku perintah berbeda-beda, bergantung pada apakah cluster lanjutan diaktifkan atau tidak:
Tidak diaktifkan
Perintah gkectl update credentials certificate-authorities rotate akan memulai dan melakukan paruh pertama rotasi. Kemudian, perintah akan dijeda agar Anda dapat menjalankan perintah berikutnya untuk memperbarui file kubeconfig.
Memperbarui file kubeconfig
Saat perintah gkectl update credentials certificate-authorities rotate dijeda, perbarui file kubeconfig untuk cluster admin. Tindakan ini akan menempatkan sertifikat klien baru dan sertifikat CA baru dalam file kubeconfig. Sertifikat klien lama akan dihapus dari file kubeconfig, dan sertifikat CA lama akan tetap ada di file kubeconfig.
gkectl update credentials certificate-authorities update-kubeconfig \ --admin-cluster \ --config ADMIN_CLUSTER_CONFIG \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG
Melanjutkan rotasi
Jalankan perintah berikut untuk melakukan paruh kedua prosedur. Perintah tidak akan dilanjutkan hingga gkectl memverifikasi bahwa file kubeconfig yang diperbarui berada di direktori saat ini.
gkectl update credentials certificate-authorities rotate \ --admin-cluster \ --complete \ --config ADMIN_CLUSTER_CONFIG \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG
Setelah rotasi selesai, versi CA saat ini akan dilaporkan.
Memperbarui file kubeconfig lagi
Setelah paruh kedua rotasi selesai, perbarui 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
Aktif
Jika cluster lanjutan diaktifkan, perintah gkectl update credentials
certificate-authorities rotate akan bersifat sinkron. Perintah akan menampilkan pesan status ke workstation admin saat rotasi CA berlangsung.
Setelah CA berhasil dirotasi, perintah akan keluar dan file kubeconfig baru akan otomatis dibuat. File kubeconfig yang Anda tentukan dalam perintah akan diganti dengan file baru. Output perintah mirip dengan berikut ini:
Beginning CA rotation with generated CA ... Successfully rotated CA for admin cluster. The kubeconfig file "/home/ubuntu/kubeconfig" has been updated. Done rotating certificate-authorities
Mendistribusikan file kubeconfig baru
Distribusikan file kubeconfig cluster admin baru ke semua pengguna cluster.