Anda dapat merotasi sertifikat certificate authority (CA) di cluster admin Google Distributed Cloud untuk memperbaruinya sebelum masa berlakunya habis. Sertifikat CA ini dibuat dengan cluster admin, dan sertifikat tersebut menerbitkan sertifikat yang digunakan komponen sistem Kubernetes untuk mengautentikasi komunikasinya. Anda menjalankan rotasi dengan gkectl, lalu mengupdate file kubeconfig, yang akan dibatalkan oleh rotasi. Dokumen ini hanya berlaku untuk cluster admin. Untuk cluster pengguna, lihat
Merotasi sertifikat CA cluster pengguna.
Tentang sertifikat CA cluster admin
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 antar-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 proxy front-end mengamankan komunikasi dengan API gabungan. Sertifikat ini ditandatangani sendiri.
Anda dapat menggunakan gkectl untuk memicu rotasi sertifikat. Selama rotasi,
gkectl mengganti sertifikat CA sistem inti untuk
cluster admin dengan sertifikat yang baru dibuat. Kemudian, layanan ini mendistribusikan sertifikat CA, sertifikat entitas akhir, dan kunci pribadi baru 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, sertifikat CA dan sertifikat bidang kontrol akan habis masa berlakunya setelah jangka waktu tertentu sejak tanggal pembuatan cluster.
Periode habis 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 otomatis dirotasi selama upgrade cluster, tetapi CA tidak otomatis dirotasi. Artinya, rotasi CA harus dilakukan sebelum tanggal habis masa berlaku CA, selain upgrade versi reguler.
Batasan
Perhatikan batasan berikut terkait 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. Sistem ini tidak mengupdate sertifikat yang dikeluarkan 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 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 sekali 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 ulang 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:
Tidak diaktifkan
Perintah gkectl update credentials certificate-authorities rotate memulai
dan melakukan paruh pertama rotasi. Perintah tersebut kemudian dijeda agar Anda dapat menjalankan perintah berikutnya untuk mengupdate file kubeconfig.
Mengupdate 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 di file kubeconfig. Sertifikat klien lama dihapus dari file kubeconfig, dan sertifikat CA lama tetap ada 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 melakukan paruh kedua prosedur. Perintah ini 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.
Mengupdate 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
Aktif
Jika cluster lanjutan diaktifkan, perintah gkectl update credentials
certificate-authorities rotate bersifat sinkron. Output 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 yang 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.