Memutar sertifikat Kubernetes menggunakan mesin AKS di Azure Stack Hub
Dokumen ini memberikan panduan tentang cara memutar sertifikat pada kluster Mesin AKS yang ada dan rekomendasi untuk menggunakan adopsi aks-engine rotate-certs
sebagai alat.
Prasyarat
Panduan ini mengasumsikan bahwa Anda sudah menyebarkan kluster menggunakan mesin AKS dan kluster dalam keadaan sehat.
Merencanakan rotasi sertifikat
Saat mempertimbangkan untuk menggunakan fungsi ini, ingat bahwa sarana kontrol Kubernetes tidak akan tersedia selama langkah pembaruan, validasi, dan mulai ulang. Rencanakan operasi pemeliharaan ini sesuai dengan itu. Selain itu, rencanakan untuk menjalankan operasi ini di staging environment dengan konfigurasi yang sama dengan lingkungan produksi sebelum mencoba dalam produksi.
Tinjau pertimbangan berikut sebelum mencoba operasi ini:
Catatan
Untuk AKSe versi 0.75.3 ke atas, perintah untuk rotasi sertifikat dimulai dengan aks-engine-azurestack
bukan aks-engine
.
Anda akan memerlukan akses ke model API (
apimodel.json
) yang dihasilkan oleh perintahaks-engine deploy
atauaks-engine generate
. Secara default file ini ditempatkan ke direktori relatif seperti_output/<clustername>/
.Operasi
aks-engine rotate-certs
menyebabkan downtime server API.aks-engine rotate-certs
mengharapkan model API yang sesuai dengan keadaan kluster saat ini.aks-engine rotate-certs
menjalankan perintah jarak jauh pada node kluster dan menggunakan informasi model API untuk membuat koneksi SSH yang aman.aks-engine rotate-certs
juga bergantung pada beberapa sumber daya yang akan diberi nama sesuai dengan penyebaranaks-engine
asli, misalnya, VM harus mengikuti penamaan yang disediakan olehaks-engine
.aks-engine rotate-certs
bergantung pada koneksi ke sarana kontrol kluster yang bekerja selama rotasi sertifikat:- Untuk memvalidasi setiap langkah proses.
- Untuk memulai ulang/membuat ulang sumber daya kluster seperti pod kube-system dan token akun layanan.
Jika Anda merotasi sertifikat kluster di VNet yang tertutup ke akses luar, Anda harus menjalankan
aks-engine rotate-certs
dari VM host yang memiliki akses jaringan ke sarana kontrol, misalnya, VM jumpbox yang berada di VNet yang sama dengan VM master.Jika Anda menggunakan
aks-engine rotate-certs
dalam produksi, sebaiknya lakukan pengujian rotasi sertifikat pada kluster yang dibangun dengan spesifikasi yang sama. Artinya, kluster dibangun dengan konfigurasi kluster yang sama, versi alat baris perintah mesin AKS yang sama, dan set add-on yang diaktifkan yang sama dengan kluster produksi sebelum melakukan rotasi sertifikat. Mesin AKS mendukung konfigurasi kluster yang berbeda dan sejauh mana pengujian end-to-end yang dijalankan tim mesin AKS tidak dapat secara praktis mencakup setiap konfigurasi yang mungkin. Oleh karena itu, sebaiknya pastikan saat dalam staging environment bahwa konfigurasi kluster spesifik Anda bekerja denganaks-engine rotate-certs
sebelum mencoba operasi pada kluster produksi Anda.aks-engine rotate-certs
tidak menjamin kompatibilitas mundur. Jika Anda menyebarkan dengan aks-engine versi 0.60.x, Anda seharusnya lebih memilih menjalankan proses rotasi sertifikat dengan versi 0.60.x.Mengambil satu set sertifikat baru dari Key Vault tidak didukung pada saat ini.
Gunakan koneksi jaringan yang andal.
aks-engine rotate-certs
memerlukan eksekusi beberapa perintah jarak jauh, yang memiliki kemungkinan kegagalan, terutama jika koneksi ke node kluster tidak dapat diandalkan. Menjalankanaks-engine rotate-certs
dari VM yang berjalan pada stempel Azure Stack target dapat mengurangi terjadinya masalah sementara.
Parameter
Parameter | Diperlukan | Deskripsi |
---|---|---|
--api-model | ya | Jalur relatif ke model API (definisi kluster) yang mendeklarasikan konfigurasi kluster yang diharapkan. |
--ssh-host | ya | Nama domain yang sepenuhnya memenuhi syarat (FQDN), atau alamat IP, dari listener SSH yang dapat menjangkau semua node dalam kluster. |
--linux-ssh-private-key | ya | Jalur ke kunci SSH privat yang valid untuk mengakses node Linux kluster. |
--location | ya | Lokasi Azure tempat kluster disebarkan. |
--subscription-id | ya | Langganan Azure tempat infra kluster disebarkan. |
--resource-group | ya | Grup sumber daya Azure tempat infra kluster disebarkan. |
--client-id | tergantung | ID klien perwakilan layanan. Diperlukan jika auth-method diatur ke client_secret atau client_certificate. |
--client-secret | tergantung | Rahasia klien perwakilan layanan. Diperlukan jika auth-method diatur ke client_secret. |
--azure-env | tergantung | Nama cloud target. Opsional jika cloud target adalah AzureCloud. |
--certificate-profile | tidak | Jalur relatif ke file JSON yang berisi kumpulan sertifikat baru. |
--force | tidak | Eksekusi paksa meskipun Server API tidak responsif. |
Langkah-langkah sederhana untuk merotasi sertifikat
Untuk AKS Engine versi 0.75.3 ke atas, setelah Anda membaca semua persyaratan, jalankan aks-engine-azurestack rotate-certs
dengan argumen yang sesuai (lihat di bawah).
Untuk AKS Engine versi 0.73.0 ke bawah, setelah Anda membaca semua persyaratan, jalankan aks-engine rotate-certs
dengan argumen yang sesuai:
./bin/aks-engine rotate-certs \
--location <resource-group-location> \
--api-model <generated-apimodel.json> \
--linux-ssh-private-key <private-SSH-key> \
--ssh-host <apiserver-URI> \
--resource-group <resource-group-name> \
--client-id <service-principal-id> \
--client-secret <service-principal-secret> \
--subscription-id <subscription-id> \
--azure-env <cloud-name>
Contohnya:
./bin/aks-engine rotate-certs \
--location "westus2" \
--api-model "_output/my-cluster/apimodel.json" \
--linux-ssh-private-key "~/.ssh/id_rsa" \
--ssh-host "my-cluster.westus2.cloudapp.azure.com"\
--resource-group "my-cluster" \
--client-id "12345678-XXXX-YYYY-ZZZZ-1234567890ab" \
--client-secret "12345678-XXXX-YYYY-ZZZZ-1234567890ab" \
--subscription-id "12345678-XXXX-YYYY-ZZZZ-1234567890ab" \
--azure-env "AzureStackCloud" # optional if targeting AzureCloud
Memutar sertifikat front-proxy
Catatan
Untuk AKSe versi 0.75.3 ke atas, perintah untuk rotasi sertifikat dimulai dengan aks-engine-azurestack
bukan aks-engine
.
Mesin AKS membuat PKI terpisah untuk front-proxy
sebagai bagian dari proses bootstrap node dan mengirimkannya ke semua node melalui etcd
. Untuk menggunakan kembali fungsi ini secara efektif, rotate-certs
harus mengganti sertifikat yang disimpan di etcd
. Sertifikat front-proxy
kedaluwarsa setelah 30 tahun. aks-engine rotate-certs
memutar sertifikat proksi depan.
Pemecahan Masalah
Catatan
Untuk AKSe versi 0.75.3 ke atas, perintah untuk rotasi sertifikat dimulai dengan aks-engine-azurestack
bukan aks-engine
.
Jika proses rotasi sertifikat berhenti sebelum selesai karena kegagalan atau masalah sementara, misalnya, konektivitas jaringan, aman untuk menjalankan aks-engine rotate-certs
kembali menggunakan bendera --force
.
Perhatikan juga bahwa aks-engine rotate-certs
mengelog output dari setiap langkah dalam /var/log/azure/rotate-certs.log
(Linux) dan c:\\k\\rotate-certs.log
(Windows) file.
Untuk informasi lebih lanjut tentang apa yang sebenarnya terjadi under the hood saat menjalankan operasi ini atau untuk kustomisasi lebih lanjut, lihat Under The Hood.
Langkah berikutnya
- Baca tentang mesin AKS di Azure Stack Hub
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk