{"id":36822,"date":"2019-10-31T22:14:01","date_gmt":"2019-10-31T19:14:01","guid":{"rendered":"https:\/\/prohoster.info\/blog\/kafka-na-kubernetes-eto-horosho\/"},"modified":"2019-10-31T22:14:01","modified_gmt":"2019-10-31T19:14:01","slug":"kafka-na-kubernetes-eto-horosho","status":"publish","type":"post","link":"https:\/\/prohoster.info\/no\/blog\/administrirovanie\/kafka-na-kubernetes-eto-horosho","title":{"rendered":"Er Kafka p\u00e5 Kubernetes \u2013 er det bra?","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Velkommen, Habr!<\/p>\n<p>Vi var de f\u00f8rste som introduserte temaet <noindex><a rel=\"nofollow\" href=\"https:\/\/www.piter.com\/collection\/all\/product\/apache-kafka-potokovaya-obrabotka-i-analiz-dannyh\">Kafka<\/a><\/noindex> og fortsetter <noindex><a rel=\"nofollow\" href=\"https:\/\/www.piter.com\/product_by_id\/132649774\">overv\u00e5ke<\/a><\/noindex> \u00e5 f\u00f8lge utviklingen av det. Spesielt har vi funnet interaksjonen mellom Kafka og <noindex><a rel=\"nofollow\" href=\"https:\/\/www.piter.com\/product_by_id\/125705747\">Kubernetes<\/a><\/noindex>. En oversikt (og ganske forsiktig) <noindex><a rel=\"nofollow\" href=\"https:\/\/www.confluent.io\/blog\/apache-kafka-kubernetes-could-you-should-you\">article<\/a><\/noindex> om dette ble publisert p\u00e5 bloggen til Confluent allerede i oktober i fjor, skrevet av Gwen Shapiro. I dag \u00f8nsker vi \u00e5 rette oppmerksomheten deres mot en ferskere, april-artikkel av Johann Gyger, som, selv om han ikke unngikk sp\u00f8rsm\u00e5lstegnet i tittelen, betrakter temaet p\u00e5 en mer konkret m\u00e5te, og supplere teksten med interessante lenker. Beklager v\u00e5r frie oversettelse av \u00abchaos monkey\u00bb, hvis dere kan!<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/piter\/blog\/462257\/\"><img decoding=\"async\" alt=\"Er Kafka p\u00e5 Kubernetes \u2013 er det bra?\" src=\"\/wp-content\/uploads\/2019\/08\/a7c9b9f2f2e0a2f55d69da18020440e6.png\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex> <\/p>\n<h4>Innledning<\/h4>\n<p>\nKubernetes er laget for \u00e5 h\u00e5ndtere arbeidsoppgaver som ikke har tilstand. Vanligvis er slike arbeidsmengder representert ved mikrotjenestearkitektur, de er lette, lett kan skaleres horisontalt, f\u00f8lger prinsippene for 12-faktorapplikasjoner, og lar oss arbeide med sikringsautomater (circuit breakers) og kaosaper (chaos monkeys).<\/p>\n<p>Kafka, plassert p\u00e5 den andre siden, fungerer i essens som en distribuert database. Dermed m\u00e5 du h\u00e5ndtere tilstand n\u00e5r du jobber, og det er mye mer tungvint enn en mikrotjeneste. Kubernetes st\u00f8tter arbeidsoppgaver med tilstand, men som Kelsey Hightower p\u00e5peker i to av sine tweets, b\u00f8r de h\u00e5ndteres med forsiktighet:<\/p>\n<blockquote><p>Noen synes at hvis de p\u00e5f\u00f8rer Kubernetes til en arbeidsmengde med tilstand, blir det en fullt administrert database som kan konkurrere med RDS. Det er ikke slik. Kanskje hvis du jobber hardt nok, legger til ekstra komponenter og involverer et SRE-team, klarer du \u00e5 sette opp RDS over Kubernetes.<\/p><\/blockquote>\n<blockquote><p>Jeg anbefaler alltid \u00e5 v\u00e6re ekstremt forsiktig med \u00e5 kj\u00f8re arbeidsmengder med tilstand p\u00e5 Kubernetes. De fleste av dem som lurer p\u00e5, \u00abkan jeg kj\u00f8re arbeidsmengder med tilstand p\u00e5 Kubernetes\u00bb, har ikke tilstrekkelig erfaring med Kubernetes, og ofte heller ikke med den arbeidsmengden de sp\u00f8r om.<\/p><\/blockquote>\n<p> S\u00e5, b\u00f8r man kj\u00f8re Kafka p\u00e5 Kubernetes? Et motsatt sp\u00f8rsm\u00e5l: Vil Kafka fungere bedre uten Kubernetes? Derfor \u00f8nsker jeg \u00e5 understreke i denne artikkelen hvordan Kafka og Kubernetes komplementerer hverandre, og hvilke fallgruver som kan oppst\u00e5 ved \u00e5 kombinere dem.<\/p>\n<h4>Kj\u00f8rets tid<\/h4>\n<p>\nLa oss snakke om det grunnleggende \u2013 kj\u00f8rets tid som s\u00e5dan<\/p>\n<p><i><b>Prosessen<\/b><\/i><\/p>\n<p>Kafka-brokere er effektive n\u00e5r det kommer til CPU-bruk. TLS kan tilf\u00f8re noen kostnader. Samtidig kan Kafka-klienter belaste CPU-en mer, hvis de bruker kryptering, men dette p\u00e5virker ikke brokerne.<\/p>\n<p><i><b>Minne<\/b><\/i><\/p>\n<p>Kafka-brokere bruker mye minne. St\u00f8rrelsen p\u00e5 JVM-haugen b\u00f8r vanligvis begrenses til 4\u20135 GB, men du vil ogs\u00e5 trenge mye systemminne, siden Kafka bruker sidecache aktivt. I Kubernetes b\u00f8r du derfor angi grenser for containere for ressurser og foresp\u00f8rslene deretter.<\/p>\n<p><i><b>Datagrunnlag<\/b><\/i><\/p>\n<p>Datagrunnlag i containere er ephemeral \u2013 data g\u00e5r tapt ved omstart. For Kafka-data kan du bruke volum, og effekten vil v\u00e6re den samme: dataene dine vil g\u00e5 tapt etter en avslutning. Dine meldinger kan likevel bli bevart p\u00e5 andre brokere som replikaer. Derfor, etter en omstart, b\u00f8r den mislykkede brokeren f\u00f8rst replikere all data, og denne prosessen kan ta tid. <code>emptyDir<\/code>Det er derfor viktig \u00e5 bruke permanent datalagring. La oss si at dette er en ikke-lokal permanent lagringsl\u00f8sning med XFS-filsystemet eller mer presist, ext4. Unng\u00e5 NFS. Jeg advarer deg. NFS versjoner v3 eller v4 vil ikke fungere. For \u00e5 oppsummere, vil Kafka-brokeren stoppe hvis den ikke kan slette datakatalogen p\u00e5 grunn av et problem med 'dumme omd\u00f8pinger', som er en kjent utfordring i NFS. Hvis jeg fortsatt ikke har overbevist deg, vennligst les denne artikkelen n\u00f8ye. <\/p>\n<p>Datagrunnlaget b\u00f8r v\u00e6re ikke-lokalt, slik at Kubernetes kan velge en ny node mer fleksibelt etter omstart eller relokalisering. <noindex><a rel=\"nofollow\" href=\"https:\/\/sbg.technology\/2018\/07\/10\/kafka-nfs\/\">g\u00e5 gjennom denne artikkelen<\/a><\/noindex>.<\/p>\n<p><i><b>Nettverk<\/b><\/i><\/p>\n<p>Som i de fleste distribuerte systemer avhenger ytelsen til Kafka sterkt av at nettverksforsinkelsene er minimal og b\u00e5ndbredden maksimal. Pr\u00f8v ikke \u00e5 plassere alle brokerne p\u00e5 samme node, da dette vil redusere tilgjengeligheten. Hvis en Kubernetes-node feiler, vil hele Kafka-klyngen ogs\u00e5 feile. S\u00f8rg heller ikke for \u00e5 spre Kafka-klyngen over hele datasentre. Det samme gjelder Kubernetes-klyngen. Et godt kompromiss i dette tilfellet er \u00e5 velge forskjellige tilgjengelighetssoner.<\/p>\n<h4>Konfigurasjon<\/h4>\n<p>\n<i><b>Vanlige manifester<\/b><\/i><\/p>\n<p>Kubernetes-siden har <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/tutorials\/stateful-application\/zookeeper\/\">et veldig godt veiledning<\/a><\/noindex> om hvordan man konfigurerer ZooKeeper ved hjelp av manifester. Siden ZooKeeper er en del av Kafka, er dette et praktisk utgangspunkt for \u00e5 bli kjent med hvilke Kubernetes-konsepter som er relevante her. N\u00e5r du har forst\u00e5tt dette, kan du bruke de samme konseptene med Kafka-klyngen.<\/p>\n<ul>\n<li><i>Pod<\/i>: pod \u2013 er den minste distribuerte enheten i Kubernetes. I en pod finnes arbeidsbelastningen din, og selve poden tilsvarer en prosess i klyngen din. En pod kan inneholde en eller flere containere. Hver ZooKeeper-server i ensemblet og hver broker i Kafka-klyngen vil kj\u00f8re i en egen pod.<\/li>\n<li><i>StatefulSet<\/i>: StatefulSet \u2013 er et Kubernetes-objekt som arbeider med flere arbeidsbelastninger som bevarer tilstander, og slike belastninger krever koordinering. StatefulSets gir garantier om rekkef\u00f8lgen av podene og deres unikhet.<\/li>\n<li><i>Headless-tjenester<\/i>: Tjenestene lar deg koble podene fra klientene ved hjelp av et logisk navn. Kubernetes h\u00e5ndterer da lastbalansering. Imidlertid, ved operasjoner med arbeidsbelastninger som bevarer tilstander, som i tilfelle ZooKeeper og Kafka, m\u00e5 klientene dele informasjon med en spesifikk instans. Her er headless-tjenester nyttige: i et slikt tilfelle vil klienten fortsatt ha et logisk navn, men den trenger ikke \u00e5 kontakte poden direkte. <\/li>\n<li><i>Volum for langvarig lagring<\/i>: slike volumer er n\u00f8dvendig for \u00e5 konfigurere ikke-lokal blokk-lagring som nevnt ovenfor.<\/li>\n<\/ul>\n<p>\nP\u00e5 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/Yolean\/kubernetes-kafka\">Yolean<\/a><\/noindex> tilbyr et omfattende sett med manifester for enkelt \u00e5 komme i gang med Kafka p\u00e5 Kubernetes.<\/p>\n<p><i><b>Helm-diagrammer<\/b><\/i><\/p>\n<p>Helm er en pakkeh\u00e5ndterer for Kubernetes som kan sammenlignes med pakkeh\u00e5ndterere for OS, som yum, apt, Homebrew eller Chocolatey. Med den kan man enkelt installere forh\u00e5ndsdefinerte programvarepakker beskrevet i Helm-diagrammer. Et godt tilpasset Helm-diagram forenkler den komplekse oppgaven med \u00e5 konfigurere alle innstillinger for \u00e5 bruke Kafka p\u00e5 Kubernetes. Det finnes flere Kafka-diagrammer: den offisielle befinner seg <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/helm\/charts\/tree\/master\/incubator\/kafka\">i inkubatorstatus<\/a><\/noindex>, det er en fra <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/confluentinc\/cp-helm-charts\/tree\/master\/charts\/cp-kafka\">Confluent<\/a><\/noindex>, en annen er fra <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/bitnami\/charts\/tree\/master\/bitnami\/kafka\">Bitnami<\/a><\/noindex>.<\/p>\n<p><i><b>Operat\u00f8rer<\/b><\/i><\/p>\n<p>Siden Helm har visse ulemper, f\u00e5r et annet verkt\u00f8y mer popularitet: Kubernetes-operat\u00f8rer. En operat\u00f8r pakker ikke bare programvaren for Kubernetes, men lar deg ogs\u00e5 distribuere slik programvare og administrere den.<\/p>\n<p>I listen over <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/operator-framework\/awesome-operators\">fantastiske operat\u00f8rer<\/a><\/noindex> nevnes to operat\u00f8rer for Kafka. Den ene er <noindex><a rel=\"nofollow\" href=\"https:\/\/strimzi.io\/\">Strimzi<\/a><\/noindex>. Med Strimzi er det enkelt \u00e5 sette opp et Kafka-klynge p\u00e5 minutter. Nesten ingen konfigurasjon kreves, i tillegg tilbyr operat\u00f8ren noen praktiske funksjoner, som punkt-til-punkt TLS-kryptering innen klyngen. Confluent tilbyr ogs\u00e5 <noindex><a rel=\"nofollow\" href=\"https:\/\/www.confluent.io\/confluent-operator\/\">sin egen operat\u00f8r<\/a><\/noindex>.<\/p>\n<p><b>Ytelse<\/b><\/p>\n<p>Det er viktig \u00e5 teste ytelsen ved \u00e5 gi den installerte Kafka-instansen dine kontrollpunkter. Slike tester kan hjelpe deg med \u00e5 oppdage potensielle flaskehalser f\u00f8r problemene oppst\u00e5r. Heldigvis tilbyr Kafka allerede to verkt\u00f8y for ytelsestesting: <code>kafka-producer-perf-test.sh<\/code> og <code>kafka-consumer-perf-test.sh<\/code>. Bruk dem aktivt. For referanse kan du sammenligne med resultatene beskrevet i <noindex><a rel=\"nofollow\" href=\"https:\/\/engineering.linkedin.com\/kafka\/benchmarking-apache-kafka-2-million-writes-second-three-cheap-machines\">denne posten<\/a><\/noindex> av Jay Kreps, eller orientere deg etter <noindex><a rel=\"nofollow\" href=\"https:\/\/medium.com\/@stephane.maarek\/an-honest-review-of-aws-managed-apache-kafka-amazon-msk-94b1ff9459d8\">denne oversikten<\/a><\/noindex> om Amazon MSK av St\u00e9phane Maarek.<\/p>\n<h4>Operasjoner<\/h4>\n<p>\n<i><b>Overv\u00e5kning<\/b><\/i><\/p>\n<p>Transparens i systemet er veldig viktig - ellers forst\u00e5r du ikke hva som skjer. I dag finnes det kraftige verkt\u00f8y som gir overv\u00e5kning basert p\u00e5 metrikker i cloud-native stil. To popul\u00e6re verkt\u00f8y for dette form\u00e5let er Prometheus og Grafana. Prometheus kan samle metrikker fra alle Java-prosesser (Kafka, Zookeeper, Kafka Connect) ved hjelp av JMX-export\u00f8ren - den enkleste m\u00e5ten. Hvis du legger til metrikker fra cAdvisor, vil du f\u00e5 en mer omfattende forst\u00e5else av hvordan ressurser brukes i Kubernetes.<\/p>\n<p>Strimzi har et nyttig Grafana-dashboard for Kafka. Det visualiserer n\u00f8kkelmetrikker, som for eksempel ikke-replikerte sektorer eller de som er offline. Alt er veldig forst\u00e5elig. Disse metrikene suppleres med informasjon om ressursbruk og ytelse, samt stabilitetsindikatorer. Dermed f\u00e5r du en grunnleggende overv\u00e5king av Kafka-klusteret helt gratis!<\/p>\n<p><img decoding=\"async\" alt=\"Er Kafka p\u00e5 Kubernetes \u2013 er det bra?\" src=\"\/wp-content\/uploads\/2019\/08\/65ab468f7ebc0f376796990e41c62a48.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKilde: <noindex><a rel=\"nofollow\" href=\"https:\/\/strimzi.io\/docs\/master\/#kafka_dashboard\">strimzi.io\/docs\/master\/#kafka_dashboard<\/a><\/noindex><\/p>\n<p>Alt dette ville v\u00e6re fint \u00e5 supplere med klientoverv\u00e5king (metrikker for konsumenter og produsenter), samt overv\u00e5king av forsinkelse (for dette finnes <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/linkedin\/Burrow\">Burrow<\/a><\/noindex>) og end-to-end overv\u00e5king \u2013 for dette, bruk <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/linkedin\/kafka-monitor\">Kafka Monitor<\/a><\/noindex>.<\/p>\n<p><i><b>Logging<\/b><\/i><\/p>\n<p>Logging er en annen sv\u00e6rt viktig oppgave. S\u00f8rg for at alle containere i installasjonen din av Kafka logger til <code>stdout<\/code> og <code>stderr<\/code>, og s\u00f8rg ogs\u00e5 for at Kubernetes-klusteret ditt samler alle logger i en sentral logginfrastruktur, for eksempel i <noindex><a rel=\"nofollow\" href=\"https:\/\/www.piter.com\/collection\/all\/product\/elasticsearch-kibana-logstash-i-poiskovye-sistemy-novogo-pokoleniya\">Elasticsearch<\/a><\/noindex>.<\/p>\n<p><i><b>Sunnhetssjekk<\/b><\/i><\/p>\n<p>Kubernetes bruker livssjekker (liveness) og klarhetsjekker (readiness) for \u00e5 sjekke om poddene dine fungerer som de skal. Hvis livssjekken mislykkes, vil Kubernetes stoppe denne containeren, og deretter automatisk starte den p\u00e5 nytt hvis omstartpolitikken er riktig satt. Hvis klarhetsjekken mislykkes, isolerer Kubernetes denne podden fra \u00e5 h\u00e5ndtere foresp\u00f8rslene. Dermed krever slike situasjoner ikke lenger manuell inngripen, noe som er en stor fordel. <\/p>\n<p><i><b>Rullende oppdateringer<\/b><\/i><\/p>\n<p>StatefulSets st\u00f8tter automatisk oppdatering: n\u00e5r du velger strategien RollingUpdate, vil hver Kafka-pod bli oppdatert sekvensielt. Dette kan redusere nedetid til null.<\/p>\n<p><i><b>Skalering<\/b><\/i><\/p>\n<p>\u00c5 skalere Kafka-klusteret er en utfordrende oppgave. Imidlertid er det veldig enkelt \u00e5 skalere poddene i Kubernetes til et bestemt antall repliker, noe som betyr at du kan deklarativt definere s\u00e5 mange Kafka-brokers som du \u00f8nsker. Den mest kompliserte delen av dette er gjenfordelingen av sektorer etter oppskalering eller f\u00f8r nedskalering. Nok en gang vil Kubernetes hjelpe deg med denne oppgaven.<\/p>\n<p><i><b>Administrasjon<\/b><\/i><\/p>\n<p>Oppgaver knyttet til administrasjonen av Kafka-klyngen din, spesielt oppretting av emner og omfordeling av partisjoner, kan utf\u00f8res ved hjelp av eksisterende shell-skript ved \u00e5 \u00e5pne kommandolinjegrensesnittet i podene dine. Imidlertid er ikke denne l\u00f8sningen spesielt elegant. Strimzi st\u00f8tter emnestyring gjennom en annen operat\u00f8r. Det er her det er rom for forbedringer.<\/p>\n<p><i><b>Sikkerhetskopiering og gjenoppretting<\/b><\/i><\/p>\n<p>N\u00e5 vil tilgjengeligheten til Kafka v\u00e5r avhenge av tilgjengeligheten til Kubernetes. Hvis Kubernetes-klyngen din g\u00e5r ned, s\u00e5 vil i verste fall ogs\u00e5 Kafka-klyngen g\u00e5 ned. I henhold til Murphys lov vil dette n\u00f8dvendigvis skje, og du vil miste data. For \u00e5 redusere risikoen for slike hendelser, b\u00f8r du grundig utvikle et sikkerhetskopieringskonsept. Du kan bruke MirrorMaker, og et annet alternativ er \u00e5 benytte S3 til dette, som beskrevet i denne <noindex><a rel=\"nofollow\" href=\"https:\/\/jobs.zalando.com\/tech\/blog\/backing-up-kafka-zookeeper\/\">posten<\/a><\/noindex> fra Zalando.<\/p>\n<h4>Konklusjon<\/h4>\n<p>\nN\u00e5r du arbeider med sm\u00e5 eller mellomstore Kafka-klynger, er det definitivt fornuftig \u00e5 bruke Kubernetes, da det gir ekstra fleksibilitet og forenkler arbeidet med operat\u00f8rer. Hvis du har sv\u00e6rt strenge ikke-funksjonelle krav n\u00e5r det gjelder latens og\/eller b\u00e5ndbredde, kan det imidlertid v\u00e6re bedre \u00e5 vurdere et annet distribusjonsalternativ.<br \/>\n<br \/>Kilde: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/piter\/blog\/462257\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u043c \u0432\u0430\u0441, \u0425\u0430\u0431\u0440! \u0412 \u0441\u0432\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u043c\u044b \u043f\u0435\u0440\u0432\u044b\u043c\u0438 \u0432\u044b\u0432\u0435\u043b\u0438 \u043d\u0430 \u0440\u043e\u0441\u0441\u0438\u0439\u0441\u043a\u0438\u0439 \u0440\u044b\u043d\u043e\u043a \u0442\u0435\u043c\u0443 Kafka \u0438 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u043c \u0441\u043b\u0435\u0434\u0438\u0442\u044c \u0437\u0430 \u0435\u0435 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435\u043c. \u0412 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438, \u043d\u0430\u043c \u043f\u043e\u043a\u0430\u0437\u0430\u043b\u0430\u0441\u044c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0439 \u0442\u0435\u043c\u0430 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f Kafka \u0438 Kubernetes. \u041e\u0431\u0437\u043e\u0440\u043d\u0430\u044f (\u0438 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043e\u0441\u0442\u043e\u0440\u043e\u0436\u043d\u0430\u044f) \u0441\u0442\u0430\u0442\u044c\u044f \u043d\u0430 \u044d\u0442\u0443 \u0442\u0435\u043c\u0443 \u0432\u044b\u0445\u043e\u0434\u0438\u043b\u0430 \u0432 \u0431\u043b\u043e\u0433\u0435 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Confluent \u0435\u0449\u0435 \u0432 \u043e\u043a\u0442\u044f\u0431\u0440\u0435 \u043f\u0440\u043e\u0448\u043b\u043e\u0433\u043e \u0433\u043e\u0434\u0430 \u043f\u043e\u0434 \u0430\u0432\u0442\u043e\u0440\u0441\u0442\u0432\u043e\u043c \u0413\u0432\u0435\u043d \u0428\u0430\u043f\u0438\u0440\u044b. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u0436\u0435 \u043c\u044b [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":27586,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-36822","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.5 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u043c \u0432\u0430\u0441, \u0425\u0430\u0431\u0440! \u0412 \u0441\u0432\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u043c\u044b \u043f\u0435\u0440\u0432\u044b\u043c\u0438 \u0432\u044b\u0432\u0435\u043b\u0438 \u043d\u0430 \u0440\u043e\u0441\u0441\u0438\u0439\u0441\u043a\u0438\u0439 \u0440\u044b\u043d\u043e\u043a \u0442\u0435\u043c\u0443\" \/>\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\/no\/blog\/administrirovanie\/kafka-na-kubernetes-eto-horosho\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.5\" \/>\n\t\t<meta property=\"og:locale\" content=\"nn_NO\" \/>\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\udd47Kafka \u043d\u0430 Kubernetes \u2014 \u044d\u0442\u043e \u0445\u043e\u0440\u043e\u0448\u043e? | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u043c \u0432\u0430\u0441, \u0425\u0430\u0431\u0440! \u0412 \u0441\u0432\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u043c\u044b \u043f\u0435\u0440\u0432\u044b\u043c\u0438 \u0432\u044b\u0432\u0435\u043b\u0438 \u043d\u0430 \u0440\u043e\u0441\u0441\u0438\u0439\u0441\u043a\u0438\u0439 \u0440\u044b\u043d\u043e\u043a \u0442\u0435\u043c\u0443\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/no\/blog\/administrirovanie\/kafka-na-kubernetes-eto-horosho\" \/>\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:14:01+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:14:01+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\udd47Er Kafka p\u00e5 Kubernetes bra? | ProHoster","description":"Vi \u00f8nsker dere velkommen, Habr! En gang i tiden var vi de f\u00f8rste som introduserte temaet","canonical_url":"https:\/\/prohoster.info\/no\/blog\/administrirovanie\/kafka-na-kubernetes-eto-horosho","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"nn_NO","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\udd47Kafka \u043d\u0430 Kubernetes \u2014 \u044d\u0442\u043e \u0445\u043e\u0440\u043e\u0448\u043e? | ProHoster","og:description":"\u041f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u043c \u0432\u0430\u0441, \u0425\u0430\u0431\u0440! \u0412 \u0441\u0432\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u043c\u044b \u043f\u0435\u0440\u0432\u044b\u043c\u0438 \u0432\u044b\u0432\u0435\u043b\u0438 \u043d\u0430 \u0440\u043e\u0441\u0441\u0438\u0439\u0441\u043a\u0438\u0439 \u0440\u044b\u043d\u043e\u043a \u0442\u0435\u043c\u0443","og:url":"https:\/\/prohoster.info\/no\/blog\/administrirovanie\/kafka-na-kubernetes-eto-horosho","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:14:01+00:00","article:modified_time":"2019-10-31T19:14:01+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"36822","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-01-22 04:58:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:38:24","updated":"2026-01-22 04:58:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/posts\/36822","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/comments?post=36822"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/posts\/36822\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/media\/27586"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/media?parent=36822"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/categories?post=36822"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/tags?post=36822"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}