Penilaian kinerja CNI pikeun Kubernetes dina jaringan 10G (Agustus 2020)

Penilaian kinerja CNI pikeun Kubernetes dina jaringan 10G (Agustus 2020)

TL; DR: Kabéh CNIs jalan sakumaha sakuduna, iwal Kube-Router na Kube-OVN, Calico, iwal deteksi MTU otomatis, nu pangalusna.

Pembaruan artikel tina cék kuring baheula (2018 и 2019), dina waktos tés kuring nganggo Kubernetes 1.19 dina Ubuntu 18.04 sareng CNI anu diropéa dina Agustus 2020.

Sateuacan urang teuleum kana métrik ...

Naon anu anyar saprak April 2019?

  • Tiasa nguji kluster anjeun nyalira: Anjeun tiasa ngajalankeun tés dina kluster anjeun nyalira nganggo alat kami Kubernetes Network Patokan: knb
  • anggota anyar geus mucunghul
  • Skenario Anyar: Cék ayeuna ngajalankeun tes kinerja jaringan "Pod-to-Pod", sareng skrip "Pod-to-Service" anyar parantos ditambahkeun anu ngajalankeun tés langkung caket kana kaayaan dunya nyata. Dina prakna, Pod anjeun sareng API tiasa dianggo sareng dasarna salaku jasa, sareng henteu ngalangkungan alamat ip Pod (tangtosna urang pariksa TCP sareng UDP pikeun duanana skenario).
  • Konsumsi sumberdaya: unggal tés ayeuna gaduh perbandingan sumberdaya sorangan
  • Ngahapus Tés Aplikasi: Kami henteu deui ngalakukeun tés HTTP, FTP sareng SCP sabab kolaborasi anu suksés sareng komunitas sareng pangropéa CNI parantos mendakan jurang antara hasil iperf tina hasil TCP sareng curl kusabab telat dina ngamimitian CNI (sababaraha detik mimiti Pod. ngamimitian, nu teu has dina kaayaan nyata).
  • Sumber terbuka: sadaya sumber tés (naskah, setélan yml sareng data "atah" asli) sayogi di dieu

Protokol Uji Rujukan

Protokol dijelaskeun sacara rinci di dieuPunten dicatet yén tulisan ieu ngeunaan Ubuntu 18.04 sareng kernel standar.

Milih hiji CNI pikeun Assessment

Uji ieu ditujukeun pikeun ngabandingkeun CNI anu dikonpigurasi sareng hiji file yaml (ku kituna, sadaya anu dipasang ku skrip, sapertos VPP sareng anu sanésna, henteu kalebet).

CNI kami anu dipilih pikeun ngabandingkeun:

  • Antrea v.0.9.1
  • Calico v3.16
  • Terusan v3.16 (jaringan flanel + Kabijakan Jaringan Calico)
  • Cilium 1.8.2
  • Flanel 0.12.0
  • Kube-router panganyarna (2020–08–25)
  • WeaveNet 2.7.0

Ngonpigurasikeun MTU pikeun CNI

Anu mimiti, urang pariksa dampak deteksi MTU otomatis dina kinerja TCP:

Penilaian kinerja CNI pikeun Kubernetes dina jaringan 10G (Agustus 2020)

Dampak MTU on TCP Performance

Jurang anu langkung ageung kapanggih nalika nganggo UDP:

Penilaian kinerja CNI pikeun Kubernetes dina jaringan 10G (Agustus 2020)
Dampak MTU on Performance UDP

Dibikeun dampak kinerja badag wangsit dina tés, urang hoyong ngirim surat harepan ka sadaya maintainers CNI: mangga tambahkeun deteksi MTU otomatis ka CNI. Anjeun bakal nyalametkeun anak ucing, unicorns komo cutest hiji: nu Devop saeutik.

Nanging, upami anjeun kedah nganggo CNI tanpa dukungan pikeun deteksi MTU otomatis, anjeun tiasa ngonpigurasikeunana sacara manual pikeun kéngingkeun kinerja. Punten dicatet yén ieu manglaku ka Calico, Canal sareng WeaveNet.

Penilaian kinerja CNI pikeun Kubernetes dina jaringan 10G (Agustus 2020)
Pamundut leutik kuring ka CNI anu ngiringan...

Uji CNI: Data Atah

