Container Service for Kubernetes (ACK) mematuhi Certified Kubernetes Conformance Program. Topik ini menjelaskan perubahan yang diterapkan pada ACK untuk mendukung Kubernetes 1.16.
Kubernetes 1.16 menghapus beberapa versi API secara default. Periksa apakah beban kerja Anda menggunakan API yang tidak digunakan lagi di bawah ini sebelum melakukan upgrade. ACK memperpanjang kompatibilitas mundur untuk API-API tersebut hingga Kubernetes 1.16.6, tetapi dukungan berakhir pada Kubernetes 1.18.
Versi komponen
| Komponen | Versi | Perubahan |
|---|---|---|
| Kubernetes | 1.16.9 | Memperbaiki CVE-2020-8555 di kube-controller-manager. Lihat Kerentanan yang diperbaiki: CVE-2020-8555 di kube-controller-manager. Jika kluster Anda menggunakan volume disk bertipe Block Volume, baca Catatan pembaruan untuk volume blok CSI sebelum melakukan upgrade. |
| Kubernetes | 1.16.6 | CoreDNS ditingkatkan dari versi 1.3.1 (Kubernetes 1.14) ke 1.6.2. Plugin proxy digantikan oleh plugin forward untuk performa yang lebih tinggi. Plugin ready kini diaktifkan secara default untuk memeriksa kesiapan kontainer. Corefile dimigrasi secara otomatis. |
| Docker | 19.03.5 (containerd 1.2.10) | Lihat Perubahan Docker 19.03.5. |
| etcd | 3.4.3 | — |
Apa yang berubah di Kubernetes 1.16
Penghapusan API
Versi API berikut dihapus secara default di Kubernetes 1.16. Tindakan diperlukan: Periksa apakah beban kerja Anda menggunakan API ini dan perbarui manifes Anda ke versi penggantinya sebelum melakukan upgrade.
| API yang tidak digunakan lagi | Pengganti |
|---|---|
apps/v1beta1 | apps/v1 |
apps/v1beta2 | apps/v1 |
extensions/v1beta1 (DaemonSets, Deployments, ReplicaSets) | apps/v1 |
extensions/v1beta1 (NetworkPolicies) | networking.k8s.io/v1 |
ACK memperpanjang kompatibilitas mundur untuk API-API ini hingga Kubernetes 1.16.6. Dukungan berakhir pada Kubernetes 1.18. Perbarui manifes dan alat Anda sebelum melakukan upgrade ke Kubernetes 1.18.
Penyempurnaan performa
Kubernetes 1.16.6 mencakup penyempurnaan berikut dibandingkan Kubernetes 1.14:
Penjadwalan PodAffinity: ~100% lebih cepat.
Operasi list: daftar Pod 40% lebih cepat; daftar node 30% lebih cepat.
Server-side apply: performa lebih baik saat menangani objek map besar.
Heartbeat node: heartbeat berbasis lease node mengurangi beban API server dan etcd sebesar 50.000 kueri per menit pada kluster berisi 8.000 node.
Pembuatan Pod: untuk Pod tanpa status (tanpa ConfigMap, Secret, atau volume), 99% Pod mulai dalam waktu 5 detik setelah gambar ditarik. 1% pembuatan Pod terlambat turun dari ~5 detik (Kubernetes 1.14) menjadi ~3 detik (Kubernetes 1.16.6).
Perubahan parameter keamanan Kubelet
Parameter kubelet berikut tidak digunakan lagi dan dihapus: AllowPrivileged, HostNetworkSources, HostPIDSources, dan HostIPCSources. Kontrol akses kini ditangani melalui PodSecurityPolicy dan mekanisme setara lainnya.
Fitur yang mencapai general availability
CustomResourceDefinitions (CRDs)
Admission webhooks
Perubahan Docker 19.03.5
Penyempurnaan performa:
BuildKit bawaan mempercepat pembuatan image.
Deteksi systemd yang dioptimalkan untuk runc mengurangi waktu startup kontainer dan konsumsi memori.
Perbaikan bug:
Memperbaiki restart Pod intermiten selama pemeriksaan kesehatan exec probe.
Memperbaiki CVE-2018-15664 (terpapar melalui perintah
docker cp).Memperbaiki Docker yang menjadi tidak responsif saat kontainer kaya yang menjalankan banyak proses keluar.
Memperbaiki kebocoran handle di containerd.
Penyempurnaan ACK pada Kubernetes 1.16.6
Stabilitas dan performa
Menambahkan retry untuk operasi idempoten guna meningkatkan tingkat keberhasilan pembuatan kluster.
Kontainer yang sedang berjalan tidak lagi direstart selama upgrade kubelet.
Memperbaiki kegagalan startup kubelet yang disebabkan oleh hugetlb.
Observabilitas
Mengoptimalkan log Pemeriksaan kelangsungan hidup Server Load Balancer (SLB) yang dikirim ke API server.
Menyesuaikan tingkat log aggregationcontroller.
Memperbaiki output perintah
get csdi kluster ACK yang dikelola.Mengoptimalkan metrik pemantauan untuk kontainer sandbox agar tetap kompatibel dengan API metrik yang ada.