{"id":37636,"date":"2019-10-31T22:18:44","date_gmt":"2019-10-31T19:18:44","guid":{"rendered":"https:\/\/prohoster.info\/blog\/sozdayom-kubernetes-platformu-v-pinterest\/"},"modified":"2019-10-31T22:18:44","modified_gmt":"2019-10-31T19:18:44","slug":"sozdayom-kubernetes-platformu-v-pinterest","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sl\/blog\/administrirovanie\/sozdayom-kubernetes-platformu-v-pinterest","title":{"rendered":"Ustvarjamo kubernetes-platformo v Pinterestu","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><i>V letih obstoja Pinterest je 300 milijonov uporabnikov storitve ustvarilo ve\u010d kot 200 milijard priponk na ve\u010d kot 4 milijardah tabl. Da bi lahko oskrbeli to vojsko uporabnikov in obse\u017eno bazo vsebin, je portal razvil tiso\u010de storitev, od mikroservisov, s katerimi se lahko spopade nekaj CPU-jev, do velikih monolitov, ki te\u010dejo na celotnih parkih virtualnih strojev. In pri\u0161el je trenutek, ko je pogled podjetja padel na k8s. Kaj je torej \u201ekocka\u201c pritegnila \u201ePinterest\u201c? O tem boste izvedeli iz na\u0161ega prevoda sve\u017eega \u010dlanka iz <noindex><a rel=\"nofollow\" href=\"https:\/\/medium.com\/pinterest-engineering\">blog Pinterest engineering<\/a><\/noindex>.<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Ustvarjamo kubernetes-platformo v Pinterestu\" src=\"\/wp-content\/uploads\/2019\/08\/71719121d8d0ed8e284b471c3bcb7328.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTorej, stotine milijonov uporabnikov in stotine milijard priponk. Da bi oskrbeli to vojsko uporabnikov in obse\u017eno bazo vsebin, smo razvili tiso\u010de storitev, od mikroservisov, s katerimi se lahko spopade nekaj CPU-jev, do velikih monolitov, ki te\u010dejo na celotnih parkih virtualnih strojev. Poleg tega imamo razli\u010dne okvire, ki prav tako lahko zahtevajo vire CPU, pomnilnika ali dostop do vhodno-izhodnih operacij.<\/p>\n<p>Med podporo temu zoolo\u0161kemu vrtu orodij se razvojna ekipa soo\u010da s \u0161tevilnimi te\u017eavami:<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<ul>\n<li>In\u017eenirji nimajo enotnega na\u010dina zagona delovnega okolja. Stateless storitve, Stateful storitve in projekti v aktivnem razvoju temeljijo na povsem razli\u010dnih tehnolo\u0161kih kupih. To je privedlo do ustvarjanja celotnega izobra\u017eevalnega te\u010daja za in\u017eenirje in resno ote\u017euje delo na\u0161i infrastrukturni ekipi.<\/li>\n<li>Razvijalci, ki imajo na voljo lastne parke virtualnih strojev, \u010drpajo ogromno obremenitev na notranje skrbnike. Na koncu se tako preproste operacije, kot so posodobitve OS ali AMI, raztegujejo na tedne in mesece. To povzro\u010da pove\u010danje obremenitve v, zdi se, povsem vsakdanjih situacijah.<\/li>\n<li>Te\u017eave pri ustvarjanju globalnih orodij za upravljanje infrastrukture nad obstoje\u010dimi re\u0161itvami. Situacijo \u0161e ote\u017euje dejstvo, da je te\u017eko najti lastnike virtualnih strojev. To pomeni, da ne vemo, ali lahko varno izvle\u010demo te zmogljivosti za delo na drugih podro\u010djih na\u0161e infrastrukture.<\/li>\n<\/ul>\n<p>\nSistem orkestracije kontejnera je na\u010din unifikacije upravljanja radnim optere\u0107enjem. Otvaraju vam put ka pove\u0107anju brzine razvoja i pojednostavljuju upravljanje infrastrukturom, jer svi resursi uklju\u010deni u projekat se upravljaju jednim centralizovanim sistemom.<\/p>\n<p><img decoding=\"async\" alt=\"Ustvarjamo kubernetes-platformo v Pinterestu\" src=\"\/wp-content\/uploads\/2019\/08\/8ce586ab31e593c99310ae2bf2a7bafb.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<i>Slika 1: Prioriteti infrastrukture (pouzdanost, produktivnost programera i efikasnost).<\/i><\/p>\n<p>Tim Cloud Management Platform u Pinterestu se upoznao sa K8s 2017. godine. Do prve polovine 2017. dokumentovali smo ve\u0107inu na\u0161ih proizvodnih kapaciteta, uklju\u010duju\u0107i API i sve na\u0161e <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/sl\/server\/\"   title=\"web servere\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"1189\">web servere<\/a>. Nakon toga, sproveli smo detaljnu evaluaciju razli\u010ditih sistema orkestracije kontejnerskih re\u0161enja, izgradnje klastera i rada s njima. Do kraja 2017. godine odlu\u010dili smo se za Kubernetes. Bio je dovoljno fleksibilan i \u0161iroko podr\u017eavan u zajednici programera.<\/p>\n<p>Do sada smo kreirali vlastite alate za primarnu konfiguraciju klastera na bazi Kops i prebacili postoje\u0107e komponente infrastrukture na Kubernetes \u2014 kao \u0161to su mre\u017ea, bezbednost, merenja, vo\u0111enje dnevnika, upravljanje identitetom i saobra\u0107ajem. Tako\u0111e smo implementirali sistem modelovanja radnih optere\u0107enja za na\u0161 resurs, \u010dija je slo\u017eenost skrivena od programera. Sada se fokusiramo na obezbe\u0111ivanje stabilnosti klastera, njegovom skaliranju i povezivanju novih klijenata.<\/p>\n<h4>Kubernetes: Put Pinterest-a<\/h4>\n<p>\nPo\u010detak rada sa Kubernetesom u okviru Pinterest-a, kao platforme koja \u0107e biti omiljena na\u0161im in\u017eenjerima, ispostavio se kao izazovan.<\/p>\n<p>Kao velika kompanija, ulo\u017eili smo zna\u010dajna sredstva u infrastrukturne alate. Na primer, tu su sigurnosni alati koji obra\u0111uju sertifikate i distribuiraju klju\u010deve, komponente za kontrolu saobra\u0107aja, sisteme otkrivanja usluga, komponente za vidljivost i slanje dnevnika i merenja. Sve to nije skupljeno bez razloga: pro\u0161li smo normalan put proba i gre\u0161aka, i zbog toga smo \u017eeleli da integri\u0161emo sve to u novu infrastrukturu na Kubernetes-u, umesto da ponovo izmi\u0161ljamo stari bicikl na novoj platformi. Ovakav pristup u celini je pojednostavio migraciju, jer je sva podr\u0161ka aplikacijama ve\u0107 postojala, nije je bilo potrebno kreirati ispo\u010detka.<\/p>\n<p>S druge strani, modeli napovedovanja obremenitev v samem Kubernetes (na primer, uvedbe, naloge in Daemon sets) niso dovolj za na\u0161 projekt. Te uporabni\u0161ke te\u017eave so ogromne ovire na poti prehoda na Kubernetes. Na primer, sli\u0161ali smo, kako se razvijalci storitev prito\u017eujejo zaradi pomanjkanja ali nepravilne konfiguracije vhodnih to\u010dk. Prav tako smo se sre\u010dali z napa\u010dno uporabo predlog, ko so bile ustvarjene na stotine kopij z enako specifikacijo in nalogo, kar je vodilo do stra\u0161nih te\u017eav z odpravljanjem napak.<\/p>\n<p>Poleg tega je bilo zelo te\u017eko vzdr\u017eevati razli\u010dne razli\u010dice v istem klastru. Predstavljajte si te\u017eave pri podpori strankam, \u010de morate delati v ve\u010d razli\u010dicah istega izvajalnega okolja, z vsemi njihovimi te\u017eavami, napakami in posodobitvami.<\/p>\n<h4>Uporabni\u0161ki viri in krmilniki Pinterest<\/h4>\n<p>\nDa bi na\u0161im in\u017eenirjem olaj\u0161ali postopek uvedbe Kubernetes ter poenostavili infrastrukturo in pospe\u0161ili njeno delovanje, smo razvili svoje lastne opredelitve uporabni\u0161kih virov (CRD).<\/p>\n<p>CRD zagotavljajo naslednje funkcionalnosti:<\/p>\n<ol>\n<li>Zajedinjene razli\u010dne nativne vire Kubernetes, da delujejo kot enotna obremenitev. Na primer, vir PinterestService vklju\u010duje uvedbo, vhodno slu\u017ebo in konfiguracijsko karto. To razvijalcem omogo\u010da, da se ne obremenjujejo s konfiguracijo DNS.<\/li>\n<li>Uvedba potrebne podpore aplikacijam. Uporabnik se mora osredoto\u010diti le na specifikacijo kontejnerja v skladu s svojo poslovno logiko, medtem ko krmilnik CRD uvede vse potrebne init-kontejnerje, okoljske spremenljivke in specifikacije pod. To zagotavlja povsem druga\u010dno raven udobnosti za razvijalce.<\/li>\n<li>Krmilniki CRD prav tako upravljajo \u017eivljenjski cikel lastnih virov in pove\u010dujejo razpolo\u017eljivost odkrivanja napak. To vklju\u010duje usklajevanje \u017eelenih in dejanskih specifikacij, posodabljanje statusa CRD ter vodenje dnevnikov dogodkov in \u0161e ve\u010d. Brez CRD bi bili razvijalci primorani upravljati z ogromnim naborom virov, kar bi le pove\u010dalo verjetnost napak. <\/li>\n<\/ol>\n<p>\nTukaj je primer PinterestService in notranjega vira, ki ga upravlja na\u0161 krmilnik:<\/p>\n<p><img decoding=\"async\" alt=\"Ustvarjamo kubernetes-platformo v Pinterestu\" src=\"\/wp-content\/uploads\/2019\/08\/5f76107d023d18f535447a13d41404fa.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <br \/>\nKot lahko vidite zgoraj, za podporo uporabni\u0161kemu vsebniku moramo integrirati vsebnik za inicializacijo in ve\u010d raz\u0161iritev, da zagotovimo varnost, vidnost in upravljanje s omre\u017enim prometom. Poleg tega smo ustvarili predloge za konfiguracijske karte in uvedli podporo za PVC predloge za paketna opravila, kot tudi sledenje \u0161tevilnim spremenljivkam okolja za spremljanje identifikacije, porabe virov in zbiranje 'smeti'.<\/p>\n<p>Te\u017eko si je predstavljati, da bi razvijalci \u017eeleli ro\u010dno napisati te konfiguracijske datoteke brez podpore CRD, kaj \u0161ele nadaljnje vzdr\u017eevanje in odpravljanje napak v konfiguracijah.<\/p>\n<h4>Delovni tok za name\u0161\u010danje aplikacij<\/h4>\n<p>\n<img decoding=\"async\" alt=\"Ustvarjamo kubernetes-platformo v Pinterestu\" src=\"\/wp-content\/uploads\/2019\/08\/08c953d5cf32244733cf4193c1b304bc.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNa zgornji sliki je prikazano, kako razporediti uporabni\u0161ki vir Pinterest v grozdu Kubernetes:<\/p>\n<ol>\n<li>Razvijalci komunicirajo z na\u0161im grozdom Kubernetes preko CLI in uporabni\u0161kega vmesnika.<\/li>\n<li>Orodja CLI \/ UI pridobivajo YAML datoteke o konfiguraciji delovnega toka in druge lastnosti zbirke (isto razli\u010dico razli\u010dice) iz Artifactory, nato pa jih po\u0161ljejo v storitev za oddajo opravil. Ta korak zagotavlja, da bodo v grozd name\u0161\u010dene samo delujo\u010de razli\u010dice. <\/li>\n<li>JSS je prehod za razli\u010dne platforme, vklju\u010dno s Kubernetes. Tu poteka avtentikacija uporabnika, dodeljevanje kvot in delna preveritev konfiguracije na\u0161ega CRD.<\/li>\n<li>Po preverjanju CRD na strani JSS se informacije po\u0161ljejo na API platforme k8s.<\/li>\n<li>Na\u0161 CRD kontroler sledi dogodkom na vseh uporabni\u0161kih virih. Pretvarja CR v naravne vire k8s, dodaja potrebne module, nastavi ustrezne okoljske spremenljivke in opravi druga pomo\u017ena dela, s \u010dimer zagotavlja ustrezno infrastrukturo za podporo uporabni\u0161kim aplikacijam v vsebnikih.<\/li>\n<li>Nato CRD kontroler prenese pridobljene podatke v API Kubernetes, da jih obdeluje razporejevalnik in uvede v delovanje.<\/li>\n<\/ol>\n<p>\n<b>Napomena<\/b>: to je predizvodni proces implementacije ustvarjen za prve uporabnike nove k8s platforme. Trenutno smo v procesu izbolj\u0161anja tega postopka, da se popolnoma integriramo z na\u0161o novo CI\/CD. To pomeni, da ne moremo deliti vsega, kar je povezano z Kubernetesom. Z nestrpnostjo \u010dakamo, da bomo lahko delili svoje izku\u0161nje in poro\u010dali o napredku ekipe na tem podro\u010dju v na\u0161em naslednjem blogu 'Gradnja CI\/CD platforme za Pinterest'.<\/p>\n<h4>Vrste posebnih virov<\/h4>\n<p>\nNa podlagi specifi\u010dnih potreb Pinterest smo razvili naslednje CRD, ki so primerne za razli\u010dne delovne tokove:<\/p>\n<ul>\n<li>PinterestService so \u017ee dolgo delujo\u010de stateless storitve. \u0160tevilni na\u0161i osnovni sistemi temeljijo na nizu tak\u0161nih storitev.<\/li>\n<li>PinterestJobSet modelira pakete celovitih nalog. V Pinterestu obstaja splo\u0161ni scenarij, v katerem ve\u010d nalog hkrati za\u017eene iste kontejnere, neodvisno od drugih podobnih procesov.<\/li>\n<li>PinterestCronJob se \u0161iroko uporablja v povezavi z majhnimi periodi\u010dnimi obremenitvami. To je ovoj za nativno delovanje cron s sistemi podpore Pinterest, ki skrbijo za varnost, promet, dnevnike in metrike.<\/li>\n<li>PinterestDaemon vklju\u010duje infrastrukturne Daemone. To dru\u017eino nenehno razvijamo, saj dodajamo vedno ve\u010d podpore za na\u0161e grozde.<\/li>\n<li>PinterestTrainingJob pokriva procese Tensorflow in Pytorch, zagotavljajo\u010d enako raven podpore med delovanjem kot vse druge CRD. Ker se v Pinterestu \u0161iroko uporablja Tensorflow in druge sisteme strojnega u\u010denja, smo imeli razlog, da okoli njih oblikujemo lo\u010deno CRD.<\/li>\n<\/ul>\n<p>\nPrav tako delamo na PinterestStatefulSet, ki bo kmalu prilagojen za shranjevanje podatkov in druge stateful sisteme.<\/p>\n<h4>Podpora za izvajalno okolje<\/h4>\n<p>\nKo mod\u00fcl aplikacija se za\u017eene v Kubernetesu, samodejno pridobi certifikat za svojo identifikacijo. Ta certifikat se uporablja za dostop do skrivnostnega skladi\u0161\u010da ali za komunikacijo z drugimi storitvami prek mTLS. Medtem ko inicializator kontejnerjev in Daemon nalo\u017eita vse potrebne odvisnosti pred zagon kontejnerske aplikacije, bo, ko bo vse pripravljeno, sidecar za promet in Daemon registriral IP naslov modula v na\u0161em Zookeeperju, da ga lahko stranke odkrijejo. Vse to bo delovalo, saj je bila omre\u017ena modul nastavljena \u017ee pred zagonom aplikacije.<\/p>\n<p>Zgoraj so predstavljeni tipi\u010dni primeri podpore delovnim obremenitvam med izvajanjem. Drugim vrstam delovnih obremenitev morda zadostuje nekoliko druga\u010dna podpora, vendar so vse predstavljene v obliki sidecar-jev na ravni poda, vozli\u0161\u010dih ali Daemon-ih na ravni virtualnih strojev. Skrbimo, da se vse to izvaja v okviru upravljalske infrastrukture in je usklajeno med aplikacijami, kar na koncu znatno zmanj\u0161uje obremenitev glede tehni\u010dnega dela in podpore strankam.<\/p>\n<h4>Testiranje in QA<\/h4>\n<p>\nZbrali smo end-to-end testni pipeline na \u017ee obstoje\u010di testni infrastrukturi Kubernetes. Ti testi pokrivajo vse na\u0161e klastre. Na\u0161 pipeline je pre\u017eivel \u0161tevilne predelave, preden je postal del produktnega klasterja.<\/p>\n<p>Poleg sistemov testiranja imamo tudi sisteme za nadzor in obve\u0161\u010danje, ki nenehno spremljajo stanje sistemskih komponent, porabo virov in druge pomembne kazalnike, nas obve\u0161\u010dajo le, ko je potrebna \u010dlove\u0161ka intervencija.<\/p>\n<h4>Alternatives<\/h4>\n<p>\nRazmislili smo o nekaterih alternativah za prilagojene vire, kot so mutacijski kontrolerji dostopa in sistemi predlog. Vendar so vsi ti povezani s resnimi te\u017eavami pri delu, zato smo izbrali pot CRD.<\/p>\n<p>Mutacijski kontroler dostopa je bil uporabljen za vnos sidecarjev, spremenljivk okolja in druge podpore med izvajanjem. Kljub temu pa se je soo\u010dal z razli\u010dnimi te\u017eavami, kot so povezovanje virov in upravljanje njihovega \u017eivljenjskega cikla, medtem ko v CRD teh te\u017eav ni.<\/p>\n<p><b>Opomba:<\/b> Sistemi predlo\u017eaka, poput Helm dijagrama, \u0161iroko se koriste za pokretanje aplikacija sli\u010dnih konfiguracija. Me\u0111utim, na\u0161e radne aplikacije su previ\u0161e razli\u010dite da bi se njima moglo upravljati putem predlo\u017eaka. Tako\u0111e, prilikom neprekidnog raspore\u0111ivanja uz kori\u0161\u0107enje predlo\u017eaka javi\u0107e se previ\u0161e gre\u0161aka.<\/p>\n<h4>Nadolaze\u0107i rad<\/h4>\n<p>\nTrenutno se suo\u010davamo s me\u0161ovitim optere\u0107enjem na svim na\u0161im klastrima. Da bismo podr\u017eali takve procese razli\u010ditih tipova i veli\u010dina, radimo u slede\u0107im pravcima:<\/p>\n<ul>\n<li>Skup klastera raspore\u0111uje velike aplikacije po razli\u010ditim klasterima za obezbe\u0111ivanje skalabilnosti i stabilnosti.<\/li>\n<li>Odr\u017eavanje stabilnosti, skalabilnosti i vidljivosti klastera kako bi se stvorila veza izme\u0111u aplikacije i njenog SLA.<\/li>\n<li>Upravljanje resursima i kvotama kako bi se aplikacije me\u0111usobno ne sukobljavale, a obim klastera kontrolisao sa na\u0161e strane.<\/li>\n<li>Nova CI\/CD platforma za podr\u0161ku i raspore\u0111ivanje aplikacija u Kubernetes.<\/li>\n<\/ul>\n<p>Izvor: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/itsumma\/blog\/465487\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0417\u0430 \u0433\u043e\u0434\u044b \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u044f Pinterest 300 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u043e\u0432 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0441\u0435\u0440\u0432\u0438\u0441\u0430 \u0441\u043e\u0437\u0434\u0430\u043b\u0438 \u0431\u043e\u043b\u0435\u0435 200 \u043c\u0438\u043b\u043b\u0438\u0430\u0440\u0434\u043e\u0432 \u043f\u0438\u043d\u043e\u0432 \u043d\u0430 \u0431\u043e\u043b\u0435\u0435 \u0447\u0435\u043c 4 \u043c\u0438\u043b\u043b\u0438\u0430\u0440\u0434\u043e\u0432 \u0434\u043e\u0441\u043e\u043a. \u0427\u0442\u043e\u0431\u044b \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u0442\u044c \u044d\u0442\u0443 \u0430\u0440\u043c\u0438\u044e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0438 \u043e\u0431\u0448\u0438\u0440\u043d\u0443\u044e \u043a\u043e\u043d\u0442\u0435\u043d\u0442-\u0431\u0430\u0437\u0443, \u043f\u043e\u0440\u0442\u0430\u043b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043b \u0442\u044b\u0441\u044f\u0447\u0438 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432, \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u043e\u0442 \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u043c\u043e\u0436\u0435\u0442 \u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c\u0441\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e CPU, \u0438 \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u044f \u0433\u0438\u0433\u0430\u043d\u0442\u0441\u043a\u0438\u043c\u0438 \u043c\u043e\u043d\u043e\u043b\u0438\u0442\u0430\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043a\u0440\u0443\u0442\u044f\u0442\u0441\u044f \u043d\u0430 \u0446\u0435\u043b\u043e\u043c \u043f\u0430\u0440\u043a\u0435 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0448\u0438\u043d. \u0418 \u0432\u043e\u0442 \u043d\u0430\u0441\u0442\u0443\u043f\u0438\u043b \u043c\u043e\u043c\u0435\u043d\u0442, [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":28249,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-37636","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.4 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0417\u0430 \u0433\u043e\u0434\u044b \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u044f Pinterest 300 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u043e\u0432 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0441\u0435\u0440\u0432\u0438\u0441\u0430 \u0441\u043e\u0437\u0434\u0430\u043b\u0438 \u0431\u043e\u043b\u0435\u0435 200 \u043c\u0438\u043b\u043b\u0438\u0430\u0440\u0434\u043e\u0432 \u043f\u0438\u043d\u043e\u0432 \u043d\u0430 \u0431\u043e\u043b\u0435\u0435 \u0447\u0435\u043c 4 \u043c\u0438\u043b\u043b\u0438\u0430\u0440\u0434\u043e\u0432 \u0434\u043e\u0441\u043e\u043a.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/sl\/blog\/administrirovanie\/sozdayom-kubernetes-platformu-v-pinterest\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"sl_SI\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0421\u043e\u0437\u0434\u0430\u0451\u043c kubernetes-\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0443 \u0432 Pinterest | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0417\u0430 \u0433\u043e\u0434\u044b \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u044f Pinterest 300 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u043e\u0432 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0441\u0435\u0440\u0432\u0438\u0441\u0430 \u0441\u043e\u0437\u0434\u0430\u043b\u0438 \u0431\u043e\u043b\u0435\u0435 200 \u043c\u0438\u043b\u043b\u0438\u0430\u0440\u0434\u043e\u0432 \u043f\u0438\u043d\u043e\u0432 \u043d\u0430 \u0431\u043e\u043b\u0435\u0435 \u0447\u0435\u043c 4 \u043c\u0438\u043b\u043b\u0438\u0430\u0440\u0434\u043e\u0432 \u0434\u043e\u0441\u043e\u043a.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sl\/blog\/administrirovanie\/sozdayom-kubernetes-platformu-v-pinterest\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:18:44+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:18:44+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Kreiramo kubernetes-platformu u Pinterestu | ProHoster","description":"Tokom godina postojanja, Pinterest je 300 miliona korisnika servisa stvorilo vi\u0161e od 200 milijardi pinova na vi\u0161e od 4 milijarde tabli.","canonical_url":"https:\/\/prohoster.info\/sl\/blog\/administrirovanie\/sozdayom-kubernetes-platformu-v-pinterest","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sl_SI","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0421\u043e\u0437\u0434\u0430\u0451\u043c kubernetes-\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0443 \u0432 Pinterest | ProHoster","og:description":"\u0417\u0430 \u0433\u043e\u0434\u044b \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u044f Pinterest 300 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u043e\u0432 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0441\u0435\u0440\u0432\u0438\u0441\u0430 \u0441\u043e\u0437\u0434\u0430\u043b\u0438 \u0431\u043e\u043b\u0435\u0435 200 \u043c\u0438\u043b\u043b\u0438\u0430\u0440\u0434\u043e\u0432 \u043f\u0438\u043d\u043e\u0432 \u043d\u0430 \u0431\u043e\u043b\u0435\u0435 \u0447\u0435\u043c 4 \u043c\u0438\u043b\u043b\u0438\u0430\u0440\u0434\u043e\u0432 \u0434\u043e\u0441\u043e\u043a.","og:url":"https:\/\/prohoster.info\/sl\/blog\/administrirovanie\/sozdayom-kubernetes-platformu-v-pinterest","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:18:44+00:00","article:modified_time":"2019-10-31T19:18:44+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"37636","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-02-09 15:30:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:23:06","updated":"2026-02-09 15:30:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/posts\/37636","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/comments?post=37636"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/posts\/37636\/revisions"}],"predecessor-version":[{"id":158433,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/posts\/37636\/revisions\/158433"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/media\/28249"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/media?parent=37636"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/categories?post=37636"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/tags?post=37636"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}