Petualangan Kubernetes Dailymotion: nyiptakeun infrastruktur dina méga + di tempat

Petualangan Kubernetes Dailymotion: nyiptakeun infrastruktur dina méga + di tempat

Catetan. narjamahkeun.: Dailymotion mangrupakeun salah sahiji layanan hosting video pangbadagna di dunya sahingga pamaké Kubernetes kasohor. Dina bahan ieu, arsiték sistem David Donchez ngabagi hasil nyiptakeun platform produksi perusahaan dumasar kana K8s, anu dimimitian ku pamasangan awan di GKE sareng ditungtungan salaku solusi hibrida, anu ngamungkinkeun waktos réspon anu langkung saé sareng ngahémat biaya infrastruktur.

Mutuskeun pikeun ngawangun deui inti API Dailymotion tilu taun ka tukang, urang hayang ngamekarkeun cara leuwih efisien keur host aplikasi tur ngagampangkeun prosés dina pangwangunan jeung produksi. Pikeun tujuan ieu, kami mutuskeun pikeun ngagunakeun platform orkestrasi wadah sareng sacara alami milih Kubernetes.

Naha éta patut ngawangun platform anjeun sorangan dumasar kana Kubernetes?

API tingkat produksi dina waktu anu singget ngagunakeun Google Cloud

Usum panas 2016

Tilu taun ka tukang, langsung saatos Dailymotion dibeuli ku Vivendi, tim rékayasa urang museurkeun kana hiji tujuan global: nyieun produk Dailymotion lengkep anyar.

Dumasar kana analisa wadah, solusi orkestrasi, sareng pangalaman baheula, kami yakin yén Kubernetes mangrupikeun pilihan anu pas. Sababaraha pamekar parantos ngagaduhan pamahaman kana konsép dasar sareng terang kumaha ngagunakeunana, anu mangrupikeun kauntungan anu ageung pikeun transformasi infrastruktur.

Tina sudut pandang infrastruktur, sistem anu kuat sareng fléksibel diperyogikeun pikeun janten host jinis aplikasi awan-asli anyar. Kami milih tetep dina méga dina awal perjalanan urang supados urang tiasa ngawangun platform on-premis anu paling kuat kalayan katenangan pikiran. Kami mutuskeun pikeun nyebarkeun aplikasi kami nganggo Google Kubernetes Engine, sanaos urang terang yén engké atanapi engké urang bakal ngalih ka pusat data sorangan sareng nerapkeun strategi hibrid.

Naha anjeun milih GKE?

Kami ngadamel pilihan ieu kusabab alesan téknis. Salaku tambahan, éta kedah gancang nyayogikeun infrastruktur anu nyumponan kabutuhan bisnis perusahaan. Kami ngagaduhan sababaraha syarat pikeun aplikasi hosting, sapertos distribusi geografis, skalabilitas sareng kasabaran kasalahan.

Petualangan Kubernetes Dailymotion: nyiptakeun infrastruktur dina méga + di tempat
GKE klaster dina Dailymotion

Kusabab Dailymotion mangrupikeun platform pidéo anu sayogi di sakuliah dunya, kami leres-leres hoyong ningkatkeun kualitas jasa ku ngirangan waktos ngantosan (latency). saméméhna API urang éta ngan sadia di Paris, nu éta suboptimal. Abdi hoyong tiasa janten host aplikasi sanés ngan ukur di Éropa, tapi ogé di Asia sareng AS.

Sensitipitas kana latency ieu hartosna yén padamelan serius kedah dilakukeun dina arsitéktur jaringan platform. Nalika sabagéan ageung jasa awan maksa anjeun nyiptakeun jaringan anjeun nyalira di unggal daérah teras sambungkeunana ngalangkungan VPN atanapi sababaraha jinis jasa anu diurus, Google Cloud ngamungkinkeun anjeun nyiptakeun jaringan tunggal anu tiasa dirobih anu nutupan sadaya daérah Google. Ieu mangrupakeun tambah badag dina watesan operasi sarta efisiensi sistem.