Dina bagian ieu, urang bakal ngabandingkeun CNI jeung MTU bener (ditangtukeun otomatis atawa diatur sacara manual). Tujuan utama di dieu nyaéta pikeun nunjukkeun data atah dina grafik.

Legenda warna:

  • abu - sampel (nyaéta beusi bulistir)
  • héjo - rubakpita luhur 9500 Mbps
  • konéng - rubakpita luhur 9000 Mbps
  • jeruk - rubakpita luhur 8000 Mbps
  • beureum - rubakpita handap 8000 Mbps
  • biru - nétral (teu aya hubunganana sareng rubakpita)

Konsumsi sumberdaya tanpa beban

Anu mimiti, pariksa konsumsi sumberdaya nalika klaster "saré".

Penilaian kinerja CNI pikeun Kubernetes dina jaringan 10G (Agustus 2020)
Konsumsi sumberdaya tanpa beban

Pod-to-Pod

Skenario ieu nganggap yén klien Pod nyambung langsung ka server Pod nganggo alamat IP na.

Penilaian kinerja CNI pikeun Kubernetes dina jaringan 10G (Agustus 2020)
Skenario Pod-to-Pod

TCP

Hasil TCP Pod-to-Pod sareng konsumsi sumber daya anu cocog:

Penilaian kinerja CNI pikeun Kubernetes dina jaringan 10G (Agustus 2020)

Penilaian kinerja CNI pikeun Kubernetes dina jaringan 10G (Agustus 2020)

UDP

Hasil UDP Pod-to-Pod sareng konsumsi sumber daya anu cocog:

Penilaian kinerja CNI pikeun Kubernetes dina jaringan 10G (Agustus 2020)

Penilaian kinerja CNI pikeun Kubernetes dina jaringan 10G (Agustus 2020)

Pod-to-Service

Bagian ieu relevan pikeun kasus pamakéan nyata, klien Pod nyambung ka server Pod via layanan ClusterIP.

Penilaian kinerja CNI pikeun Kubernetes dina jaringan 10G (Agustus 2020)
Skrip Pod-to-Service

TCP

Hasil TCP Pod-to-Service sareng konsumsi sumber daya anu cocog:

Penilaian kinerja CNI pikeun Kubernetes dina jaringan 10G (Agustus 2020)

Penilaian kinerja CNI pikeun Kubernetes dina jaringan 10G (Agustus 2020)

UDP

Hasil UDP Pod-to-Service sareng konsumsi sumber daya anu cocog:

Penilaian kinerja CNI pikeun Kubernetes dina jaringan 10G (Agustus 2020)

Penilaian kinerja CNI pikeun Kubernetes dina jaringan 10G (Agustus 2020)

rojongan kawijakan jaringan

Di antara sadayana di luhur, ngan hiji anu henteu ngadukung politik nyaéta Flanel. Sadaya anu sanésna leres ngalaksanakeun kawijakan jaringan, kalebet inbound sareng outbound. Sae pisan!

énkripsi CNI

Diantara CNI anu dipariksa aya anu tiasa énkripsi bursa jaringan antara Pods:

  • Antrea ngagunakeun IPsec
  • Calico maké wireguard
  • Cilium ngagunakeun IPsec
  • WeaveNet ngagunakeun IPsec

Bandwidth

Kusabab aya sakedik CNI anu tinggaleun, hayu urang nempatkeun sadaya skénario kana hiji grafik:

Penilaian kinerja CNI pikeun Kubernetes dina jaringan 10G (Agustus 2020)

Konsumsi sumberdaya

Dina bagian ieu, urang bakal meunteun sumber daya anu dianggo nalika ngolah komunikasi Pod-to-Pod dina TCP sareng UDP. Teu aya gunana pikeun ngagambar grafik Pod-to-Service sabab henteu masihan inpormasi tambahan.

Penilaian kinerja CNI pikeun Kubernetes dina jaringan 10G (Agustus 2020)

Penilaian kinerja CNI pikeun Kubernetes dina jaringan 10G (Agustus 2020)

Putting eta sadayana babarengan

Hayu urang cobaan malikan sadaya grafik, kami ngenalkeun subyektivitas saeutik di dieu, ngaganti nilai sabenerna ku kecap "vwry gancang", "low", jsb.

Penilaian kinerja CNI pikeun Kubernetes dina jaringan 10G (Agustus 2020)

