Kubernetes sarguzashtlari Dailymotion: bulutlarda + mahalliy infratuzilmani yaratish

Kubernetes sarguzashtlari Dailymotion: bulutlarda + mahalliy infratuzilmani yaratish

Eslatma. tarjima.: Dailymotion dunyodagi eng yirik videoxosting xizmatlaridan biri va shuning uchun Kubernetesning taniqli foydalanuvchisidir. Ushbu materialda tizim arxitektori Devid Donchez kompaniyaning K8s asosidagi ishlab chiqarish platformasini yaratish natijalari bilan o'rtoqlashadi, u GKE-da bulutli o'rnatish bilan boshlangan va gibrid yechim sifatida yakunlangan, bu javob vaqtini yaxshilash va infratuzilma xarajatlarini tejash imkonini berdi.

Core API-ni qayta tiklashga qaror qilish Dailymotion uch yil oldin biz ilovalarni joylashtirishning yanada samarali usulini ishlab chiqish va uni osonlashtirishni xohladik ishlab chiqish va ishlab chiqarishdagi jarayonlar. Shu maqsadda biz konteyner orkestr platformasidan foydalanishga qaror qildik va tabiiy ravishda Kubernetesni tanladik.

Nega Kubernetes asosida o'z platformangizni yaratishga arziydi?

Google Cloud yordamida qisqa vaqt ichida ishlab chiqarish darajasidagi API

2016 yil yozi

Uch yil oldin, Dailymotion tomonidan sotib olingandan so'ng darhol Vivendi, bizning muhandislik guruhlarimiz bitta global maqsadga qaratilgan: mutlaqo yangi Dailymotion mahsulotini yaratish.

Konteynerlar, orkestratsiya echimlari va o'tmishdagi tajribamiz tahliliga asoslanib, biz Kubernetes to'g'ri tanlov ekanligiga aminmiz. Ba'zi ishlab chiquvchilar allaqachon asosiy tushunchalarni tushunishgan va undan qanday foydalanishni bilishgan, bu infratuzilmani o'zgartirish uchun katta afzallik edi.

Infratuzilma nuqtai nazaridan, bulutli mahalliy ilovalarning yangi turlarini joylashtirish uchun kuchli va moslashuvchan tizim talab qilindi. Sayohatimizning boshida biz bulutda qolishni tanladik, shunda biz xotirjamlik bilan mumkin bo'lgan eng mustahkam mahalliy platformani qurishimiz mumkin edi. Biz ilovalarimizni Google Kubernetes Engine yordamida joylashtirishga qaror qildik, garchi ertami-kechmi o‘z ma’lumotlar markazimizga o‘tishimizni va gibrid strategiyani qo‘llashimizni bilardik.

Nega GKE ni tanladingiz?

Biz bu tanlovni asosan texnik sabablarga ko'ra qildik. Bundan tashqari, kompaniyaning biznes ehtiyojlariga javob beradigan infratuzilmani tezda ta'minlash kerak edi. Bizda geografik taqsimot, masshtablilik va xatolarga chidamlilik kabi xosting ilovalari uchun ba'zi talablar bor edi.

Kubernetes sarguzashtlari Dailymotion: bulutlarda + mahalliy infratuzilmani yaratish
Dailymotion-dagi GKE klasterlari

Dailymotion butun dunyo bo'ylab mavjud video platforma bo'lgani uchun biz kutish vaqtini qisqartirish orqali xizmat sifatini yaxshilashni juda xohladik. (kechikish). Avvalroq bizning API faqat Parijda mavjud edi, bu suboptimal edi. Men nafaqat Evropada, balki Osiyo va AQShda ilovalarni joylashtirish imkoniyatiga ega bo'lishni xohlardim.

Kechikishning bunday sezgirligi platformaning tarmoq arxitekturasida jiddiy ish qilish kerakligini anglatardi. Ko'pgina bulutli xizmatlar sizni har bir mintaqada o'z tarmog'ingizni yaratishga va keyin ularni VPN yoki boshqa turdagi xizmat orqali ulashga majbur qilgan bo'lsa-da, Google Cloud sizga barcha Google hududlarini qamrab oluvchi to'liq yo'naltiriladigan yagona tarmoq yaratish imkonini berdi. Bu tizimning ishlashi va samaradorligi nuqtai nazaridan katta ortiqcha.