Salaku tambahan, jasa jaringan sareng penyeimbang beban ti Google Cloud ngalakukeun padamelan anu saé. Éta ngan saukur ngidinan Anjeun pikeun make alamat IP umum sawenang ti unggal wewengkon, sarta protokol BGP éndah ngurus sésana (ie Mindahkeun pamaké ka klaster pangcaketna). Jelas, upami aya kagagalan, lalu lintas bakal otomatis angkat ka daérah sanés tanpa campur tangan manusa.

Petualangan Kubernetes Dailymotion: nyiptakeun infrastruktur dina méga + di tempat
Ngawaskeun Google Load Balancing

Platform kami ogé ngagunakeun GPU anu beurat. Google Cloud ngamungkinkeun anjeun ngagunakeunana sacara efektif sacara langsung dina klaster Kubernetes.

Dina waktos éta, tim infrastruktur utamina difokuskeun kana tumpukan warisan anu dipasang dina server fisik. Éta sababna ngagunakeun jasa anu diurus (kalebet master Kubernetes) nyumponan sarat kami sareng ngamungkinkeun urang ngalatih tim pikeun damel sareng klaster lokal.

Hasilna, urang tiasa ngamimitian nampi lalu lintas produksi dina infrastruktur Google Cloud ngan 6 bulan saatos ngamimitian damel.

Nanging, sanaos sababaraha kaunggulan, damel sareng panyadia awan pakait sareng biaya anu tangtu, anu tiasa ningkat gumantung kana beban. Éta sababna urang sacara saksama nganalisa unggal jasa anu diurus anu kami anggo, ngarep-arep tiasa nerapkeunana di tempat di hareup. Nyatana, palaksanaan klaster lokal dimimitian dina ahir 2016 sareng strategi hibrida diprakarsai dina waktos anu sami.

Peluncuran platform orkestrasi wadah lokal Dailymotion

gugur 2016

Dina kaayaan nalika sakabéh tumpukan éta siap pikeun produksi, sarta dianggo dina API dituluykeun, éta waktuna pikeun konsentrasi dina klaster régional.

Dina waktos éta, pangguna ningali langkung ti 3 milyar pidéo unggal bulan. Tangtosna, urang parantos gaduh Jaringan Pangiriman Kandungan éksténsif salami mangtaun-taun. Kami hoyong ngamangpaatkeun kaayaan ieu sareng nyebarkeun klaster Kubernetes di pusat data anu tos aya.

Infrastruktur Dailymotion diwangun ku langkung ti 2,5 rébu server dina genep pusat data. Sadayana dikonpigurasi nganggo Saltstack. Urang mimitian nyiapkeun sagala resep diperlukeun pikeun nyieun master na worker titik, kitu ogé hiji klaster jsb.

Petualangan Kubernetes Dailymotion: nyiptakeun infrastruktur dina méga + di tempat

Bagian jaringan

Jaringan kami parantos dialihkeun. Unggal server advertises IP na dina jaringan ngagunakeun Exabgp. Urang dibandingkeun sababaraha plugins jaringan sarta ngan hiji nu nyugemakeun sagala kaperluan (alatan pendekatan L3 dipaké) éta Calico. Cocog pisan kana modél infrastruktur jaringan anu tos aya.

Kusabab urang hoyong nganggo sadaya elemen infrastruktur anu aya, hal anu kahiji anu kedah urang laksanakeun nyaéta terangkeun utilitas jaringan asal bumi urang (dipaké dina sadaya server): nganggo éta pikeun ngiklankeun rentang alamat IP dina jaringan sareng titik Kubernetes. Urang diwenangkeun Calico napelkeun alamat IP ka pods, tapi teu jeung masih teu make eta pikeun sesi BGP on alat jaringan. Kanyataanna, routing diurus ku Exabgp, anu ngaiklankeun subnet anu dianggo ku Calico. Hal ieu ngamungkinkeun urang pikeun ngahontal sagala pod ti jaringan internal (sarta hususna ti load balancers).

