Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Artikel ini menjelaskan cara mengelola dan memutar sertifikat di kluster Azure Kubernetes Service (AKS) untuk menjaga komunikasi yang aman antar komponen dan memastikan kepatuhan.
Prerequisites
- Azure CLI versi 2.0.77 atau yang lebih baru. Periksa versi Anda dengan menggunakan
az --versionperintah . Untuk menginstal atau meningkatkan, lihat Install Azure CLI.
Periksa tanggal kedaluwarsa sertifikat otoritas sertifikat kluster (CA)
Periksa tanggal kedaluwarsa sertifikat CA kluster menggunakan perintah kubectl config view.
kubectl config view --raw -o jsonpath="{.clusters[?(@.name == '')].cluster.certificate-authority-data}" | base64 -d | openssl x509 -text | grep -A2 Validity
Periksa tanggal kedaluwarsa sertifikat server API
Periksa tanggal kedaluwarsa sertifikat server API menggunakan perintah berikut curl :
curl https://{apiserver-fqdn} -k -v 2>&1 | grep expire
Periksa tanggal kedaluwarsa sertifikat simpul agen VMSS
Periksa tanggal kedaluwarsa sertifikat node agen set skala mesin virtual menggunakan perintah az vmss run-command invoke.
az vmss run-command invoke \
--resource-group <node-resource-group> \
--name <vmss-name> \
--command-id RunShellScript \
--instance-id 1 \
--scripts "openssl x509 -in /var/lib/kubelet/pki/kubelet-client-current.pem -noout -enddate" \
--query "value[0].message"
Periksa tanggal kedaluwarsa sertifikat VM mandiri
Periksa tanggal kedaluwarsa VM mandiri menggunakan az vm run-command invoke perintah .
az vm run-command invoke \
--resource-group <resource-group> \
--name <vm-name> \
--command-id RunShellScript \
--scripts "openssl x509 -in /var/lib/kubelet/pki/kubelet-client-current.pem -noout -enddate" \
--query "value[0].message"
Merotasi sertifikat CA kluster secara manual
Saat Anda merotasi sertifikat CA kluster, sertifikat turunan berikut juga diperbarui:
- Token akun layanan (SA)
- Sertifikat server API
- Sertifikat klien Kubelet
- Sertifikat server Kubelet (jika kubelet melayani rotasi sertifikat diaktifkan pada kluster)
Warning
Merotasi sertifikat Anda menggunakan az aks rotate-certs akan membuat ulang semua node, set skala mesin virtual, dan disk Anda. Proses ini dapat menyebabkan waktu henti hingga 30 menit untuk kluster AKS Anda. Jika perintah gagal sebelum selesai, gunakan perintah az aks show untuk memastikan status kluster menunjukkan Rotasi Sertifikat. Jika kluster dalam status gagal, jalankan az aks rotate-certs ulang untuk memutar sertifikat Anda lagi.
Sambungkan ke kluster Anda menggunakan
az aks get-credentialsperintah .az aks get-credentials --resource-group <resource-group> --name <cluster-name>Putar semua sertifikat, CA, dan SA di kluster Anda dengan menggunakan perintah
az aks rotate-certs.az aks rotate-certs --resource-group <resource-group> --name <cluster-name>Verifikasi bahwa sertifikat lama tidak lagi valid menggunakan perintah apa pun
kubectl, sepertikubectl get nodes.kubectl get nodesJika Anda tidak memperbarui sertifikat yang digunakan oleh
kubectl, Anda akan melihat kesalahan yang mirip dengan contoh output berikut:Unable to connect to the server: x509: certificate signed by unknown authority (possibly because of "crypto/rsa: verification error" while trying to verify candidate authority certificate "ca")
Memperbarui kubectl sertifikat klien
Perbarui sertifikat klien
kubectlmenggunakan perintahaz aks get-credentialsdengan bendera--overwrite-existing.az aks get-credentials --resource-group <resource-group> --name <cluster-name> --overwrite-existingVerifikasi bahwa sertifikat diperbarui menggunakan
kubectl getperintah .kubectl get nodesNote
Jika Anda memiliki layanan yang berjalan di atas AKS, Anda mungkin perlu memperbarui sertifikat mereka.
Verifikasi bahwa rotasi sertifikat penerbitan kubelet telah diaktifkan
Setiap simpul dengan fitur diaktifkan secara otomatis diberikan label kubernetes.azure.com/kubelet-serving-ca=cluster. Pastikan label sudah diatur menggunakan perintah kubectl get nodes -L kubernetes.azure.com/kubelet-serving-ca.
kubectl get nodes -L kubernetes.azure.com/kubelet-serving-ca
Verifikasikan bahwa kubelet mengalami proses bootstrapping TLS
Saat Anda mengaktifkan fitur ini, setiap kubelet yang berjalan pada node Anda akan menjalani proses bootstrap TLS untuk serving.
Pastikan proses bootstrapping sedang berlangsung dengan menggunakan perintah kubectl get untuk mendapatkan objek CSR yang ada saat ini di dalam kluster Anda.
kubectl get csr --field-selector=spec.signerName=kubernetes.io/kubelet-serving
Semua CSR yang aktif berada dalam keadaan Approved,Issued, yang menunjukkan bahwa CSR telah disetujui dan sertifikat yang ditandatangani telah diterbitkan. Melayani CSR memiliki nama penanda tangan kubernetes.io/kubelet-serving. Contohnya:
NAME AGE SIGNERNAME REQUESTOR REQUESTEDDURATION CONDITION
csr-1ab2c 113s kubernetes.io/kube-apiserver-client-kubelet system:bootstrap:abcd1e none Approved,Issued
csr-defgh 111s kubernetes.io/kubelet-serving system:node:akswinp1000000 none Approved,Issued
csr-ij3kl 46m kubernetes.io/kubelet-serving system:node:akswinp2000000 none Approved,Issued
csr-mn4op 46m kubernetes.io/kube-apiserver-client-kubelet system:bootstrap:ab1cde none Approved,Issued
Pastikan kubelet menggunakan sertifikat TLS yang diperoleh dari bootstrapping server.
Konfirmasi apakah kubelet node menggunakan sertifikat server yang ditandatangani oleh CA cluster dengan menggunakan perintah [kubectl debug][kubectl-debug] untuk memeriksa isi direktori PKI kubelet.
kubectl debug node/<node> -ti --image=mcr.microsoft.com/azurelinux/base/core:3.0 -- ls -l /host/var/lib/kubelet/kubelet-server-current.pem
Jika ada symlink kubelet-server-current.pem, kubelet melakukan bootstrap dan merotasi sertifikat penyajiannya sendiri melalui proses bootstrap TLS serta ditandatangani oleh CA cluster.
Menonaktifkan rotasi sertifikat layanan kubelet
Nonaktifkan rotasi sertifikat layanan kubelet dengan memperbarui kumpulan simpul menggunakan perintah
az aks nodepool updatedan dengan menentukan tagaks-disable-kubelet-serving-certificate-rotation=true.az aks nodepool update \ --cluster-name <cluster-name> \ --resource-group <resource-group> \ --name <node-pool-name> \ --tags aks-disable-kubelet-serving-certificate-rotation=trueGambar ulang node Anda menggunakan peningkatan gambar node atau dengan menskalakan kumpulan ke nol instans kemudian kembalikan ke nilai yang diinginkan.
Konten terkait
Untuk informasi selengkapnya tentang keamanan AKS, lihat artikel berikut ini: