{"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\/es\/blog\/administrirovanie\/kafka-na-kubernetes-eto-horosho","title":{"rendered":"\u00bfKafka en Kubernetes es algo bueno?","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>\u00a1Bienvenido, Habr!<\/p>\n<p>En su momento, fuimos los primeros en introducir el tema <noindex><a rel=\"nofollow\" href=\"https:\/\/www.piter.com\/collection\/all\/product\/apache-kafka-potokovaya-obrabotka-i-analiz-dannyh\">Kafka<\/a><\/noindex> y continuamos <noindex><a rel=\"nofollow\" href=\"https:\/\/www.piter.com\/product_by_id\/132649774\">siguiendo<\/a><\/noindex> su desarrollo. En particular, nos ha parecido interesante el tema de la interacci\u00f3n entre Kafka y <noindex><a rel=\"nofollow\" href=\"https:\/\/www.piter.com\/product_by_id\/125705747\">Kubernetes<\/a><\/noindex>. Se public\u00f3 un art\u00edculo (bastante cauteloso) sobre este tema en el blog de Confluent en octubre del a\u00f1o pasado, escrito por Gwen Shapiro. Hoy, queremos llamar su atenci\u00f3n sobre un art\u00edculo m\u00e1s reciente de abril escrito por Johann Gyger, quien, aunque no se abstuvo de un signo de interrogaci\u00f3n en el t\u00edtulo, aborda el tema de manera m\u00e1s concreta, acompa\u00f1ando el texto con enlaces interesantes. \u00a1Perd\u00f3n por nuestra libre traducci\u00f3n de \u00abchaos monkey\u00bb, si pueden! <noindex><a rel=\"nofollow\" href=\"https:\/\/www.confluent.io\/blog\/apache-kafka-kubernetes-could-you-should-you\">Windows<\/a><\/noindex> Kubernetes est\u00e1 dise\u00f1ado para trabajar con cargas que no mantienen estado. En general, estas cargas de trabajo se presentan en forma de arquitecturas de microservicios, son ligeras, se escalan horizontalmente bien, siguen los principios de las aplicaciones de 12 factores, permiten trabajar con interruptores autom\u00e1ticos (circuit breaker) y monos del caos (chaos monkeys).<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/piter\/blog\/462257\/\"><img decoding=\"async\" alt=\"\u00bfKafka en Kubernetes es algo bueno?\" 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>Introducci\u00f3n<\/h4>\n<p>\nKafka, por otro lado, act\u00faa esencialmente como una base de datos distribuida. Por lo tanto, al trabajar, debes tratar con el estado, que es mucho m\u00e1s pesado que un microservicio. Kubernetes admite cargas con estado, pero, como se\u00f1ala Kelsey Hightower en dos de sus tweets, se debe tener cuidado al hacerlo:<\/p>\n<p>Algunos piensan que si aplican Kubernetes a una carga con estado, se convierte en una base de datos completamente gestionada capaz de competir con RDS. No es as\u00ed. Puede que, si se trabaja lo suficiente, se integren componentes adicionales y se reclute a un equipo de ingenieros SRE, se pueda configurar RDS sobre Kubernetes.<\/p>\n<blockquote><p>Siempre recomiendo tener una extrema precauci\u00f3n al ejecutar cargas con estado en Kubernetes. La mayor\u00eda de aquellos que se preguntan, \u00ab\u00bfpuedo ejecutar cargas con estado en Kubernetes?\u00bb no tienen suficiente experiencia trabajando con Kubernetes y, a menudo, ni con la carga de la que est\u00e1n preguntando.<\/p><\/blockquote>\n<blockquote><p>Siempre recomiendo tener una cautela excepcional al ejecutar cargas con estado en Kubernetes. La mayor\u00eda de aquellos que se preguntan: \"\u00bfpuedo ejecutar cargas con estado en Kubernetes?\" no tienen la experiencia suficiente para trabajar con Kubernetes, y a menudo, ni con la carga en cuesti\u00f3n.<\/p><\/blockquote>\n<p> \u00bfDeber\u00eda ejecutar Kafka en Kubernetes? Pregunta inversa: \u00bffuncionar\u00e1 mejor Kafka sin Kubernetes? Por eso quiero enfatizar en este art\u00edculo c\u00f3mo Kafka y Kubernetes se complementan entre s\u00ed, y cu\u00e1les son los posibles escollos al combinarlos.<\/p>\n<h4>Tiempo de ejecuci\u00f3n<\/h4>\n<p>\nHablemos de lo b\u00e1sico: el entorno de tiempo de ejecuci\u00f3n en s\u00ed.<\/p>\n<p><i><b>El proceso<\/b><\/i><\/p>\n<p>Los brokers de Kafka son convenientes en el uso de CPU. TLS puede a\u00f1adir algunos costos. Sin embargo, los clientes de Kafka pueden cargar m\u00e1s la CPU si utilizan cifrado, pero esto no afecta a los brokers.<\/p>\n<p><i><b>Memoria<\/b><\/i><\/p>\n<p>Los brokers de Kafka consumen memoria. El tama\u00f1o del heap de la JVM generalmente se puede limitar a 4-5 GB, pero tambi\u00e9n necesitar\u00e1s mucha memoria del sistema, ya que Kafka utiliza de manera muy activa la memoria cach\u00e9 de p\u00e1ginas. En Kubernetes, establece adecuadamente los l\u00edmites de recursos y las solicitudes del contenedor.<\/p>\n<p><i><b>Almacenamiento de datos<\/b><\/i><\/p>\n<p>El almacenamiento de datos en contenedores es ef\u00edmero: los datos se pierden al reiniciar. Para los datos de Kafka, puedes utilizar un volumen <code>emptyDir<\/code>, y el efecto ser\u00e1 similar: los datos de tu broker se perder\u00e1n despu\u00e9s de terminar. Sin embargo, tus mensajes a\u00fan pueden permanecer en otros brokers como r\u00e9plicas. Por lo tanto, despu\u00e9s de reiniciar, el broker fallido debe primero replicar todos los datos, lo que puede llevar tiempo. <\/p>\n<p>Por eso se debe utilizar almacenamiento de datos a largo plazo. Debe ser un almacenamiento a largo plazo no local con un sistema de archivos XFS o, m\u00e1s precisamente, ext4. No utilices NFS. Te lo advierto. NFS versiones v3 o v4 no funcionar\u00e1n. En resumen, un broker de Kafka fallar\u00e1 si no puede eliminar un directorio de datos debido a problemas con 'renombrados tontos', que son relevantes en NFS. Si a\u00fan no te he convencido, lee muy detenidamente <noindex><a rel=\"nofollow\" href=\"https:\/\/sbg.technology\/2018\/07\/10\/kafka-nfs\/\">este art\u00edculo<\/a><\/noindex>. El almacenamiento de datos debe ser no local, para que Kubernetes pueda elegir m\u00e1s flexiblemente un nuevo nodo despu\u00e9s de un reinicio o reubicaci\u00f3n.<\/p>\n<p><i><b>Red<\/b><\/i><\/p>\n<p>Al igual que en la mayor\u00eda de los sistemas distribuidos, el rendimiento de Kafka depende en gran medida de minimizar la latencia de la red y maximizar el ancho de banda. No intentes alojar todos los brokers en una sola m\u00e1quina, ya que esto reducir\u00e1 la disponibilidad. Si un nodo de Kubernetes falla, todo el cl\u00faster de Kafka tambi\u00e9n fallar\u00e1. Adem\u00e1s, no distribuyas el cl\u00faster de Kafka entre diferentes centros de datos. Lo mismo se aplica al cl\u00faster de Kubernetes. Un buen compromiso en este caso es elegir diferentes zonas de disponibilidad.<\/p>\n<h4>Configuraci\u00f3n<\/h4>\n<p>\n<i><b>Manifiestos comunes<\/b><\/i><\/p>\n<p>En el sitio de Kubernetes hay <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/tutorials\/stateful-application\/zookeeper\/\">una gu\u00eda muy buena<\/a><\/noindex> sobre c\u00f3mo configurar ZooKeeper usando manifiestos. Dado que ZooKeeper forma parte de Kafka, es conveniente comenzar a familiarizarse con los conceptos de Kubernetes que son aplicables aqu\u00ed. Una vez que comprendas esto, podr\u00e1s utilizar los mismos conceptos con el cl\u00faster de Kafka.<\/p>\n<ul>\n<li><i>Por<\/i>: un Pod es la unidad m\u00ednima desplegable en Kubernetes. Un pod contiene tu carga de trabajo, y el pod corresponde a un proceso en tu cl\u00faster. En un pod puede haber uno o m\u00e1s contenedores. Cada servidor de ZooKeeper en el conjunto y cada broker en el cl\u00faster de Kafka funcionar\u00e1n en un pod separado.<\/li>\n<li><i>StatefulSet<\/i>: StatefulSet es un objeto de Kubernetes que maneja m\u00faltiples cargas de trabajo con estado, y estas cargas requieren coordinaci\u00f3n. StatefulSet proporciona garant\u00edas sobre el orden de los pods y su unicidad.<\/li>\n<li><i>Servicios sin cabeza<\/i>: Los servicios permiten desacoplar los pods de los clientes mediante un nombre l\u00f3gico. Kubernetes se encarga de la distribuci\u00f3n de carga en este caso. Sin embargo, en operaciones con cargas de trabajo con estado, como sucede con ZooKeeper y Kafka, los clientes necesitan intercambiar informaci\u00f3n con una instancia espec\u00edfica. Aqu\u00ed es donde entran los servicios sin cabeza: en este caso, el cliente a\u00fan tendr\u00e1 un nombre l\u00f3gico, pero no necesitar\u00e1 acceder directamente al pod. <\/li>\n<li><i>Volumen para almacenamiento persistente<\/i>: se requieren vol\u00famenes como este para la configuraci\u00f3n de almacenamiento persistente, no local, que se mencion\u00f3 anteriormente.<\/li>\n<\/ul>\n<p>\nEn <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/Yolean\/kubernetes-kafka\">Yolean<\/a><\/noindex> proporciona un conjunto completo de manifiestos, que facilitan comenzar a trabajar con Kafka en Kubernetes.<\/p>\n<p><i><b>Diagramas de Helm<\/b><\/i><\/p>\n<p>Helm es un gestor de paquetes para Kubernetes, comparable a los gestores de paquetes para sistemas operativos, como yum, apt, Homebrew o Chocolatey. Con \u00e9l, es f\u00e1cil instalar paquetes de software predefinidos que est\u00e1n descritos en los charts de Helm. Un chart de Helm bien dise\u00f1ado facilita la compleja tarea de c\u00f3mo configurar correctamente todos los par\u00e1metros para utilizar Kafka en Kubernetes. Existen varios charts de Kafka: el oficial se encuentra <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/helm\/charts\/tree\/master\/incubator\/kafka\">en estado de incubaci\u00f3n<\/a><\/noindex>, hay uno de <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/confluentinc\/cp-helm-charts\/tree\/master\/charts\/cp-kafka\">Confluent<\/a><\/noindex>, y otro de <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/bitnami\/charts\/tree\/master\/bitnami\/kafka\">Bitnami<\/a><\/noindex>.<\/p>\n<p><i><b>Operadores<\/b><\/i><\/p>\n<p>Dado que Helm tiene ciertas desventajas, ha ganado popularidad otro recurso: los operadores de Kubernetes. Un operador no solo empaqueta software para Kubernetes, sino que tambi\u00e9n permite desplegar dicho software y gestionarlo.<\/p>\n<p>En la lista <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/operator-framework\/awesome-operators\">de incre\u00edbles operadores<\/a><\/noindex> se mencionan dos operadores para Kafka. Uno de ellos es <noindex><a rel=\"nofollow\" href=\"https:\/\/strimzi.io\/\">Strimzi<\/a><\/noindex>. Con Strimzi, levantar un cl\u00faster de Kafka es pan comido. Practicamente no se requiere configuraci\u00f3n, adem\u00e1s, el propio operador ofrece algunas funcionalidades agradables, como el cifrado TLS punto a punto dentro del cl\u00faster. Confluent tambi\u00e9n proporciona <noindex><a rel=\"nofollow\" href=\"https:\/\/www.confluent.io\/confluent-operator\/\">su propio operador<\/a><\/noindex>.<\/p>\n<p><b>Rendimiento<\/b><\/p>\n<p>Es muy importante probar el rendimiento, dotando a su instancia de Kafka de puntos de control. Estas pruebas le ayudar\u00e1n a detectar cuellos de botella potenciales antes de que surjan problemas. Afortunadamente, Kafka ya ofrece dos herramientas para probar el rendimiento: <code>kafka-producer-perf-test.sh<\/code> y <code>kafka-consumer-perf-test.sh<\/code>. \u00daselas activamente. Para m\u00e1s informaci\u00f3n, puede consultar los resultados descritos en <noindex><a rel=\"nofollow\" href=\"https:\/\/engineering.linkedin.com\/kafka\/benchmarking-apache-kafka-2-million-writes-second-three-cheap-machines\">esta publicaci\u00f3n<\/a><\/noindex> de Jay Kreps, o referirse a <noindex><a rel=\"nofollow\" href=\"https:\/\/medium.com\/@stephane.maarek\/an-honest-review-of-aws-managed-apache-kafka-amazon-msk-94b1ff9459d8\">esta rese\u00f1a<\/a><\/noindex> de Amazon MSK por St\u00e9phane Maarek.<\/p>\n<h4>Operaciones<\/h4>\n<p>\n<i><b>Monitoreo<\/b><\/i><\/p>\n<p>La transparencia en el sistema es muy importante; de lo contrario, no entender\u00e1 lo que est\u00e1 sucediendo. Hoy en d\u00eda, existe una s\u00f3lida caja de herramientas que proporciona monitoreo basado en m\u00e9tricas al estilo cloud native. Dos herramientas populares para este prop\u00f3sito son Prometheus y Grafana. Prometheus puede recopilar m\u00e9tricas de todos los procesos de Java (Kafka, Zookeeper, Kafka Connect) mediante el exportador JMX de la manera m\u00e1s simple. Si se a\u00f1aden las m\u00e9tricas de cAdvisor, se podr\u00e1 tener una visi\u00f3n m\u00e1s completa de c\u00f3mo se utilizan los recursos en Kubernetes.<\/p>\n<p>Strimzi tiene un ejemplo muy \u00fatil de un dashboard de Grafana para Kafka. Visualiza m\u00e9tricas clave, como aquellas relacionadas con sectores sin replicar o que est\u00e1n fuera de l\u00ednea. Todo es muy claro. Estas m\u00e9tricas se complementan con informaci\u00f3n sobre el uso de recursos y rendimiento, as\u00ed como indicadores de estabilidad. \u00a1As\u00ed, obtienes una supervisi\u00f3n b\u00e1sica del cl\u00faster de Kafka sin complicaciones!<\/p>\n<p><img decoding=\"async\" alt=\"\u00bfKafka en Kubernetes es algo bueno?\" src=\"\/wp-content\/uploads\/2019\/08\/65ab468f7ebc0f376796990e41c62a48.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nFuente: <noindex><a rel=\"nofollow\" href=\"https:\/\/strimzi.io\/docs\/master\/#kafka_dashboard\">strimzi.io\/docs\/master\/#kafka_dashboard<\/a><\/noindex><\/p>\n<p>Todo esto ser\u00eda bueno complementarlo con la supervisi\u00f3n de clientes (m\u00e9tricas de consumidores y productores), as\u00ed como con una supervisi\u00f3n de latencia (para esto hay <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/linkedin\/Burrow\">Burrow<\/a><\/noindex>) y monitoreo integral \u2013 para esto usa <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/linkedin\/kafka-monitor\">Kafka Monitor<\/a><\/noindex>.<\/p>\n<p><i><b>Registro<\/b><\/i><\/p>\n<p>El registro es otra tarea crucial. Aseg\u00farate de que todos los contenedores en tu instalaci\u00f3n de Kafka registren en <code>stdout<\/code> y <code>stderr<\/code>, y tambi\u00e9n aseg\u00farate de que tu cl\u00faster de Kubernetes agregue todos los registros en una infraestructura de logging centralizada, por ejemplo, en <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>Verificaci\u00f3n de funcionamiento<\/b><\/i><\/p>\n<p>Kubernetes utiliza sondas de \"vitalidad\" (liveness) y disponibilidad (readiness) para comprobar si tus pods est\u00e1n funcionando correctamente. Si la verificaci\u00f3n de vitalidad falla, Kubernetes detendr\u00e1 ese contenedor y lo reiniciar\u00e1 autom\u00e1ticamente, si la pol\u00edtica de reinicio est\u00e1 configurada adecuadamente. Si la verificaci\u00f3n de disponibilidad falla, Kubernetes aislar\u00e1 este pod de la atenci\u00f3n a las solicitudes. Por lo tanto, en tales casos, no se requiere intervenci\u00f3n manual, lo que es una gran ventaja. <\/p>\n<p><i><b>Implementaci\u00f3n de actualizaciones<\/b><\/i><\/p>\n<p>StatefulSets admiten actualizaciones autom\u00e1ticas: al elegir la estrategia RollingUpdate, cada pod de Kafka se actualizar\u00e1 uno por uno. As\u00ed se puede reducir la duraci\u00f3n de los tiempos de inactividad a cero.<\/p>\n<p><i><b>Escalado<\/b><\/i><\/p>\n<p>Escalar un cl\u00faster de Kafka es una tarea complicada. Sin embargo, en Kubernetes es muy f\u00e1cil escalar los pods a un n\u00famero determinado de r\u00e9plicas, lo que significa que puedes definir de manera declarativa cu\u00e1ntos brokers de Kafka desees. Lo m\u00e1s complicado en este caso es reasignar sectores despu\u00e9s de escalar hacia arriba o antes de escalar hacia abajo. Nuevamente, Kubernetes te ayudar\u00e1 con esta tarea.<\/p>\n<p><i><b>Administraci\u00f3n<\/b><\/i><\/p>\n<p>Las tareas relacionadas con la administraci\u00f3n de su cl\u00faster Kafka, especialmente la creaci\u00f3n de t\u00f3picos y la reasignaci\u00f3n de particiones, se pueden realizar mediante los scripts de shell disponibles, abriendo la interfaz de l\u00ednea de comandos en sus pods. Sin embargo, esta soluci\u00f3n no es muy elegante. Strimzi soporta la gesti\u00f3n de t\u00f3picos mediante otro operador. Aqu\u00ed hay trabajo que hacer.<\/p>\n<p><i><b>Copia de seguridad y recuperaci\u00f3n<\/b><\/i><\/p>\n<p>Ahora la disponibilidad de Kafka depender\u00e1 tambi\u00e9n de la disponibilidad de Kubernetes. Si su cl\u00faster de Kubernetes falla, en el peor de los casos, tambi\u00e9n fallar\u00e1 el cl\u00faster de Kafka. Seg\u00fan la ley de Murphy, esto suceder\u00e1 seguro y perder\u00e1 datos. Para disminuir el riesgo de este tipo, trabaje bien en el concepto de copias de seguridad. Puede usar MirrorMaker, otra opci\u00f3n es utilizar S3 para esto, como se describe en este <noindex><a rel=\"nofollow\" href=\"https:\/\/jobs.zalando.com\/tech\/blog\/backing-up-kafka-zookeeper\/\">el post<\/a><\/noindex> de Zalando.<\/p>\n<h4>Conclusi\u00f3n<\/h4>\n<p>\nAl trabajar con cl\u00fasteres Kafka peque\u00f1os o medianos, definitivamente es sensato usar Kubernetes, ya que proporciona flexibilidad adicional y facilita el trabajo con operadores. Si enfrenta requisitos no funcionales muy severos relacionados con la latencia y\/o el rendimiento, puede que sea mejor considerar alguna otra opci\u00f3n de despliegue.<br \/>\n<br \/>Fuente: <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.2 - 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\/es\/blog\/administrirovanie\/kafka-na-kubernetes-eto-horosho\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"es_ES\" \/>\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\/es\/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\u00bfEs bueno Kafka en Kubernetes? | ProHoster","description":"\u00a1Le damos la bienvenida, Habr! En su momento, fuimos los primeros en introducir el tema","canonical_url":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/kafka-na-kubernetes-eto-horosho","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"es_ES","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\/es\/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\/es\/wp-json\/wp\/v2\/posts\/36822","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/comments?post=36822"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/36822\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media\/27586"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media?parent=36822"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/categories?post=36822"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/tags?post=36822"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}