wingi, 9 Desember, dumadi release sabanjure Kubernetes - 1.17. Miturut tradisi sing wis dikembangake kanggo blog kita, kita ngomong babagan owah-owahan sing paling penting ing versi anyar.
Informasi sing digunakake kanggo nyiapake materi iki dijupuk saka woro-woro resmi, Tabel nelusuri paningkatan Kubernetes, CHANGELOG-1.17 lan masalah sing gegandhengan, panjaluk tarik, lan Usul Peningkatan Kubernetes (KEP). Dadi, apa sing anyar? ..
Topologi-aware routing
Komunitas Kubernetes wis suwe ngenteni fitur iki - Topologi-sadar layanan nuntun. Yen KAB iku asalé ing Oktober 2018, lan resmi penambahan - 2 taun kepungkur, masalah biasanipun (kaya iku) - lan sawetara taun luwih tuwa ...
Ide umum yaiku nyedhiyakake kemampuan kanggo ngetrapake rute "lokal" kanggo layanan sing manggon ing Kubernetes. "Lokalitas" ing kasus iki tegese "tingkat topologi sing padha" (tingkat topologi), sing bisa dadi:
node identik kanggo layanan,
rak server sing padha,
wilayah sing padha
panyedhiya awan sing padha,
...
Conto nggunakake fitur iki:
tabungan ing lalu lintas ing panginstalan maya karo sawetara zona kasedhiyan (multi-AZ) - ndeleng. ilustrasi seger nggunakake conto lalu lintas saka wilayah sing padha, nanging beda AZ ing AWS;
latensi kinerja sing luwih murah / throughput sing luwih apik;
layanan sharded sing nduweni informasi lokal babagan simpul ing saben shard;
penempatan fluentd (utawa analog) ing simpul sing padha karo aplikasi sing diklumpukake log;
Kanggo rincian babagan cara kerjane fitur lan kepiye sampeyan bisa nggunakake, waca artikel iki saka salah sawijining penulis.
Dhukungan tumpukan dual IPv4/IPv6
kemajuan pinunjul tetep ing fitur jaringan liyane: support simultaneous kanggo loro tumpukan IP, kang pisanan ngenalaken ing K8s 1.16. Khususé, rilis anyar nggawa owah-owahan ing ngisor iki:
ing kube-proxy dileksanakake kamungkinan operasi simultan ing loro mode (IPv4 lan IPv6);
в Pod.Status.PodIPsmuncul dhukungan kanggo API mudhun (ing wektu sing padha ing /etc/hosts saiki mbutuhake host kanggo nambah alamat IPv6);
ndhukung dual tumpukan ANAK (Kubernetes IN Docker) lan kubeadm;
dianyari tes e2e.
Gambaran nggunakake dual tumpukan IPV4 / IPv6 ing KIND
Inisiatif kanggo migrasi plugin volume menyang CSI - CSI Migrasi - tekan versi beta. Fitur iki penting kanggo nerjemahake plugin panyimpenan sing wis ana (ing wit) menyang antarmuka modern (CSI, out-of-tree) ora katon kanggo pangguna pungkasan Kubernetes. Administrator kluster mung kudu ngaktifake Migrasi CSI, sawise sumber daya lan beban kerja sing ana bakal terus "mung bisa" ... nanging nggunakake driver CSI paling anyar tinimbang sing wis lawas sing kalebu ing inti Kubernetes.
Saiki, migrasi kanggo driver AWS EBS wis siyap ing versi beta (kubernetes.io/aws-ebs) lan GCE PD (kubernetes.io/gce-pd). Prakiraan kanggo fasilitas panyimpenan liyane kaya ing ngisor iki:
We ngedika bab carane "tradisional" support panyimpenan ing K8s teka CSI ing artikel iki. Lan transisi migrasi CSI menyang status beta darmabakti kanggo publikasi kapisah ing blog proyek.
Kajaba iku, fungsi penting liyane ing konteks CSI, sing asale (implementasi alpha) ing K1.17s 8, tekan status beta (yaiku diaktifake kanthi standar) ing release Kubernetes 1.12 - nggawe jepretan lan Recovery saka wong-wong mau. Antarane owah-owahan sing digawe kanggo Kubernetes Volume Snapshot ing cara kanggo rilis beta:
pamisah sidecar external-snapshotter CSI dadi rong pengontrol,
ditambahake rahasia kanggo mbusak (rahasia penghapusan) minangka anotasi kanggo isi snapshot volume,
finalis anyar (pamungkas) kanggo nyegah obyek API gambar asli saka dibusak yen ana sambungan isih.
Nalika rilis 1.17, fitur kasebut didhukung dening telung driver CSI: GCE Persistent Disk CSI Driver, Portworx CSI Driver lan NetApp Trident CSI Driver. Rincian liyane babagan implementasine lan panggunaan bisa ditemokake ing publikasi iki ing blog.
Label Panyedhiya Cloud
Label sing otomatis ditugasake menyang simpul lan volume sing digawe gumantung saka panyedhiya maya sing digunakake, wis kasedhiya ing Kubernetes minangka versi beta kanggo wektu sing suwe - wiwit diluncurake K8s 1.2 (April 2016!). Diwenehi panggunaan sing nyebar nganti suwe, pangembang mutusaké, iku wektu kanggo ngumumake fitur stabil (GA).
Mulane, kabeh padha diganti jeneng (miturut topologi):
... nanging isih kasedhiya ing jeneng lawas (kanggo kompatibilitas mundur). Nanging, kabeh administrator dianjurake kanggo ngalih menyang label saiki. Dokumentasi sing gegandhengan K8s wis dianyari.
Motivasi kanggo ngleksanakake fitur iki (miturut KAB) yaiku:
Nalika Kubernetes bisa disebarake kanthi manual, standar de facto (yen ora de jure) kanggo operasi iki yaiku nggunakake kubeadm. Piranti manajemen sistem populer kaya Terraform gumantung ing kubeadm kanggo penyebaran Kubernetes. Dandan sing direncanakake kanggo API Kluster kalebu paket sing bisa digabung kanggo bootstrap Kubernetes nganggo kubeadm lan cloud-init.
Tanpa output kabentuk, malah owah-owahan paling innocuous ing kawitan marketing bisa break Terraform, Cluster API lan piranti lunak liyane sing nggunakake asil kubeadm.
Rencana langsung kita kalebu dhukungan (ing wangun output terstruktur) kanggo printah kubeadm ing ngisor iki:
alpha certs
config images list
init
token create
token list
upgrade plan
version
Ilustrasi respon JSON kanggo printah kubeadm init -o json:
Umumé, rilis Kubernetes 1.17 ditindakake kanthi motto "Stabilitas" Iki difasilitasi kanthi kasunyatan manawa ana akeh fitur (jumlah total yaiku 14) nampa status GA. Ing antarane:
"proteksi finalizer" (Pangreksan Finalizer) kanggo load balancers (mriksa sumber Service sing cocog sadurunge mbusak sumber LoadBalancer);
optimasi kube-apiserver ing kinerja nalika nggarap macem-macem Watches ngawasi pesawat podho rupo saka obyek - ngrambah dening Nyingkiri bola serialization saka obyek padha kanggo saben watcher.
Pangowahan liyane
Dhaptar lengkap inovasi ing Kubernetes 1.17, mesthi ora diwatesi karo sing kasebut ing ndhuwur. Mangkene sawetara liyane (lan kanggo dhaptar sing luwih lengkap, deleng CHANGELOG):
owah-owahan padha kedadosan EndpointSlice API (uga saka K8s 1.16), nanging saiki solusi iki kanggo nambah kinerja / skalabilitas saka Endpoint API ora diaktifake minangka standar;
opsi anyar kanggo kubelet - --reserved-cpus - ngidini sampeyan nemtokake kanthi jelas dhaptar CPU sing dilindhungi undhang-undhang kanggo sistem kasebut;
kanggo kubectl logsdiwenehi gendéra anyar --prefix, nambahake jeneng pod lan wadhah sumber kanggo saben baris log;