Kumaha urang ngatur lalulintas ingress

Pikeun alihan pamundut anu asup ka jasa anu dipikahoyong, éta diputuskeun ngagunakeun Ingress Controller kusabab integrasina sareng sumber daya ingress Kubernetes.

Tilu taun ka pengker, nginx-ingress-controller mangrupikeun pangontrol anu paling dewasa: Nginx parantos lami lami sareng dipikanyaho pikeun stabilitas sareng kinerjana.

Dina sistem kami, kami mutuskeun pikeun nempatkeun pangendali dina server sabeulah 10-Gigabit khusus. Unggal controller disambungkeun ka titik tungtung kube-apiserver tina klaster pakait. Server ieu ogé nganggo Exabgp pikeun ngiklankeun alamat IP umum atanapi swasta. Topologi jaringan kami ngamungkinkeun urang ngagunakeun BGP ti Controllers ieu pikeun jalur sadaya lalulintas langsung ka pods tanpa ngagunakeun layanan kawas NodePort. Pendekatan ieu ngabantosan ngahindarkeun lalu lintas horizontal antara titik sareng ningkatkeun efisiensi.

Petualangan Kubernetes Dailymotion: nyiptakeun infrastruktur dina méga + di tempat
Gerakan lalu lintas tina Internét ka pods

Ayeuna urang ngartos platform hibrid urang, urang tiasa delve deeper kana prosés migrasi lalulintas sorangan.

Migrasi lalu lintas ti Google Cloud ka infrastruktur Dailymotion

gugur 2018

Sanggeus ampir dua taun ngawangun, nguji, sarta tuning, urang tungtungna boga tumpukan Kubernetes pinuh siap nampa sababaraha lalulintas.

Petualangan Kubernetes Dailymotion: nyiptakeun infrastruktur dina méga + di tempat

Strategi routing ayeuna cukup basajan, tapi cukup pikeun minuhan kabutuhan. Salian IP umum (dina Google Cloud sareng Dailymotion), AWS Route 53 dianggo pikeun nyetél kawijakan sareng alihan pangguna ka gugusan pilihan urang.

Petualangan Kubernetes Dailymotion: nyiptakeun infrastruktur dina méga + di tempat
Conto kawijakan routing nganggo Rute 53

Kalayan Google Cloud ieu gampang nalika urang ngabagi IP tunggal dina sadaya klaster sareng pangguna dialihkeun ka klaster GKE anu pangcaketna. Pikeun klaster urang téknologi béda, sabab IP maranéhanana béda.

Salila migrasi, urang narékahan pikeun alihan requests régional ka klaster luyu jeung dievaluasi mangpaat pendekatan ieu.

Kusabab klaster GKE urang dikonpigurasi ka autoscale maké Custom Metrics, aranjeunna skala luhur / handap dumasar lalulintas asup.

Dina modeu normal, sadaya lalulintas régional diarahkeun ka klaster lokal, sarta GKE boga fungsi minangka cagar bisi masalah (cék kaséhatan dilumangsungkeun ku Rute 53).

...

Dina mangsa nu bakal datang, urang hayang pinuh ngajadikeun otomatis kawijakan routing pikeun ngahontal hiji strategi hibrid otonom nu terus ngaronjatkeun diakses pikeun pamaké. Di sisi tambah, biaya awan parantos dikirangan sacara signifikan sareng waktos réspon API malah parantos dikirangan. Kami percanten ka platform awan anu dihasilkeun sareng siap alihan langkung seueur lalu lintas ka éta upami diperyogikeun.

PS ti penerjemah

Anjeun tiasa ogé resep kana postingan Dailymotion panganyarna ngeunaan Kubernetes. Hal ieu dedicated ka deployment aplikasi kalawan Helm on loba klaster Kubernetes na ieu diterbitkeun kira-kira sabulan katukang.

Baca ogé dina blog urang:

sumber: www.habr.com

Tambahkeun komentar