Bundan tashqari, Google Cloud-dan tarmoq xizmatlari va yuk balanslagichlari juda yaxshi ish qiladi. Ular shunchaki har bir mintaqadagi o'zboshimchalik bilan umumiy IP manzillaridan foydalanishga imkon beradi va ajoyib BGP protokoli qolganlari bilan shug'ullanadi (ya'ni foydalanuvchilarni eng yaqin klasterga yo'naltirish). Shubhasiz, nosozlik bo'lsa, transport harakati avtomatik ravishda boshqa hududga hech qanday inson aralashuvisiz ketadi.

Kubernetes sarguzashtlari Dailymotion: bulutlarda + mahalliy infratuzilmani yaratish
Google Load Balancing monitoringi

Bizning platformamiz shuningdek, GPU-lardan ko'p foydalanadi. Google Cloud ulardan bevosita Kubernetes klasterlarida juda samarali foydalanish imkonini beradi.

O'sha paytda infratuzilma jamoasi birinchi navbatda jismoniy serverlarda o'rnatilgan eski stekga e'tibor qaratgan edi. Shuning uchun boshqariladigan xizmatdan foydalanish (jumladan, Kubernetes ustalari) bizning talablarimizga javob berdi va jamoalarni mahalliy klasterlar bilan ishlashga o‘rgatish imkonini berdi.

Natijada, biz Google Cloud infratuzilmasida ishlab chiqarish trafigini ish boshlanganidan atigi 6 oy o'tgach olishni boshladik.

Biroq, bir qator afzalliklarga qaramay, bulutli provayder bilan ishlash muayyan xarajatlar bilan bog'liq bo'lib, yukga qarab oshishi mumkin. Shuning uchun biz foydalanayotgan har bir boshqariladigan xizmatni sinchkovlik bilan tahlil qildik va kelajakda ularni mahalliy sharoitda amalga oshirishga umid qildik. Aslida, mahalliy klasterlarni amalga oshirish 2016 yil oxirida boshlangan va gibrid strategiya bir vaqtning o'zida boshlangan.

Dailymotion mahalliy konteyner orkestr platformasining ishga tushirilishi

2016 yil kuz

Butun stek ishlab chiqarishga tayyor bo'lgan sharoitda va APIda ishlash davom etdi, mintaqaviy klasterlarga e'tibor qaratish vaqti keldi.

O'sha paytda foydalanuvchilar har oy 3 milliarddan ortiq video tomosha qilishgan. Albatta, biz ko'p yillar davomida o'zimizning keng qamrovli kontentni yetkazib berish tarmog'iga egamiz. Biz ushbu vaziyatdan foydalanib, Kubernetes klasterlarini mavjud ma'lumotlar markazlarida joylashtirmoqchi edik.

Dailymotion infratuzilmasi oltita ma'lumot markazidagi 2,5 mingdan ortiq serverlardan iborat edi. Ularning barchasi Saltstack yordamida sozlangan. Biz usta va ishchi tugunlarni, shuningdek etcd klasterini yaratish uchun barcha kerakli retseptlarni tayyorlashni boshladik.

Kubernetes sarguzashtlari Dailymotion: bulutlarda + mahalliy infratuzilmani yaratish

Tarmoq qismi

Bizning tarmog'imiz butunlay yo'naltirilgan. Har bir server o'z IP-ni tarmoqda Exabgp yordamida reklama qiladi. Biz bir nechta tarmoq plaginlarini solishtirdik va barcha ehtiyojlarni qondiradigan yagona plagin (ishlatilgan L3 yondashuvi tufayli) edi. Calico. U mavjud tarmoq infratuzilmasi modeliga juda mos keladi.

