Kubernetes adventure Dailymotion: paghimo sa imprastraktura sa panganod + on-premises

Kubernetes adventure Dailymotion: paghimo sa imprastraktura sa panganod + on-premises

Nota. transl.: Ang Dailymotion maoy usa sa kinadak-ang serbisyo sa pag-host sa video sa kalibotan ug busa usa ka bantogang tiggamit sa Kubernetes. Niini nga materyal, gipaambit sa arkitekto sa sistema nga si David Donchez ang mga resulta sa paghimo sa plataporma sa produksiyon sa kompanya nga gibase sa K8s, nga nagsugod sa pag-instalar sa panganod sa GKE ug natapos ingon usa ka hybrid nga solusyon, nga nagtugot alang sa mas maayo nga mga oras sa pagtubag ug pagtipig sa mga gasto sa imprastraktura.

Pagdesisyon sa Pagtukod Pag-usab sa Core API Dailymotion tulo ka tuig na ang milabay, gusto namo nga makahimo og mas episyente nga paagi sa pag-host sa mga aplikasyon ug himoon kini nga mas sayon proseso sa kalamboan ug produksyon. Alang niini nga katuyoan, nakahukom kami nga mogamit usa ka plataporma sa orkestra sa sudlanan ug natural nga gipili ang Kubernetes.

Ngano nga takus ang paghimo sa imong kaugalingon nga plataporma base sa Kubernetes?

Ang lebel sa produksiyon nga API sa wala’y oras gamit ang Google Cloud

Ting-init 2016

Tulo ka tuig ang milabay, diha-diha dayon human ang Dailymotion gipalit ni vivendi, ang among mga team sa engineering naka-focus sa usa ka global nga tumong: ang paghimo og bag-ong produkto sa Dailymotion.

Base sa among pag-analisa sa mga sudlanan, mga solusyon sa orkestra, ug sa among nangaging kasinatian, kombinsido kami nga ang Kubernetes ang husto nga pagpili. Ang ubang mga developers aduna nay pagsabot sa mga batakang konsepto ug nahibal-an kung unsaon paggamit niini, nga usa ka dako nga bentaha alang sa pagbag-o sa imprastraktura.

Gikan sa panan-aw sa imprastraktura, usa ka gamhanan ug flexible nga sistema ang gikinahanglan aron mag-host sa mga bag-ong tipo sa cloud-native nga aplikasyon. Gipili namo nga magpabilin sa panganod sa sinugdanan sa among panaw aron makatukod kami sa pinakalig-on nga plataporma nga posible sa lugar nga adunay kalinaw sa hunahuna. Nakahukom kami nga i-deploy ang among mga aplikasyon gamit ang Google Kubernetes Engine, bisan kung nahibal-an namon nga sa madugay o sa madali mobalhin kami sa among kaugalingon nga mga sentro sa datos ug magamit ang usa ka hybrid nga estratehiya.

Nganong GKE imong gipili?

Gihimo namo kini nga pagpili tungod sa teknikal nga mga rason. Dugang pa, kinahanglan nga dali nga maghatag imprastraktura nga makatubag sa mga panginahanglanon sa negosyo sa kompanya. Kami adunay pipila ka mga kinahanglanon alang sa pag-host sa mga aplikasyon, sama sa geograpikanhong pag-apod-apod, scalability ug fault tolerance.

Kubernetes adventure Dailymotion: paghimo sa imprastraktura sa panganod + on-premises
GKE clusters sa Dailymotion

Tungod kay ang Dailymotion usa ka platform sa video nga magamit sa tibuuk kalibutan, gusto gyud namon nga mapauswag ang kalidad sa serbisyo pinaagi sa pagkunhod sa oras sa paghulat (latency)... Kaniadto atong API anaa lamang sa Paris, nga suboptimal. Gusto ko nga makahimo sa pag-host sa mga aplikasyon dili lamang sa Europe, apan usab sa Asia ug USA.

Kini nga pagkasensitibo sa latency nagpasabut nga ang seryoso nga trabaho kinahanglan buhaton sa arkitektura sa network sa platform. Samtang ang kadaghanan sa mga serbisyo sa panganod nagpugos kanimo sa paghimo sa imong kaugalingon nga network sa matag rehiyon ug dayon ikonekta sila pinaagi sa usa ka VPN o usa ka matang sa pagdumala nga serbisyo, gitugotan ka sa Google Cloud nga maghimo usa ka hingpit nga madaladala nga usa ka network nga naglangkob sa tanan nga mga rehiyon sa Google. Kini usa ka dako nga dugang sa mga termino sa operasyon ug kahusayan sa sistema.