Kacindekan jeung kacindekan kuring

Ieu rada subjektif, saprak kuring keur conveying interpretasi sorangan hasil.

Kami bungah yén CNIs anyar mucunghul, Antrea dipigawé ogé, loba fungsi anu dilaksanakeun malah dina versi mimiti: deteksi MTU otomatis, enkripsi sarta gampang instalasi.

Lamun urang ngabandingkeun kinerja, sadayana CNIs jalan ogé, iwal Kube-OVN na Kube-Router. Kube-Router ogé henteu tiasa ngadeteksi MTU, kuring henteu mendakan cara pikeun ngonpigurasikeunana dimana waé dina dokuméntasi (di dieu pamundut ngeunaan topik ieu dibuka).

Dina watesan konsumsi sumberdaya, Cilium masih ngagunakeun leuwih RAM ti batur, tapi produsén jelas nargétkeun klaster badag, nu jelas teu sarua jeung test dina klaster tilu titik. Kube-OVN ogé meakeun loba CPU jeung RAM sumberdaya, tapi mangrupakeun CNI ngora dumasar kana Open vSwitch (kawas Antrea, eta ngalakukeun hadé tur meakeun kirang).

Sarerea iwal Flannel boga kawijakan jaringan. Éta kamungkinan pisan yén anjeunna moal pernah ngadukung aranjeunna, sabab tujuanna langkung saderhana tibatan turnip kukus: langkung hampang, langkung saé.

Ogé, diantara hal séjén, kinerja enkripsi luar biasa. Calico mangrupikeun salah sahiji CNI pangkolotna, tapi énkripsi ngan ukur ditambah sababaraha minggu ka tukang. Aranjeunna milih wireguard tinimbang IPsec, sarta ngan saukur nempatkeun, gawéna hébat sarta endah, lengkep eclipsing CNIs séjén di ieu bagian tina nguji. Tangtosna, konsumsi sumberdaya naek alatan enkripsi, tapi throughput kahontal patut eta (Calico némbongkeun pamutahiran sixfold dina test enkripsi dibandingkeun Cilium, nu rengking kadua). Leuwih ti éta, anjeun tiasa ngaktipkeun wireguard iraha wae sanggeus anjeun nyebarkeun Calico ka klaster, jeung anjeun ogé tiasa nganonaktipkeun eta pikeun waktu anu singget atawa permanén lamun hayang. Ieu incredibly merenah, sanajan! Kami ngingetkeun yén Calico ayeuna henteu ngadeteksi MTU sacara otomatis (fitur ieu direncanakeun pikeun versi anu bakal datang), janten pastikeun pikeun ngonpigurasikeun MTU upami jaringan anjeun ngadukung Jumbo Frames (MTU 9000).

Diantara hal séjén, dicatet yén Cilium bisa encrypt lalulintas antara titik klaster (teu ngan antara Pods), nu bisa jadi pohara penting pikeun titik klaster umum.

Salaku kacindekan, kuring nyarankeun kasus panggunaan di handap ieu:

  • Peryogi CNI pikeun klaster leutik pisan OR Abdi henteu peryogi kaamanan: gawé bareng Flannel, CNI paling hampang sareng paling stabil (anjeunna ogé salah sahiji anu pangkolotna, numutkeun legenda anjeunna diciptakeun ku Homo Kubernautus atanapi Homo Contaitorus.). Anjeun oge bisa jadi kabetot dina proyék paling akalna k3s, cék!
  • Peryogi CNI pikeun klaster biasa: Calico - pilihan Anjeun, tapi ulah poho pikeun ngonpigurasikeun MTU lamun diperlukeun. Anjeun tiasa sacara gampil sareng alami maén sareng kawijakan jaringan, ngaktipkeun sareng mareuman enkripsi, jsb.
  • Peryogi CNI pikeun (pisan) klaster skala ageung: Nya, tés henteu nunjukkeun paripolah klaster ageung, kuring bakal bungah ngalaksanakeun tés, tapi urang henteu ngagaduhan ratusan server anu gaduh sambungan 10Gbps. Janten pilihan pangsaéna nyaéta ngajalankeun tés anu dirobih dina titik anjeun, sahenteuna sareng Calico sareng Cilium.

sumber: www.habr.com

Tambahkeun komentar