 Kubernetes 1.11
Kubernetes 1.11 dirilis pada 
hari Rabu . Kami melanjutkan tradisi kami dan berbicara tentang perubahan paling signifikan, berdasarkan data dari 
CHANGELOG-1.11 dan berbagai masalah, menarik permintaan dan proposal desain. Apa yang baru di K8 1.11? 
Jaringan
Mari kita mulai dengan jaringan, karena pengumuman Kubernetes 1.11 menandai stabilisasi resmi 
(yaitu, transfer ke status Ketersediaan Umum) dari dua inovasi penting yang disajikan dalam rilis sebelumnya. Yang pertama adalah 
load balancing layanan di dalam cluster, berdasarkan 
IPVS (IP Virtual Server). 
Peluang ini datang dari 
Huawei yang musim semi lalu mempresentasikan kepada masyarakat hasil pekerjaannya untuk meningkatkan penyeimbangan muatan 50+ ribu layanan menggunakan IPVS, bukan iptables. Pilihan 
ini dijelaskan secara logis: “Jika iptables dibuat untuk firewall dan didasarkan pada daftar aturan di kernel, maka IPVS dirancang untuk load balancing dan didasarkan pada tabel hash di kernel; selain itu, IPVS mendukung algoritma penyeimbangan beban lebih maju daripada iptables, serta sejumlah fitur berguna lainnya (misalnya, pemeriksaan status, coba lagi, dll.). "
 Geser dari Scaling Kubernetes Huawei ke Mendukung presentasi 50.000 Layanan di KubeCon Europe 2017
