{"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\/sv\/blog\/administrirovanie\/sozdayom-kubernetes-platformu-v-pinterest","title":{"rendered":"Skapar en kubernetesplattform p\u00e5 Pinterest","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><i>Under \u00e5ren har Pinterest 300 miljoner anv\u00e4ndare skapat \u00f6ver 200 miljarder pins p\u00e5 mer \u00e4n 4 miljarder tavlor. F\u00f6r att betj\u00e4na denna arm\u00e9 av anv\u00e4ndare och den omfattande inneh\u00e5llsbasen har portalen utvecklat tusentals tj\u00e4nster, fr\u00e5n mikrotj\u00e4nster som hanteras av n\u00e5gra CPU:er till enorma monoliter som k\u00f6rs p\u00e5 en hel park av virtuella maskiner. Och nu har f\u00f6retaget riktat sin blick mot k8s. Vad \u00e4r det som g\u00f6r att \"kubben\" tilltalar \"Pinterest\"? Det f\u00e5r du veta i v\u00e5r \u00f6vers\u00e4ttning av den senaste artikeln fr\u00e5n <noindex><a rel=\"nofollow\" href=\"https:\/\/medium.com\/pinterest-engineering\">Pinterest Engineering-bloggen<\/a><\/noindex>.<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Skapar en kubernetesplattform p\u00e5 Pinterest\" src=\"\/wp-content\/uploads\/2019\/08\/71719121d8d0ed8e284b471c3bcb7328.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nS\u00e5, hundratals miljoner anv\u00e4ndare och hundratals miljarder pins. F\u00f6r att betj\u00e4na denna arm\u00e9 av anv\u00e4ndare och den omfattande inneh\u00e5llsbasen har vi utvecklat tusentals tj\u00e4nster, fr\u00e5n mikrotj\u00e4nster som hanteras av n\u00e5gra CPU:er till enorma monoliter som k\u00f6rs p\u00e5 en hel park av virtuella maskiner. Dessutom har vi olika ramverk som ocks\u00e5 kan kr\u00e4va resurser fr\u00e5n CPU, minne eller tillg\u00e5ng till I\/O-operationer.<\/p>\n<p>Vid st\u00f6det av denna djungel av verktyg st\u00e5r utvecklingsteamet inf\u00f6r flera problem:<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<ul>\n<li>Ingen enhetlig metod f\u00f6r att starta arbetsmilj\u00f6n. Stateless-tj\u00e4nster, Stateful-tj\u00e4nster och projekt under aktiv utveckling baseras p\u00e5 helt olika tekniska stackar. Detta har lett till skapandet av en hel utbildningskurs f\u00f6r ingenj\u00f6rer, och det komplicerar ocks\u00e5 arbetet f\u00f6r v\u00e5rt infrastrukturteam avsev\u00e4rt.<\/li>\n<li>Utvecklare som har tillg\u00e5ng till sin egen park av virtuella maskiner l\u00e4gger en enorm b\u00f6rda p\u00e5 interna administrat\u00f6rer. Som resultat drar s\u00e5dana enkla uppgifter som att uppdatera OS eller AMI ut p\u00e5 veckor och m\u00e5nader. Detta leder till \u00f6kad belastning i vad som verkar vara helt vardagliga situationer.<\/li>\n<li>Sv\u00e5righeter med att skapa globala infrastrukturoperationsverktyg ovanp\u00e5 redan existerande l\u00f6sningar. Situationen kompliceras ytterligare av att det inte \u00e4r l\u00e4tt att hitta \u00e4gare av virtuella maskiner. Det vill s\u00e4ga att vi vet inte om vi s\u00e4kert kan frig\u00f6ra dessa resurser f\u00f6r anv\u00e4ndning p\u00e5 andra delar av v\u00e5r infrastruktur.<\/li>\n<\/ul>\n<p>\nContainerorkestreringssystem \u00e4r ett s\u00e4tt att enhetligg\u00f6ra hanteringen av arbetsbelastningar. De ger dig m\u00f6jlighet att \u00f6ka utvecklingshastigheten och f\u00f6renklar infrastrukturen, eftersom alla resurser som ing\u00e5r i projektet hanteras av ett centralt system.<\/p>\n<p><img decoding=\"async\" alt=\"Skapar en kubernetesplattform p\u00e5 Pinterest\" src=\"\/wp-content\/uploads\/2019\/08\/8ce586ab31e593c99310ae2bf2a7bafb.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<i>Bild 1: Infrastrukturprioriteringar (p\u00e5litlighet, utvecklarprestanda och effektivitet).<\/i><\/p>\n<p>Cloud Management Platform-teamet p\u00e5 Pinterest bekantade sig med K8s 2017. Under f\u00f6rsta halvan av 2017 dokumenterade vi st\u00f6rre delen av v\u00e5ra produktionsresurser, inklusive API:er och alla v\u00e5ra <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/sv\/server\/\"   title=\"webbservrar\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"1189\">webbservrar<\/a>. D\u00e4refter genomf\u00f6rde vi en noggrann utv\u00e4rdering av olika system f\u00f6r containerorkestrering, klusteruppbyggnad och drift. I slutet av 2017 beslutade vi oss f\u00f6r att anv\u00e4nda Kubernetes. Det var tillr\u00e4ckligt flexibelt och hade stort st\u00f6d i utvecklarcommunityt.<\/p>\n<p>Vid detta tillf\u00e4lle har vi skapat egna verktyg f\u00f6r klusterbootstrapping baserade p\u00e5 Kops och migrerat befintliga infrastrukturella komponenter till Kubernetes \u2014 s\u00e5som n\u00e4tverk, s\u00e4kerhet, \u00f6vervakning, loggning, identitetshantering och trafik. Vi har ocks\u00e5 implementerat ett arbetsbelastningssimuleringssystem f\u00f6r v\u00e5r resurs, vars komplexitet d\u00f6ljs f\u00f6r utvecklarna. Nu fokuserar vi p\u00e5 att s\u00e4kerst\u00e4lla stabilitet i klustret, dess skalning och att ansluta nya kunder.<\/p>\n<h4>Kubernetes: V\u00e4gen f\u00f6r Pinterest<\/h4>\n<p>\nAtt b\u00f6rja arbeta med Kubernetes i stor skala p\u00e5 Pinterest, som en plattform som v\u00e5ra ingenj\u00f6rer skulle \u00e4lska, ledde till m\u00e5nga sv\u00e5righeter.<\/p>\n<p>Som ett stort f\u00f6retag har vi investerat betydande resurser i infrastrukturella verktyg. Exempelvis verktyg f\u00f6r s\u00e4kerhet som hanterar certifikat och distribuerar nycklar, trafik\u00f6vervakningskomponenter, tj\u00e4nstuppt\u00e4cktsystem, synlighets- och loggkomponenter samt metrik. Allt detta har byggts upp f\u00f6r en anledning: vi har genomg\u00e5tt en normal v\u00e4g av f\u00f6rs\u00f6k och misstag, och d\u00e4rf\u00f6r ville vi integrera allt detta i den nya infrastrukturen p\u00e5 Kubernetes ist\u00e4llet f\u00f6r att uppfinna hjulet p\u00e5 nytt p\u00e5 en ny plattform. Denna strategi f\u00f6renklade i allm\u00e4nhet migreringen, eftersom all applikationsst\u00f6d redan finns, det beh\u00f6ver inte skapas fr\u00e5n grunden.<\/p>\n<p>\u00c5 andra sidan \u00e4r modeller f\u00f6r belastningsprognoser inom Kubernetes (till exempel distributioner, uppgifter och daemon-set) otillr\u00e4ckliga f\u00f6r v\u00e5rt projekt. Dessa anv\u00e4ndbarhetsproblem utg\u00f6r enorma hinder f\u00f6r \u00f6verg\u00e5ngen till Kubernetes. Till exempel har vi h\u00f6rt hur tj\u00e4nsteutvecklare klagar \u00f6ver bristande eller felaktig inloggningskonfiguration. Vi har ocks\u00e5 st\u00f6tt p\u00e5 felaktig anv\u00e4ndning av mallmotorer n\u00e4r hundratals kopior med samma specifikation och uppdrag skapats, vilket resulterat i hemska debuggingsproblem.<\/p>\n<p>Det var ocks\u00e5 mycket sv\u00e5rt att st\u00f6dja olika versioner i samma kluster. T\u00e4nk p\u00e5 hur komplicerat kundsupporten blir n\u00e4r du beh\u00f6ver jobba med flera versioner av samma k\u00f6rmilj\u00f6, med alla deras problem, buggar och uppdateringar.<\/p>\n<h4>Anpassade resurser och kontrollerare f\u00f6r Pinterest<\/h4>\n<p>\nF\u00f6r att underl\u00e4tta implementeringen av Kubernetes f\u00f6r v\u00e5ra ingenj\u00f6rer och f\u00f6renkla infrastrukturen samt p\u00e5skynda dess prestanda har vi utvecklat v\u00e5ra egna definitioner av anpassade resurser (CRD).<\/p>\n<p>CRD erbjuder f\u00f6ljande funktionaliteter:<\/p>\n<ol>\n<li>Sammanf\u00f6ra olika inbyggda resurser i Kubernetes s\u00e5 att de fungerar som en enhetlig belastning. Till exempel innefattar resursen PinterestService distribution, inloggningsservice och konfigurationskarta. Detta g\u00f6r att utvecklare inte beh\u00f6ver bekymra sig om DNS-konfiguration.<\/li>\n<li>Implementera n\u00f6dv\u00e4ndigt st\u00f6d f\u00f6r applikationer. Anv\u00e4ndaren beh\u00f6ver bara fokusera p\u00e5 specifikationen av containern enligt sin aff\u00e4rslogik medan CRD-kontrollern implementerar alla n\u00f6dv\u00e4ndiga init-containrar, milj\u00f6variabler och pod-specifikationer. Detta ger en helt annan niv\u00e5 av komfort f\u00f6r utvecklare.<\/li>\n<li>CRD-kontrollrar hanterar ocks\u00e5 livscykeln f\u00f6r egna resurser och \u00f6kar tillg\u00e4ngligheten f\u00f6r debugging. Detta inkluderar att synkronisera \u00f6nskade och faktiska specifikationer, uppdatera statusen f\u00f6r CRD och logga h\u00e4ndelser och mer. Utan CRD skulle utvecklare vara tvungna att hantera en m\u00e4ngd resurser, vilket skulle \u00f6ka risken f\u00f6r fel. <\/li>\n<\/ol>\n<p>\nH\u00e4r \u00e4r ett exempel p\u00e5 PinterestService och en intern resurs som styrs av v\u00e5r kontrollerare:<\/p>\n<p><img decoding=\"async\" alt=\"Skapar en kubernetesplattform p\u00e5 Pinterest\" src=\"\/wp-content\/uploads\/2019\/08\/5f76107d023d18f535447a13d41404fa.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <br \/>\nSom n\u00e4mnt ovan, f\u00f6r att st\u00f6dja en anv\u00e4ndarcontainer beh\u00f6ver vi integrera en initialiseringscontainer och flera till\u00e4gg f\u00f6r att s\u00e4kerst\u00e4lla s\u00e4kerhet, synlighet och hantering av n\u00e4tverkstrafik. Dessutom har vi skapat konfigurationskarta-mallar och implementerat st\u00f6d f\u00f6r PVC-mallar f\u00f6r batchjobb, samt sp\u00e5ring av flera milj\u00f6variabler f\u00f6r att f\u00f6lja identifiering, resursanv\u00e4ndning och insamling av \"skr\u00e4p\".<\/p>\n<p>Det \u00e4r sv\u00e5rt att f\u00f6rest\u00e4lla sig att utvecklare skulle vilja skriva dessa konfigurationsfiler f\u00f6r hand utan st\u00f6d f\u00f6r CRD, f\u00f6r att inte tala om vidare st\u00f6d och fels\u00f6kning av konfigurationerna.<\/p>\n<h4>Workflow f\u00f6r applikationsdeployment<\/h4>\n<p>\n<img decoding=\"async\" alt=\"Skapar en kubernetesplattform p\u00e5 Pinterest\" src=\"\/wp-content\/uploads\/2019\/08\/08c953d5cf32244733cf4193c1b304bc.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nOvanst\u00e5ende illustration visar hur man distribuerar en anv\u00e4ndarresurs f\u00f6r Pinterest i en Kubernetes-kluster:<\/p>\n<ol>\n<li>Utvecklare interagerar med v\u00e5r Kubernetes-kluster via CLI och anv\u00e4ndargr\u00e4nssnitt.<\/li>\n<li>CLI \/ UI-verktygen h\u00e4mtar YAML-konfigurationsfiler f\u00f6r arbetsfl\u00f6det och andra byggegenskaper (samma versions-ID) fr\u00e5n Artifactory, som sedan skickas till Job Submission Service. Detta steg s\u00e4kerst\u00e4ller att endast fungerande versioner levereras till klustret. <\/li>\n<li>JSS fungerar som en gateway f\u00f6r olika plattformar, inklusive Kubernetes. H\u00e4r sker anv\u00e4ndarautentisering, kvotering och delvis konfigurationsverifiering av v\u00e5r CRD.<\/li>\n<li>Efter verifiering av CRD p\u00e5 JSS-sidan skickas informationen till k8s plattformens API.<\/li>\n<li>V\u00e5r CRD-kontrollant \u00f6vervakar h\u00e4ndelser f\u00f6r alla anv\u00e4ndarresurser. Den omvandlar CR till nativa k8s-resurser, l\u00e4gger till n\u00f6dv\u00e4ndiga moduler, st\u00e4ller in l\u00e4mpliga milj\u00f6variabler och utf\u00f6r andra hj\u00e4lparbeten, vilket garanterar att containeranv\u00e4ndarapplikationer f\u00e5r tillr\u00e4ckligt med infrastrukturellt st\u00f6d.<\/li>\n<li>Sedan vidarebefordrar CRD-kontrollanten de mottagna uppgifterna till Kubernetes API f\u00f6r bearbetning av schemal\u00e4ggaren och f\u00f6r att s\u00e4ttas i drift.<\/li>\n<\/ol>\n<p>\n<b>Anm\u00e4rkning<\/b>: detta f\u00f6rhandsversionsarbetsfl\u00f6de skapades f\u00f6r de f\u00f6rsta anv\u00e4ndarna av den nya k8s-plattformen. Nu \u00e4r vi i f\u00e4rd med att utveckla denna process f\u00f6r att fullt ut integrera med v\u00e5r nya CI\/CD. Det betyder att vi inte kan dela allt som r\u00f6r Kubernetes. Vi ser fram emot att dela v\u00e5r erfarenhet och ber\u00e4tta om teamets framsteg i detta avseende i v\u00e5rt n\u00e4sta blogginl\u00e4gg \"Bygga en CI\/CD-plattform f\u00f6r Pinterest\".<\/p>\n<h4>Typer av specialresurser<\/h4>\n<p>\nBaserat p\u00e5 Pinterests specifika behov har vi utvecklat f\u00f6ljande CRD:er som passar olika arbetsfl\u00f6den:<\/p>\n<ul>\n<li>PinterestService \u00e4r stateless-tj\u00e4nster som har varit i drift l\u00e4nge. M\u00e5nga av v\u00e5ra k\u00e4rnsystem bygger p\u00e5 en upps\u00e4ttning s\u00e5dana tj\u00e4nster.<\/li>\n<li>PinterestJobSet modellerar batchuppgifter med full cykel. Det finns ett vanligt scenarie inom Pinterest d\u00e4r flera uppgifter k\u00f6r samma containrar parallellt, oavsett andra liknande processer.<\/li>\n<li>PinterestCronJob anv\u00e4nds ofta f\u00f6r sm\u00e5, periodiska belastningar. Detta \u00e4r en wrapper f\u00f6r nativ cron-funktionalitet med st\u00f6dsystem f\u00f6r Pinterest som ansvarar f\u00f6r s\u00e4kerhet, trafik, loggar och metrik.<\/li>\n<li>PinterestDaemon inkluderar daemoner f\u00f6r infrastrukturen. Denna familj v\u00e4xer kontinuerligt eftersom vi l\u00e4gger till mer st\u00f6d f\u00f6r v\u00e5ra kluster.<\/li>\n<li>PinterestTrainingJob omfattar processer f\u00f6r Tensorflow och Pytorch och ger samma niv\u00e5 av support under k\u00f6rning som alla andra CRD:er. Eftersom Tensorflow och andra maskininl\u00e4rningssystem anv\u00e4nds aktivt p\u00e5 Pinterest fanns det sk\u00e4l att bygga en separat CRD kring dem.<\/li>\n<\/ul>\n<p>\nVi arbetar ocks\u00e5 med PinterestStatefulSet, som snart kommer att anpassas f\u00f6r datalager och andra stateful-system.<\/p>\n<h4>St\u00f6d f\u00f6r k\u00f6rmilj\u00f6<\/h4>\n<p>\nN\u00e4r applikationsmodulen startas i Kubernetes, f\u00e5r den automatiskt ett certifikat f\u00f6r att identifiera sig sj\u00e4lv. Detta certifikat anv\u00e4nds f\u00f6r att f\u00e5 tillg\u00e5ng till hemlagret eller f\u00f6r att kommunicera med andra tj\u00e4nster via mTLS. Under tiden kommer containernas initialiseringskonfigurator och Daemon att ladda alla n\u00f6dv\u00e4ndiga beroenden innan containerapplikationen startas. N\u00e4r allt \u00e4r klart registrerar sidokontaktens trafik och Daemon modulens IP-adress i v\u00e5r Zookeeper, s\u00e5 att kunderna kan uppt\u00e4cka den. Allt detta kommer att fungera, eftersom n\u00e4tverksmodulen konfigurerades innan applikationen startades.<\/p>\n<p>Ovanst\u00e5ende \u00e4r typiska exempel p\u00e5 st\u00f6d f\u00f6r arbetsbelastningar under k\u00f6rning. F\u00f6r andra typer av arbetsbelastningar kan n\u00e5got annat st\u00f6d kr\u00e4vas, men allt presenteras i form av pod-niv\u00e5 sidecar, nod- eller Daemon-niv\u00e5 virtuella maskiner. Vi ser till att allt detta rullas ut inom den hanterande infrastrukturen och koordineras mellan applikationerna, vilket i slut\u00e4nden avsev\u00e4rt minskar belastningen i fr\u00e5ga om tekniskt arbete och kundsupport.<\/p>\n<h4>Testning och QA<\/h4>\n<p>\nVi har byggt en end-to-end testpipeline ovanp\u00e5 den befintliga testinfrastrukturen i Kubernetes. Dessa tester str\u00e4cker sig \u00f6ver alla v\u00e5ra kluster. V\u00e5r pipeline har genomg\u00e5tt m\u00e5nga omarbetningar innan den blev en del av produktklustret.<\/p>\n<p>F\u00f6rutom testningssystem har vi \u00f6vervaknings- och varningssystem som st\u00e4ndigt bevakar statusen f\u00f6r systemkomponenterna, resursf\u00f6rbrukningen och andra viktiga indikatorer, och meddelar oss endast vid behov av m\u00e4nsklig inblandning.<\/p>\n<h4>Alternativ<\/h4>\n<p>\nVi \u00f6verv\u00e4gde vissa alternativ till anpassade resurser, s\u00e5som mutationskontrollanter och mallsystem. Men alla dessa \u00e4r f\u00f6renade med allvarliga sv\u00e5righeter, s\u00e5 vi valde v\u00e4gen CRD.<\/p>\n<p>Mutationskontrollanten anv\u00e4ndes f\u00f6r att inf\u00f6ra sidokontakter, milj\u00f6variabler och annat st\u00f6d under k\u00f6rning. Men den st\u00f6tte p\u00e5 olika problem, s\u00e5som resursbindning och hantering av livet, vilket inte f\u00f6rekommer i CRD.<\/p>\n<p><b>Anm\u00e4rkning:<\/b> Mall f\u00f6r system, s\u00e5som Helm-diagram, anv\u00e4nds ocks\u00e5 i stor utstr\u00e4ckning f\u00f6r att k\u00f6ra applikationer med liknande konfigurationer. V\u00e5ra arbetsapplikationer \u00e4r dock f\u00f6r varierande f\u00f6r att hanteras med hj\u00e4lp av mallar. Dessutom kommer det att uppst\u00e5 f\u00f6r m\u00e5nga fel vid kontinuerlig drifts\u00e4ttning med anv\u00e4ndning av mallar.<\/p>\n<h4>Kommande arbete<\/h4>\n<p>\nJust nu hanterar vi en blandad belastning p\u00e5 alla v\u00e5ra kluster. F\u00f6r att st\u00f6dja s\u00e5dana processer av olika typer och storlekar arbetar vi inom f\u00f6ljande omr\u00e5den:<\/p>\n<ul>\n<li>En upps\u00e4ttning kluster distribuerar stora applikationer \u00f6ver olika kluster f\u00f6r att s\u00e4kerst\u00e4lla skalbarhet och stabilitet.<\/li>\n<li>Att s\u00e4kerst\u00e4lla stabilitet, skalbarhet och synlighet f\u00f6r klustret f\u00f6r att skapa en koppling mellan applikationen och dess SLA.<\/li>\n<li>Resurshantering och kvoter s\u00e5 att applikationer inte st\u00f6r varandra, och klustrets skala kontrolleras fr\u00e5n v\u00e5r sida.<\/li>\n<li>En ny CI\/CD-plattform f\u00f6r att st\u00f6dja och distribuera applikationer i Kubernetes.<\/li>\n<\/ul>\n<p>K\u00e4lla: <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\/sv\/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=\"sv_SE\" \/>\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\/sv\/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\udd47Vi skapar en kubernetes-plattform i Pinterest | ProHoster","description":"Under sin tid har Pinterest haft 300 miljoner anv\u00e4ndare som har skapat mer \u00e4n 200 miljarder pins p\u00e5 \u00f6ver 4 miljarder tavlor.","canonical_url":"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/sozdayom-kubernetes-platformu-v-pinterest","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sv_SE","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\/sv\/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\/sv\/wp-json\/wp\/v2\/posts\/37636","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/comments?post=37636"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts\/37636\/revisions"}],"predecessor-version":[{"id":158433,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts\/37636\/revisions\/158433"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media\/28249"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media?parent=37636"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/categories?post=37636"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/tags?post=37636"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}