Dugang pa, ang mga serbisyo sa network ug mga balanse sa pagkarga gikan sa Google Cloud maayo kaayo nga trabaho. Gitugotan ka lang nila sa paggamit sa arbitraryong publiko nga mga adres sa IP gikan sa matag rehiyon, ug ang katingad-an nga BGP protocol nag-atiman sa nahabilin (sama sa pag-redirect sa mga tiggamit sa labing duol nga cluster). Dayag nga kung adunay kapakyasan, ang trapiko awtomatik nga moadto sa laing rehiyon nga wala’y bisan unsang pagpangilabot sa tawo.

Kubernetes adventure Dailymotion: paghimo sa imprastraktura sa panganod + on-premises
Pag-monitor sa Google Load Balancing

Ang among plataporma naghimo usab og bug-at nga paggamit sa mga GPU. Gitugotan ka sa Google Cloud nga gamiton kini nga epektibo kaayo direkta sa mga kumpol sa Kubernetes.

Niadtong panahona, ang team sa imprastraktura nag-una nga naka-focus sa legacy stack nga gipakatap sa pisikal nga mga server. Mao nga ang paggamit sa usa ka gidumala nga serbisyo (lakip ang mga Kubernetes masters) nakab-ot ang among mga kinahanglanon ug gitugotan kami nga magbansay sa mga team aron magtrabaho kauban ang mga lokal nga cluster.

Ingon usa ka sangputanan, nakasugod kami sa pagdawat sa trapiko sa produksiyon sa imprastraktura sa Google Cloud 6 lang ka bulan pagkahuman sa pagsugod sa trabaho.

Bisan pa, bisan pa sa daghang mga bentaha, ang pagtrabaho kauban ang usa ka cloud provider nalangkit sa pipila nga mga gasto, nga mahimong modaghan depende sa karga. Mao nga among gisusi pag-ayo ang matag pagdumala nga serbisyo nga among gigamit, naglaum nga ipatuman kini sa mga lugar sa umaabot. Sa pagkatinuod, ang pagpatuman sa mga lokal nga cluster nagsugod sa katapusan sa 2016 ug ang hybrid nga estratehiya gisugdan sa samang higayon.

Paglusad sa lokal nga container orchestration platform Dailymotion

Tingdagdag 2016

Sa mga kondisyon kung ang tibuuk nga stack andam na alang sa produksiyon, ug pagtrabaho sa API nagpadayon, panahon na nga magkonsentrar sa mga pungpong sa rehiyon.

Nianang panahona, ang mga tiggamit nagtan-aw og labaw sa 3 bilyon nga mga video kada bulan. Siyempre, kami adunay among kaugalingon nga halapad nga Content Delivery Network sa daghang mga tuig. Gusto namon nga pahimuslan kini nga kahimtang ug i-deploy ang mga kumpol sa Kubernetes sa naglungtad nga mga sentro sa datos.

Ang imprastraktura sa Dailymotion naglangkob sa labaw sa 2,5 ka libo nga mga server sa unom ka mga sentro sa datos. Ang tanan niini gi-configure gamit ang Saltstack. Nagsugod kami sa pag-andam sa tanan nga gikinahanglan nga mga resipe alang sa paghimo sa mga master ug worker node, ingon man usa ka etcd cluster.

Kubernetes adventure Dailymotion: paghimo sa imprastraktura sa panganod + on-premises

Bahin sa network

Ang among network hingpit nga natultolan. Ang matag server nag-anunsyo sa iyang IP sa network gamit ang Exabgp. Gikumpara namon ang daghang mga plugin sa network ug ang usa ra nga nakatagbaw sa tanan nga mga panginahanglanon (tungod sa gigamit nga pamaagi sa L3) mao Calico. Hingpit kini nga mohaum sa kasamtangan nga modelo sa imprastraktura sa network.

Tungod kay gusto namong gamiton ang tanang anaa nga mga elemento sa imprastraktura, ang unang butang nga among buhaton mao ang paghunahuna sa among home-grown network utility (gigamit sa tanang server): gamita kini aron i-advertise ang mga IP address range sa network nga adunay mga Kubernetes node. Gitugotan namo ang Calico sa pag-assign sa mga IP address sa mga pod, apan wala ug wala gihapon kini gigamit alang sa mga sesyon sa BGP sa mga kagamitan sa network. Sa tinuud, ang pag-ruta gidumala sa Exabgp, nga nag-anunsyo sa mga subnet nga gigamit sa Calico. Kini nagtugot kanato sa pagkab-ot sa bisan unsa nga pod gikan sa internal nga network (ug sa partikular gikan sa load balancers).

