{"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\/sv\/blog\/administrirovanie\/kafka-na-kubernetes-eto-horosho","title":{"rendered":"\u00c4r Kafka p\u00e5 Kubernetes bra?","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>V\u00e4lkomna, Habr!<\/p>\n<p>Vi var de f\u00f6rsta som introducerade temat <noindex><a rel=\"nofollow\" href=\"https:\/\/www.piter.com\/collection\/all\/product\/apache-kafka-potokovaya-obrabotka-i-analiz-dannyh\">Kafka<\/a><\/noindex> och forts\u00e4tter <noindex><a rel=\"nofollow\" href=\"https:\/\/www.piter.com\/product_by_id\/132649774\">att h\u00e5lla utkik<\/a><\/noindex> att f\u00f6lja dess utveckling. I synnerhet tyckte vi att temat om interaktion mellan Kafka och <noindex><a rel=\"nofollow\" href=\"https:\/\/www.piter.com\/product_by_id\/125705747\">Kubernetes<\/a><\/noindex>. En \u00f6versiktlig (och ganska f\u00f6rsiktig) artikel <noindex><a rel=\"nofollow\" href=\"https:\/\/www.confluent.io\/blog\/apache-kafka-kubernetes-could-you-should-you\">artikeln<\/a><\/noindex> om detta publicerades p\u00e5 Confluents blogg redan i oktober f\u00f6rra \u00e5ret av Gwen Shapiro. Idag vill vi rikta er uppm\u00e4rksamhet mot en mer aktuell artikel fr\u00e5n april av Johann Gyger, som, \u00e4ven om han inte skippade fr\u00e5getecknet i titeln, behandlar \u00e4mnet mer konkret och kompletterar texten med intressanta l\u00e4nkar. Ber om urs\u00e4kt f\u00f6r den fria \u00f6vers\u00e4ttningen \"chaos monkey\" om ni kan!<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/piter\/blog\/462257\/\"><img decoding=\"async\" alt=\"\u00c4r Kafka p\u00e5 Kubernetes 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>Introduktion<\/h4>\n<p>\nKubernetes \u00e4r avsett att hantera tillst\u00e5ndsl\u00f6s belastning. Vanligtvis \u00e4r s\u00e5dana arbetsbelastningar representerade i form av mikrotj\u00e4nstarkitektur, de \u00e4r l\u00e4tta, l\u00e4tt att horisontellt skala, f\u00f6ljer principerna f\u00f6r 12-faktorapplikationer, och till\u00e5ter arbete med automatiska brytare (circuit breakers) och kaosapor (chaos monkeys).<\/p>\n<p>Kafka, som ligger p\u00e5 andra sidan, \u00e4r i grunden en distribuerad databas. D\u00e4rf\u00f6r m\u00e5ste ni hantera tillst\u00e5nd, vilket \u00e4r mycket tyngre \u00e4n en mikrotj\u00e4nst. Kubernetes st\u00f6der tillst\u00e5ndsd\u00e5lig belastning, men som Kelsey Hightower p\u00e5pekar i tv\u00e5 av sina tweets, b\u00f6r man vara f\u00f6rsiktig med dem:<\/p>\n<blockquote><p>N\u00e5gra tror att om Kubernetes k\u00f6rs p\u00e5 en tillst\u00e5ndsl\u00f6s belastning, blir det en helt hanterad databas som kan konkurrera med RDS. S\u00e5 \u00e4r det inte. Kanske om man g\u00f6r tillr\u00e4ckligt med arbete, l\u00e4gger till ytterligare komponenter och involverar ett SRE-team, s\u00e5 kan man bygga RDS ovanp\u00e5 Kubernetes.<\/p><\/blockquote>\n<blockquote><p>Jag rekommenderar alltid att man ut\u00f6var extrem f\u00f6rsiktighet n\u00e4r man k\u00f6r tillst\u00e5ndsbevarande belastningar p\u00e5 Kubernetes. De flesta som undrar \"kan jag k\u00f6ra tillst\u00e5ndsbevarande belastningar p\u00e5 Kubernetes\" har inte tillr\u00e4cklig erfarenhet av att arbeta med Kubernetes, och ofta inte ens med den belastning de fr\u00e5gar om.<\/p><\/blockquote>\n<p> S\u00e5, b\u00f6r man k\u00f6ra Kafka p\u00e5 Kubernetes? En annan fr\u00e5ga: skulle Kafka fungera b\u00e4ttre utan Kubernetes? D\u00e4rf\u00f6r vill jag betona i denna artikel hur Kafka och Kubernetes kompletterar varandra, och vilka fallgropar som kan uppst\u00e5 n\u00e4r man kombinerar dem.<\/p>\n<h4>K\u00f6rningstid<\/h4>\n<p>\nL\u00e5t oss prata om en grundl\u00e4ggande sak \u2013 k\u00f6rningsmilj\u00f6n i sig<\/p>\n<p><i><b>Process<\/b><\/i><\/p>\n<p>Kafka-brokers \u00e4r bra att arbeta med CPU. TLS kan inneb\u00e4ra vissa kostnader. Samtidigt kan Kafka-klienter belasta CPU mer om de anv\u00e4nder kryptering, men detta p\u00e5verkar inte brokerns prestanda.<\/p>\n<p><i><b>Minne<\/b><\/i><\/p>\n<p>Kafka-brokers kr\u00e4ver mycket minne. JVM-h\u00f6gen b\u00f6r vanligtvis begr\u00e4nsas till 4\u20135 GB, men du kommer ocks\u00e5 att beh\u00f6va mycket systemminne eftersom Kafka anv\u00e4nder sidcache intensivt. I Kubernetes ska du st\u00e4lla in resursgr\u00e4nser och -beg\u00e4rningar f\u00f6r containern p\u00e5 l\u00e4mpligt s\u00e4tt.<\/p>\n<p><i><b>Datacenter<\/b><\/i><\/p>\n<p>Datacenter i containrar \u00e4r flyktiga \u2013 data g\u00e5r f\u00f6rlorade vid omstart. F\u00f6r Kafka-data kan en volym anv\u00e4ndas <code>emptyDir<\/code>, och effekten blir liknande: dina brokers data kommer att g\u00e5 f\u00f6rlorade efter avslutande. Dina meddelanden kan \u00e4nd\u00e5 bevaras p\u00e5 andra brokers som repliker. S\u00e5 efter en omstart m\u00e5ste den misslyckade brokern f\u00f6rst replikera all data, och denna process kan ta tid. <\/p>\n<p>Det \u00e4r d\u00e4rf\u00f6r man b\u00f6r anv\u00e4nda permanent datalagring. L\u00e5t det vara n\u00e5gon form av icke-lokal permanent lagring med ett filsystem som XFS eller, mer exakt, ext4. Anv\u00e4nd inte NFS. Jag varnar dig. NFS-versioner v3 eller v4 fungerar inte. Kort sagt, Kafka-brokern kommer att krascha om den inte kan ta bort katalogen med data p\u00e5 grund av problem med \"dumma omdirigeringar\" som \u00e4r aktuella i NFS. Om jag fortfarande inte har \u00f6vertygat dig, l\u00e4s noggrant <noindex><a rel=\"nofollow\" href=\"https:\/\/sbg.technology\/2018\/07\/10\/kafka-nfs\/\">denna artikel<\/a><\/noindex>. Datacenter m\u00e5ste vara icke-lokal f\u00f6r att Kubernetes ska kunna v\u00e4lja en ny nod mer flexibelt efter omstart eller omflyttning.<\/p>\n<p><i><b>N\u00e4tverk<\/b><\/i><\/p>\n<p>Precis som i de flesta distribuerade system beror Kafka:s prestanda starkt p\u00e5 att n\u00e4tverksf\u00f6rdr\u00f6jningar \u00e4r minimala och bandbredden maximal. F\u00f6rs\u00f6k inte att placera alla m\u00e4klare p\u00e5 samma nod, eftersom det skulle minska tillg\u00e4ngligheten. Om en Kubernetes-nod g\u00e5r ner, g\u00e5r hela Kafka-klustret ner. Dela inte heller upp Kafka-klustret \u00f6ver hela datacenter. Detsamma g\u00e4ller Kubernetes-klustret. En bra kompromiss h\u00e4r \u00e4r att v\u00e4lja olika tillg\u00e4nglighetszoner.<\/p>\n<h4>Konfiguration<\/h4>\n<p>\n<i><b>Vanliga manifest<\/b><\/i><\/p>\n<p>P\u00e5 Kubernetes-webbplatsen finns <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/tutorials\/stateful-application\/zookeeper\/\">en mycket bra guide<\/a><\/noindex> om hur man konfigurerar ZooKeeper med hj\u00e4lp av manifest. Eftersom ZooKeeper ing\u00e5r i Kafka \u00e4r det ett bra st\u00e4lle att b\u00f6rja l\u00e4ra sig om vilka Kubernetes-koncept som \u00e4r till\u00e4mpliga h\u00e4r. N\u00e4r du har f\u00f6rst\u00e5tt detta kan du till\u00e4mpa samma koncept p\u00e5 Kafka-klustret.<\/p>\n<ul>\n<li><i>Pod<\/i>: en pod \u00e4r den minimiutvecklade enheten i Kubernetes. I en pod finns din arbetsbelastning, och podden motsvarar en process i ditt kluster. I en pod finns en eller flera containrar. Varje ZooKeeper-server i ensemblet och varje m\u00e4klare i Kafka-klustret kommer att k\u00f6ras i en separat pod.<\/li>\n<li><i>StatefulSet<\/i>: en StatefulSet \u00e4r ett Kubernetes-objekt som arbetar med flera arbetsbelastningar som bevarar tillst\u00e5nd, och s\u00e5dana belastningar kr\u00e4ver samordning. StatefulSets ger garantier f\u00f6r ordningen f\u00f6r pods och deras unika identifiering.<\/li>\n<li><i>Headless-tj\u00e4nster<\/i>: Tj\u00e4nster g\u00f6r det m\u00f6jligt att koppla pods fr\u00e5n klienter med hj\u00e4lp av ett logiskt namn. Kubernetes ansvarar i det fallet f\u00f6r lastbalanseringen. Men vid operationer med tillst\u00e5ndsh\u00e5llande arbetsbelastningar, som med ZooKeeper och Kafka, beh\u00f6ver klienterna utbyta information med en specifik instans. H\u00e4r kommer headless-tj\u00e4nster till nytta: i det fallet har klienten fortfarande ett logiskt namn, men kan inte beh\u00f6va adressera podden direkt. <\/li>\n<li><i>Volym f\u00f6r l\u00e5ngvarig lagring<\/i>: s\u00e5dana volymer beh\u00f6vs f\u00f6r att konfigurera icke-lokal blocklagring som n\u00e4mndes tidigare.<\/li>\n<\/ul>\n<p>\nP\u00e5 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/Yolean\/kubernetes-kafka\">Yolean<\/a><\/noindex> tillhandah\u00e5ller en helt\u00e4ckande upps\u00e4ttning manifest som g\u00f6r det l\u00e4tt att komma ig\u00e5ng med Kafka p\u00e5 Kubernetes.<\/p>\n<p><i><b>Helm-diagram<\/b><\/i><\/p>\n<p>Helm \u00e4r en paketchef f\u00f6r Kubernetes som kan j\u00e4mf\u00f6ras med paketchefer f\u00f6r operativsystem, s\u00e5som yum, apt, Homebrew eller Chocolatey. Med hj\u00e4lp av den kan man enkelt installera f\u00f6rdefinierade programvarupaket som beskrivs i Helm-diagram. Ett v\u00e4l utformat Helm-diagram f\u00f6renklar den komplexa uppgiften: hur man korrekt konfigurerar alla parametrar f\u00f6r att anv\u00e4nda Kafka p\u00e5 Kubernetes. Det finns flera Kafka-diagram: den officiella finns <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/helm\/charts\/tree\/master\/incubator\/kafka\">i inkubationsstadiet<\/a><\/noindex>, det finns en fr\u00e5n <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/confluentinc\/cp-helm-charts\/tree\/master\/charts\/cp-kafka\">Confluent<\/a><\/noindex>, en annan \u2013 fr\u00e5n <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/bitnami\/charts\/tree\/master\/bitnami\/kafka\">Bitnami<\/a><\/noindex>.<\/p>\n<p><i><b>Operat\u00f6rer<\/b><\/i><\/p>\n<p>Eftersom Helm har vissa begr\u00e4nsningar, f\u00e5r ett annat verktyg, Kubernetes-operat\u00f6rer, stor popularitet. En operat\u00f6r paketerar inte bara programvara f\u00f6r Kubernetes, utan m\u00f6jligg\u00f6r \u00e4ven distribution och hantering av den programvaran.<\/p>\n<p>I listan \u00f6ver <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/operator-framework\/awesome-operators\">fantastiska operat\u00f6rer<\/a><\/noindex> n\u00e4mns tv\u00e5 operat\u00f6rer f\u00f6r Kafka. En av dem \u00e4r <noindex><a rel=\"nofollow\" href=\"https:\/\/strimzi.io\/\">Strimzi<\/a><\/noindex>. Med Strimzi \u00e4r det enkelt att s\u00e4tta upp en Kafka-kluster p\u00e5 n\u00e5gra minuter. N\u00e4stan ingen konfiguration beh\u00f6vs, och operat\u00f6ren erbjuder dessutom n\u00e5gra trevliga funktioner, till exempel punkt-till-punkt TLS-kryptering inom klustret. Confluent erbjuder ocks\u00e5 <noindex><a rel=\"nofollow\" href=\"https:\/\/www.confluent.io\/confluent-operator\/\">sin egen operat\u00f6r<\/a><\/noindex>.<\/p>\n<p><b>Performance<\/b><\/p>\n<p>Det \u00e4r mycket viktigt att testa prestandan genom att f\u00f6rse din installerade Kafka-instans med kontrollpunkter. S\u00e5dana tester kan hj\u00e4lpa dig att identifiera potentiella flaskhalsar innan problem uppst\u00e5r. Lyckligtvis tillhandah\u00e5ller Kafka redan tv\u00e5 verktyg f\u00f6r prestandatestning: <code>kafka-producer-perf-test.sh<\/code> och <code>kafka-consumer-perf-test.sh<\/code>. Anv\u00e4nd dem aktivt. F\u00f6r referens kan du konsultera resultaten som beskrivs av <noindex><a rel=\"nofollow\" href=\"https:\/\/engineering.linkedin.com\/kafka\/benchmarking-apache-kafka-2-million-writes-second-three-cheap-machines\">detta inl\u00e4gg<\/a><\/noindex> Jay Kreps, eller f\u00f6rlita dig p\u00e5 <noindex><a rel=\"nofollow\" href=\"https:\/\/medium.com\/@stephane.maarek\/an-honest-review-of-aws-managed-apache-kafka-amazon-msk-94b1ff9459d8\">denna \u00f6versikt<\/a><\/noindex> Amazon MSK av St\u00e9phane Maarek.<\/p>\n<h4>Operationer<\/h4>\n<p>\n<i><b>\u00d6vervakning<\/b><\/i><\/p>\n<p>Transparens i systemet \u00e4r mycket viktigt \u2013 annars f\u00f6rst\u00e5r du inte vad som h\u00e4nder. Idag finns det ett gediget verktyg som erbjuder \u00f6vervakning baserad p\u00e5 metrics i stil med cloud native. Tv\u00e5 popul\u00e4ra verktyg f\u00f6r detta \u00e4ndam\u00e5l \u00e4r Prometheus och Grafana. Prometheus kan samla in metrics fr\u00e5n alla Java-processer (Kafka, Zookeeper, Kafka Connect) med hj\u00e4lp av JMX-export\u00f6ren \u2013 p\u00e5 det enklaste s\u00e4ttet. Om du l\u00e4gger till cAdvisor-metrics kan du f\u00e5 en mer helt\u00e4ckande bild av hur resurser anv\u00e4nds i Kubernetes.<\/p>\n<p>Strimzi har ett mycket anv\u00e4ndarv\u00e4nligt exempel p\u00e5 en Grafana-instrumentpanel f\u00f6r Kafka. Den visualiserar nyckelmetrik, som till exempel omapade partitioner eller de som \u00e4r offline. Allt \u00e4r mycket tydligt. Dessa m\u00e4tningar kompletteras med information om resursanv\u00e4ndning och prestanda, samt stabilitetsindikatorer. P\u00e5 s\u00e5 s\u00e4tt f\u00e5r du en grundl\u00e4ggande \u00f6vervakning av Kafka-klustret kostnadsfritt!<\/p>\n<p><img decoding=\"async\" alt=\"\u00c4r Kafka p\u00e5 Kubernetes bra?\" src=\"\/wp-content\/uploads\/2019\/08\/65ab468f7ebc0f376796990e41c62a48.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nK\u00e4lla: <noindex><a rel=\"nofollow\" href=\"https:\/\/strimzi.io\/docs\/master\/#kafka_dashboard\">strimzi.io\/docs\/master\/#kafka_dashboard<\/a><\/noindex><\/p>\n<p>Allt detta skulle vara bra att komplettera med klient\u00f6vervakning (metrik f\u00f6r konsumenter och producenter), samt \u00f6vervakning av latens (f\u00f6r detta finns <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/linkedin\/Burrow\">Burrow<\/a><\/noindex>) och \u00f6vergripande \u00f6vervakning \u2013 f\u00f6r detta anv\u00e4nder du <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/linkedin\/kafka-monitor\">Kafka Monitor<\/a><\/noindex>.<\/p>\n<p><i><b>Loggning<\/b><\/i><\/p>\n<p>Loggning \u00e4r en annan viktig uppgift. Se till att alla containrar i din Kafka-installation loggas till <code>stdout<\/code> och <code>stderr<\/code>, och se ocks\u00e5 till att ditt Kubernetes-kluster aggregerar alla loggar i en central logginfrastruktur, till exempel 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>Kontroll av tillg\u00e4nglighet<\/b><\/i><\/p>\n<p>Kubernetes anv\u00e4nder liveness- och readiness-prober f\u00f6r att kontrollera om dina pods fungerar som de ska. Om liveness-proben misslyckas kommer Kubernetes att stoppa denna container och sedan automatiskt starta om den, om omstartspolicyn \u00e4r korrekt inst\u00e4lld. Om readiness-proben misslyckas kommer Kubernetes att isolera denna pod fr\u00e5n att ta emot f\u00f6rfr\u00e5gningar. P\u00e5 s\u00e5 s\u00e4tt beh\u00f6vs det ingen manuell ingripande i s\u00e5dana fall, vilket \u00e4r en stor f\u00f6rdel. <\/p>\n<p><i><b>Utrullning av uppdateringar<\/b><\/i><\/p>\n<p>StatefulSets st\u00f6der automatiska uppdateringar: n\u00e4r du v\u00e4ljer strategin RollingUpdate kommer varje Kafka-pod att uppdateras i tur och ordning. P\u00e5 s\u00e5 s\u00e4tt kan du minimera stillest\u00e5ndstiden till noll.<\/p>\n<p><i><b>Skalning<\/b><\/i><\/p>\n<p>Att skala Kafka-klustret \u00e4r en utmaning. Men i Kubernetes \u00e4r det mycket enkelt att skala pods till ett visst antal replika, vilket betyder att du kan deklarativt definiera s\u00e5 m\u00e5nga Kafka-brokers som du vill. Det sv\u00e5raste i detta fall \u00e4r att omf\u00f6rdela partitioner efter att ha skalat upp eller innan du skalar ner. \u00c5terigen kommer Kubernetes att hj\u00e4lpa dig med denna uppgift.<\/p>\n<p><i><b>Administration<\/b><\/i><\/p>\n<p>Uppgifter relaterade till administration av din Kafka-kluster, s\u00e4rskilt skapande av \u00e4mnen och omf\u00f6rdelning av partitioner, kan utf\u00f6ras med hj\u00e4lp av de befintliga shell-skripten genom att \u00f6ppna kommandoradsgr\u00e4nssnittet i dina pods. Men detta \u00e4r inte en s\u00e4rskilt elegant l\u00f6sning. Strimzi st\u00f6djer hantering av \u00e4mnen med hj\u00e4lp av en annan operator. H\u00e4r finns det mer att utveckla.<\/p>\n<p><i><b>S\u00e4kerhetskopiering och \u00e5terst\u00e4llning<\/b><\/i><\/p>\n<p>Nu kommer tillg\u00e4ngligheten av Kafka att bero p\u00e5 tillg\u00e4ngligheten av Kubernetes. Om din Kubernetes-kluster g\u00e5r ner, kommer i v\u00e4rsta fall \u00e4ven Kafka-klustret att krascha. Enligt Murphys lag kommer detta garanterat att h\u00e4nda, och du kommer att f\u00f6rlora data. F\u00f6r att minska risken f\u00f6r s\u00e5dana situationer, \u00e4r det viktigt att noggrant utarbeta en s\u00e4kerhetskopieringsstrategi. Du kan anv\u00e4nda MirrorMaker, ett annat alternativ \u00e4r att utnyttja S3 f\u00f6r detta, som beskrivs i detta <noindex><a rel=\"nofollow\" href=\"https:\/\/jobs.zalando.com\/tech\/blog\/backing-up-kafka-zookeeper\/\">inl\u00e4gg<\/a><\/noindex> fr\u00e5n Zalando.<\/p>\n<h4>Slutsats<\/h4>\n<p>\nN\u00e4r man arbetar med sm\u00e5 eller medelstora Kafka-kluster \u00e4r det definitivt f\u00f6rnuftigt att anv\u00e4nda Kubernetes, eftersom det ger ytterligare flexibilitet och f\u00f6renklar arbetet med operat\u00f6rer. Om du har mycket strikta icke-funktionella krav relaterade till latens och\/eller kapacitetsanv\u00e4ndning, kan det vara b\u00e4ttre att \u00f6verv\u00e4ga ett annat distributionsalternativ.<br \/>\n<br \/>K\u00e4lla: <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.4 - 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\/sv\/blog\/administrirovanie\/kafka-na-kubernetes-eto-horosho\" \/>\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\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\/sv\/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\udd47\u00c4r Kafka p\u00e5 Kubernetes bra? | ProHoster","description":"V\u00e4lkommen, Habr! Vi var vid en tidpunkt f\u00f6rst med att introducera \u00e4mnet p\u00e5 den ryska marknaden","canonical_url":"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/kafka-na-kubernetes-eto-horosho","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\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\/sv\/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\/sv\/wp-json\/wp\/v2\/posts\/36822","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=36822"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts\/36822\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media\/27586"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media?parent=36822"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/categories?post=36822"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/tags?post=36822"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}