Biz barcha mavjud infratuzilma elementlaridan foydalanmoqchi bo'lganimiz sababli, biz qilishimiz kerak bo'lgan birinchi narsa bizning uyda ishlab chiqarilgan tarmoq yordam dasturini (barcha serverlarda qo'llaniladi) aniqlash edi: undan Kubernetes tugunlari bilan tarmoqdagi IP manzil diapazonlarini reklama qilish uchun foydalaning. Biz Calico-ga podkastlarga IP-manzillarni belgilashga ruxsat berdik, lekin undan tarmoq uskunasida BGP seanslari uchun foydalanmadik va foydalanmayapmiz. Aslida, marshrutlash Calico tomonidan ishlatiladigan pastki tarmoqlarni reklama qiluvchi Exabgp tomonidan boshqariladi. Bu bizga ichki tarmoqdan (xususan, yuk balanslagichlaridan) istalgan podga kirishga imkon beradi.

Biz kirish trafigini qanday boshqaramiz

Kiruvchi so'rovlarni kerakli xizmatga yo'naltirish uchun Kubernetes kirish resurslari bilan integratsiyalashganligi sababli Ingress Controller-dan foydalanishga qaror qilindi.

Uch yil oldin, nginx-ingress-controller eng etuk kontroller edi: Nginx uzoq vaqtdan beri mavjud bo'lgan va o'zining barqarorligi va ishlashi bilan mashhur edi.

Bizning tizimimizda biz kontrollerlarni maxsus 10 Gigabit blade serverlariga joylashtirishga qaror qildik. Har bir kontroller mos keladigan klasterning kube-apiserver so'nggi nuqtasiga ulangan. Ushbu serverlar umumiy yoki shaxsiy IP manzillarini reklama qilish uchun Exabgp dan ham foydalanganlar. Bizning tarmoq topologiyamiz NodePort kabi xizmatdan foydalanmasdan barcha trafikni to'g'ridan-to'g'ri podkastlarga yo'naltirish uchun ushbu kontrollerlardan BGP dan foydalanishga imkon beradi. Ushbu yondashuv tugunlar orasidagi gorizontal trafikni oldini olishga yordam beradi va samaradorlikni oshiradi.

Kubernetes sarguzashtlari Dailymotion: bulutlarda + mahalliy infratuzilmani yaratish
Internetdan podsgacha bo'lgan trafik harakati

Endi biz gibrid platformamizni tushunganimizdan so'ng, biz transport migratsiya jarayonining o'ziga chuqurroq kirib borishimiz mumkin.

Google Cloud'dan Dailymotion infratuzilmasiga trafik ko'chishi

2018 yil kuz

Taxminan ikki yillik qurish, sinovdan o'tkazish va sozlashdan so'ng, biz nihoyat bir oz trafikni qabul qilishga tayyor to'liq Kubernetes stekiga egamiz.

Kubernetes sarguzashtlari Dailymotion: bulutlarda + mahalliy infratuzilmani yaratish

Joriy marshrutlash strategiyasi juda oddiy, ammo ehtiyojlarni qondirish uchun etarli. Umumiy IP-larga qo'shimcha ravishda (Google Cloud va Dailymotion-da), AWS Route 53 siyosatlarni o'rnatish va foydalanuvchilarni biz tanlagan klasterga yo'naltirish uchun ishlatiladi.

Kubernetes sarguzashtlari Dailymotion: bulutlarda + mahalliy infratuzilmani yaratish
53-yo'nalish yordamida marshrutlash siyosatiga misol

Google Cloud bilan bu juda oson, chunki biz barcha klasterlarda bitta IP-ni baham ko'ramiz va foydalanuvchi eng yaqin GKE klasteriga yo'naltiriladi. Bizning klasterlarimiz uchun texnologiya boshqacha, chunki ularning IP-lari boshqacha.

Migratsiya davomida biz mintaqaviy so'rovlarni tegishli klasterlarga yo'naltirishga harakat qildik va bu yondashuvning afzalliklarini baholadik.

Bizning GKE klasterlarimiz Maxsus ko‘rsatkichlar yordamida avtomatik o‘lchovga sozlanganligi sababli ular kiruvchi trafik asosida kattalashtiriladi/pasaytiriladi.

Oddiy rejimda barcha mintaqaviy trafik mahalliy klasterga yo'naltiriladi va GKE muammolar yuzaga kelganda zaxira bo'lib xizmat qiladi (salomatlik tekshiruvi 53-yo'nalish tomonidan amalga oshiriladi).

...

Kelajakda biz foydalanuvchilar uchun qulaylikni doimiy ravishda yaxshilaydigan avtonom gibrid strategiyaga erishish uchun marshrutlash siyosatini toʻliq avtomatlashtirmoqchimiz. Ijobiy tomoni, bulutli xarajatlar sezilarli darajada kamaydi va API javob vaqtlari hatto qisqartirildi. Olingan bulut platformasiga ishonamiz va agar kerak bo'lsa, unga ko'proq trafikni yo'naltirishga tayyormiz.

Tarjimondan PS

Sizni Kubernetes haqidagi yaqinda Dailymotion nashri qiziqtirishi mumkin. U ko'plab Kubernetes klasterlarida Helm bilan ilovalarni joylashtirishga bag'ishlangan va nashr etildi taxminan bir oy oldin.

Shuningdek, bizning blogimizda o'qing:

Manba: www.habr.com

a Izoh qo'shish