Giunsa naton pagdumala ang trapiko sa pagsulod

Aron i-redirect ang umaabot nga mga hangyo sa gusto nga serbisyo, nakahukom nga gamiton ang Ingress Controller tungod sa paghiusa niini sa mga kapanguhaan sa ingress sa Kubernetes.

Tulo ka tuig ang milabay, ang nginx-ingress-controller mao ang labing hamtong nga tigkontrol: Ang Nginx dugay na nga naglungtad ug nailhan tungod sa kalig-on ug pasundayag niini.

Sa among sistema, nakahukom kami nga ibutang ang mga controller sa gipahinungod nga 10-Gigabit blade server. Ang matag controller konektado sa kube-apiserver endpoint sa katugbang nga cluster. Kini nga mga server migamit usab sa Exabgp sa pag-anunsyo sa publiko o pribado nga mga adres sa IP. Ang among network topology nagtugot kanamo sa paggamit sa BGP gikan niini nga mga controllers aron sa pagruta sa tanang trapiko direkta ngadto sa mga pod nga walay paggamit sa serbisyo sama sa NodePort. Kini nga pamaagi makatabang sa paglikay sa pinahigda nga trapiko tali sa mga node ug pagpauswag sa kahusayan.

Kubernetes adventure Dailymotion: paghimo sa imprastraktura sa panganod + on-premises
Ang paglihok sa trapiko gikan sa Internet hangtod sa mga pod

Karon nga nahibal-an na namon ang among hybrid nga plataporma, mahimo na namon nga masusi ang proseso sa pagbalhin sa trapiko mismo.

Paglalin sa trapiko gikan sa Google Cloud ngadto sa Dailymotion nga imprastraktura

Tingdagdag 2018

Human sa dul-an sa duha ka tuig nga pagtukod, pagsulay, ug pag-tune, sa kataposan aduna na kitay bug-os nga Kubernetes stack nga andam na nga modawat sa pipila ka trapiko.

Kubernetes adventure Dailymotion: paghimo sa imprastraktura sa panganod + on-premises

Ang karon nga estratehiya sa pag-ruta yano ra, apan igo aron matubag ang mga panginahanglanon. Dugang pa sa mga pampublikong IP (sa Google Cloud ug Dailymotion), ang AWS Route 53 gigamit sa pagtakda sa mga polisiya ug pag-redirect sa mga tiggamit ngadto sa cluster nga atong gipili.

Kubernetes adventure Dailymotion: paghimo sa imprastraktura sa panganod + on-premises
Pananglitan nga polisiya sa pag-ruta gamit ang Ruta 53

Sa Google Cloud kini sayon ​​kay nag-ambit mi og usa ka IP sa tanang cluster ug ang user gi-redirect ngadto sa pinakaduol nga GKE cluster. Alang sa among mga pungpong lahi ang teknolohiya, tungod kay lahi ang ilang mga IP.

Atol sa paglalin, among gitinguha nga i-redirect ang mga hangyo sa rehiyon sa angay nga mga pundok ug gisusi ang mga benepisyo sa kini nga pamaagi.

Tungod kay ang among mga cluster sa GKE gi-configure aron mag-autoscale gamit ang Custom Metrics, pataas/paubos kini base sa umaabot nga trapiko.

Sa normal nga mode, ang tanan nga trapiko sa rehiyon gipunting sa lokal nga cluster, ug ang GKE nagsilbi nga reserba kung adunay mga problema (ang mga pagsusi sa kahimsog gihimo sa Ruta 53).

...

Sa umaabot, gusto namon nga hingpit nga i-automate ang mga palisiya sa pag-ruta aron makab-ot ang usa ka autonomous hybrid nga estratehiya nga padayong nagpauswag sa pagka-access sa mga tiggamit. Sa dugang nga bahin, ang mga gasto sa panganod labi nga nakunhuran ug ang mga oras sa pagtubag sa API nakunhuran pa. Kami misalig sa resulta nga cloud platform ug andam nga i-redirect ang dugang nga trapiko niini kung gikinahanglan.

PS gikan sa tighubad

Mahimong interesado ka usab sa usa pa ka bag-o nga post sa Dailymotion bahin sa Kubernetes. Gipahinungod kini sa pag-deploy sa mga aplikasyon nga adunay Helm sa daghang mga cluster sa Kubernetes ug gimantala mga usa ka bulan ang milabay.

Basaha usab sa among blog:

Source: www.habr.com

Idugang sa usa ka comment