Geser dari Scaling Kubernetes Huawei ke Mendukung presentasi 50.000 Layanan di KubeCon Europe 2017Apa yang dipraktikkannya? “Bandwidth jaringan yang lebih baik, lebih sedikit latensi perangkat lunak 
[berbicara tentang waktu yang dibutuhkan untuk titik akhir baru untuk ditambahkan ke layanan - kira - kira. perev. ] dan skalabilitas yang lebih baik untuk load balancer di cluster. " Versi alpha dari mode IPVS untuk kube-proxy muncul di 
Kubernetes 1.8 dan telah berkembang menjadi stabil dengan rilis saat ini 1.11: meskipun secara default masih tidak diaktifkan, sudah resmi siap untuk melayani lalu lintas di kluster produksi.
Fitur matang kedua adalah 
CoreDNS sebagai server DNS yang digunakan oleh kluster Kubernetes. Kami menulis lebih banyak tentang solusi ini dalam tinjauan 
terpisah , dan singkatnya, ini adalah server DNS yang fleksibel dan mudah diperluas, awalnya didasarkan pada server web 
Caddy , yang menjadi penerus 
SkyDNS (omong-omong, kube-dns sendiri juga berdasarkan pada itu digantikan oleh CoreDNS) , ditulis dalam Go dan berfokus pada dunia cloud (aplikasi cloud). CoreDNS yang patut dicatat lainnya adalah kenyataan bahwa itu tampaknya merupakan satu-satunya file yang dapat dieksekusi dan satu-satunya proses dalam sistem. Sekarang ini bukan hanya opsi DNS lain untuk kluster Kubernetes, tetapi juga opsi default untuk 
kubeadm . Instruksi untuk menggunakan CoreDNS di Kubernet tersedia di 
sini (dan untuk Cluster Federation, di 
sini ).
Di antara pembaruan lainnya di "dunia" jaringan Kubernetes:
- dalam NetworkPolicies sekarang mungkin untuk menentukan subas spesifik di ruang nama lain menggunakan namespaceSelectordanpodSelector;
- layanan sekarang dapat mendengarkan pada port host yang sama pada antarmuka yang berbeda (ditentukan dalam --nodeport-addresses);
- memperbaiki bug yang disebabkan oleh Kubelet saat menggunakan --node-ipberhenti melaporkanExternalDNS,InternalDNS, danExternalIP.
Fasilitas penyimpanan
Diperkenalkan di 
Kubernetes 1.9 fitur perlindungan terhadap penghapusan PVC ( 
PersistentVolumeClaims ) yang digunakan oleh semua pod dan PV ( 
PersistentVolumes ) yang diikat ke PVC, kemudian 
(dalam K8 1.10) disebut 
StorageProtection , dinyatakan stabil.
Kemampuan untuk mengubah ukuran volume (PV) setelah memulai ulang tungku telah diterjemahkan ke dalam status beta, dan dalam versi alfa, 
mengubah ukuran volume secara real time telah tersedia, mis. tanpa perlu me-reboot perapian.
Untuk mendukung AWS EBS dan GCE PD, batas untuk jumlah volume maksimum yang mungkin terhubung ke host ditingkatkan, dan di plug-in AWS EBS, Azure Disk, GCE PD dan Ceph RBD 
menerapkan dukungan untuk penyediaan volume dinamis perangkat blok mentah. Untuk volume AWS EBS 
, kemampuan untuk menggunakan pod dalam mode 
ReadOnly juga telah 
ditambahkan .
Selain itu, Kubernetes 1.11 memperkenalkan versi alfa 
dukungan untuk batas dinamis pada volume tergantung pada jenis node, serta dukungan API untuk volume blok di driver penyimpanan eksternal CSI ( 
Container Storage Interface - muncul di 
Kubernetes 1.9 ). Selain itu, CSI 
menerapkan integrasi dengan 
mesin pendaftaran plugin 
Kubelet baru.
Node gugus
5 perubahan besar teratas dari rilis Kubernetes 1.11 juga termasuk 
transfer ke status versi beta dari konfigurasi dinamis Kubelet , yang pertama kali muncul di 
K8 1.8 dan memerlukan beberapa perubahan (Anda dapat melacaknya di 
tiket Konfigurasi Dynamic Kubelet asli ). Fitur ini memungkinkan meluncurkan konfigurasi 
Kubelet baru pada cluster yang aktif dan berfungsi (berlawanan dengan situasi sebelumnya, ketika pengaturan untuk 
Kubelet dilewatkan melalui bendera baris perintah). Untuk menggunakannya, Anda harus mengatur opsi 
--dynamic-config-dir (ketika 
Kubelet mulai).
Proyek 
cri-tools telah dinyatakan stabil. Ini menawarkan alat untuk administrator sistem yang memungkinkan Anda untuk menganalisis dan men-debug operasi node dalam produksi, terlepas dari runtime wadah yang digunakan. Paket-paket dengan itu ( 
crictl ) sekarang 
dikirim dengan sisa utilitas 
kubeadm (dalam format DEB dan RPM). 
Kami menulis lebih banyak tentang tujuan dan kemampuan crictl dalam artikel baru - baru ini tentang integrasi contenterd dengan Kubernetes, menggantikan Docker "tradisional". Contoh penggunaan
Contoh penggunaan crictl dari dokumentasi proyekDukungan eksperimental 
untuk sysctls di Linux telah 
dikonversi ke status beta (diaktifkan secara default menggunakan flag fitur 
Sysctls ). 
PodSecurityPolicy dan 
Pod memiliki bidang khusus untuk menentukan / mengendalikan 
sistem .
Juga di 
ResourceQuota menjadi mungkin untuk menentukan kelas prioritas (dalam hal ini, kuota hanya berlaku untuk pod dengan kelas ini - lihat 
desain-proposal untuk detail), dan kondisi 
ContainersReady telah 
ditambahkan ke status pod.
Hak dan Keamanan
Fitur 
Agregasi ClusterRole yang diperkenalkan di K8s 1.9, yang memungkinkan Anda untuk menambahkan 
izin ke peran yang ada (termasuk yang dibuat secara otomatis), dinyatakan stabil tanpa menerima perubahan apa pun. Peran terpisah untuk cluster-autoscaler ( 
ClusterRole ) juga 
telah ditambahkan - ini digunakan sebagai ganti sistem ( 
cluster-admin ).
Sejumlah pekerjaan telah dilakukan untuk transparansi apa (dan mengapa) yang terjadi di dalam cluster. Secara khusus, informasi RBAC dalam log audit sekarang 
berisi anotasi tambahan untuk acara :
- authorization.k8s.io/decision-- allowatau- forbid;
- authorization.k8s.io/reason- alasan yang bisa dibaca manusia untuk keputusan tersebut.
Juga di log audit 
ditambahkan informasi tentang akses dari 
PodSecurityPolicy dalam bentuk anotasi 
podsecuritypolicy.admission.k8s.io/admit-policy dan 
podsecuritypolicy.admission.k8s.io/validate-policy (kebijakan apa yang diizinkan di bawah ini?).
Utilitas Konsol
Banyak (walaupun tidak begitu signifikan, tetapi berguna!) Perbaikan disajikan dalam alat Kubernetes CLI:
- kubectl waitbaru- kubectl waitsaat ketika sumber daya yang ditentukan dihapus atau kondisi tertentu tercapai.
- kubectl api-resourcesbaru untuk melihat sumber daya:
 
  
- Dukungan penyelesaian otomatis untuk kubectl cp.
- Fungsi base64decode telah tersedia di base64decodeGo, nama yang berbicara sendiri.
- Menambahkan dukungan untuk flag --dry-rundikubectl patch.
- --match-server-versionmenjadi global -- kubectl versionjuga akan memperhitungkannya.
- kubectl config view --minifysekarang mempertimbangkan flag- contextglobal.
- kubectl apply --prunesumber daya- kubectl apply --pruneditambahkan ke- kubectl apply --prune- CronJob.
Perubahan lainnya
- Penjadwal ( kube-scheduler ) mempelajari cara merencanakan pod di DaemonSet(versi alpha).
- Dimungkinkan untuk menentukan grup pengguna sistem tertentu ( RunAsGroup) untuk kontainer di perapian (versi alpha).
- Kemampuan untuk menghapus anak yatim (hapus anak yatim ) untuk CustomResources.
- Peningkatan dalam dukungan API Kubernetes untuk perapian dan kontainer di Windows - menambahkan metrik untuk perapian, wadah dan sistem file dengan log, konteks scurity run_as_user, volume konstan lokal dan fstype untuk drive Azure.
- Azure menambahkan dukungan untuk penyeimbang beban SKU standar dan IP publik.
Kompatibilitas
- Versi etcd yang didukung adalah 3.2.18 (Kubernetes 1.10 adalah 3.1.12).
- Versi terverifikasi Docker - dari 1.11.2 hingga 1.13.1 dan 17.03.x (belum berubah sejak rilis K8 1.10).
- Versi Go adalah 1.10.2 (bukan 1.9.3), minimum yang didukung adalah 1.9.1.
- Versi CNI adalah 0.6.0.
- Versi CSI adalah 0.3.0 (bukan 0.2.0).
PS
Baca juga di blog kami: