{"id":35226,"date":"2019-10-31T22:03:05","date_gmt":"2019-10-31T19:03:05","guid":{"rendered":"https:\/\/prohoster.info\/blog\/gotovit-kubernetes-klaster-prosto-i-udobno-anonsiruem-addon-operator\/"},"modified":"2019-10-31T22:03:05","modified_gmt":"2019-10-31T19:03:05","slug":"gotovit-kubernetes-klaster-prosto-i-udobno-anonsiruem-addon-operator","status":"publish","type":"post","link":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/gotovit-kubernetes-klaster-prosto-i-udobno-anonsiruem-addon-operator","title":{"rendered":"\u00bfEs f\u00e1cil y conveniente preparar un cl\u00faster de Kubernetes? Anunciamos el addon-operator","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"\u00bfEs f\u00e1cil y conveniente preparar un cl\u00faster de Kubernetes? Anunciamos el addon-operator\" src=\"\/wp-content\/uploads\/8df3959f765d5d1bc8d427d3258aacc4.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSiguiendo con <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/447442\/\">shell-operator<\/a><\/noindex> presentamos a su hermano mayor \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/addon-operator\">addon-operator<\/a><\/noindex>. Este es un proyecto de c\u00f3digo abierto que se utiliza para instalar en el cl\u00faster de Kubernetes los componentes del sistema que se pueden denominar en conjunto como complementos.<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>\u00bfPor qu\u00e9 necesitamos alg\u00fan complemento?<\/h2>\n<p>\nNo es un secreto que Kubernetes no es un producto listo para usar todo en uno, y para construir un cl\u00faster 'maduro' se necesitar\u00e1n varios complementos. Addon-operator ayudar\u00e1 a instalar, configurar y mantener estos complementos actualizados.<\/p>\n<p>La necesidad de componentes adicionales en el cl\u00faster se revela en <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/449096\/\">la presentaci\u00f3n<\/a><\/noindex> colegas <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/driusha\/\" class=\"user_link\">driusha<\/a><\/noindex>. En resumen, la situaci\u00f3n con Kubernetes en este momento es tal que para una instalaci\u00f3n sencilla, para 'jugar', se puede prescindir de los componentes de serie, para desarrolladores y pruebas se puede agregar Ingress, pero para una instalaci\u00f3n completa, de la que se puede decir 'su producci\u00f3n est\u00e1 lista', es necesario a\u00f1adir alrededor de una docena de complementos diferentes: algo para monitoreo, algo para registros, no olvidar ingress y cert-manager, asignar grupos de nodos, agregar pol\u00edticas de red, a\u00f1adir configuraciones de sysctl y pod autoscaler...<\/p>\n<p><img decoding=\"async\" alt=\"\u00bfEs f\u00e1cil y conveniente preparar un cl\u00faster de Kubernetes? Anunciamos el addon-operator\" src=\"\/wp-content\/uploads\/ab3bed8ee8b29d4e51905e45c908f078.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>\u00bfCu\u00e1l es la especificidad del trabajo con ellos?<\/h2>\n<p>\nComo muestra la pr\u00e1ctica, no se trata solo de una instalaci\u00f3n. Para trabajar c\u00f3modamente con el cl\u00faster, ser\u00e1 necesario actualizar los complementos, desactivarlos (eliminarlos del cl\u00faster), y puede que algo se quiera probar antes de instalar en el cl\u00faster de producci\u00f3n.<\/p>\n<p>Entonces, \u00bfquiz\u00e1s aqu\u00ed ser\u00eda suficiente con Ansible? Puede ser. Pero <b>los complementos completos en general no funcionan sin configuraciones<\/b>. Estas configuraciones pueden variar dependiendo de la opci\u00f3n del cl\u00faster (aws, gce, azure, bare-metal, do, ...). Algunas configuraciones no se pueden establecer de antemano; deben obtenerse del cl\u00faster. Y el cl\u00faster no es est\u00e1tico: para algunas configuraciones, ser\u00e1 necesario realizar un seguimiento de los cambios. Aqu\u00ed es donde Ansible no es suficiente: se necesita un programa que viva en el cl\u00faster, es decir, un Operator de Kubernetes.<\/p>\n<p>Aquellos que lo han probado en acci\u00f3n <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/shell-operator\">shell-operator<\/a><\/noindex>, dir\u00e1n que las tareas de instalaci\u00f3n y actualizaci\u00f3n de complementos y seguimiento de configuraciones se pueden resolver bastante bien con <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/shell-operator\/blob\/master\/HOOKS.md\">ganchos<\/a><\/noindex> para shell-operator. Se puede escribir un script que realice un supuestos <code>kubectl apply<\/code> y vigile, por ejemplo, ConfigMap, donde se almacenar\u00e1n las configuraciones. Esto es aproximadamente lo que se implementa en addon-operator.<\/p>\n<h2>\u00bfC\u00f3mo est\u00e1 organizado en addon-operator?<\/h2>\n<p>\nAl crear una nueva soluci\u00f3n, partimos de los siguientes principios:<\/p>\n<ul>\n<li> El instalador de complementos debe soportar <b>plantillas y configuraci\u00f3n declarativa<\/b>. No hacemos scripts m\u00e1gicos que instalen complementos. El operador de complementos utiliza Helm para instalar complementos. Para la instalaci\u00f3n, es necesario crear un chart y especificar los values que se usar\u00e1n para la configuraci\u00f3n. <\/li>\n<li> Las configuraciones se pueden <b>generar durante la instalaci\u00f3n<\/b>, se pueden <b>obtener del cl\u00faster<\/b>, o <b>recibir actualizaciones<\/b>, supervisando los recursos del cl\u00faster. Estas operaciones se pueden implementar usando hooks.<\/li>\n<li> Las configuraciones se pueden <b>almacenar en el cl\u00faster<\/b>. Para almacenar configuraciones en el cl\u00faster se crea un ConfigMap\/addon-operator y el Addon-operator supervisa los cambios de este ConfigMap. El Addon-operator proporciona acceso a la configuraci\u00f3n a los hooks mediante acuerdos simples.<\/li>\n<li> <b>El complemento depende de la configuraci\u00f3n<\/b>. Si la configuraci\u00f3n cambia, el Addon-operator despliega el Helm-chart con nuevos values. La combinaci\u00f3n del Helm-chart, los values para este y los hooks lo hemos llamado m\u00f3dulo (m\u00e1s detalles a continuaci\u00f3n).<\/li>\n<li> <b>Fase de staging<\/b>. No hay scripts m\u00e1gicos de lanzamiento. El mecanismo de actualizaci\u00f3n es similar al de una aplicaci\u00f3n normal: construir los complementos y el addon-operator en una imagen, etiquetarlos y desplegarlos.<\/li>\n<li> <b>Control de resultados<\/b>. El Addon-operator puede proporcionar m\u00e9tricas para Prometheus.<\/li>\n<\/ul>\n<p><\/p>\n<h2>\u00bfQu\u00e9 es un complemento en el addon-operator?<\/h2>\n<p>\nUn complemento se puede considerar cualquier cosa que a\u00f1ada nuevas funciones al cl\u00faster. Por ejemplo, la instalaci\u00f3n de Ingress es un gran ejemplo de un complemento. Puede ser cualquier operador o controlador con su CRD: prometheus-operator, cert-manager, kube-controller-manager, etc. O algo peque\u00f1o, pero que simplifique la operaci\u00f3n, como un copi\u00f3n de secretos que copia secretos de registro a nuevos espacios de nombres, o un ajustador de sysctl que configura par\u00e1metros de sysctl en nuevos nodos.<\/p>\n<p>Para implementar complementos, el Addon-operator proporciona varios conceptos:<\/p>\n<ul>\n<li> <b>Helm-chart<\/b> se usa para instalar diferentes software en el cl\u00faster, como Prometheus, Grafana, nginx-ingress. Si el componente necesario tiene un Helm-chart, ser\u00e1 muy f\u00e1cil instalarlo con el Addon-operator.<\/li>\n<li> <b>Almacenamiento de values<\/b>. Los Helm-charts suelen tener muchas configuraciones diferentes que pueden cambiar con el tiempo. El Addon-operator admite el almacenamiento de estas configuraciones y puede supervisar sus cambios para reinstalar el Helm-chart con nuevos valores.<\/li>\n<li> <b>Hooks<\/b> son archivos ejecutables que el Addon-operator activa en funci\u00f3n de eventos y que tienen acceso al almacenamiento de valores. Un hook puede supervisar los cambios en el cl\u00faster y actualizar los valores en el almacenamiento de valores. Esto significa que, a trav\u00e9s de hooks, se puede realizar un descubrimiento para recopilar valores del cl\u00faster al inicio o mediante programaci\u00f3n, o tambi\u00e9n un descubrimiento continuo, recopilando valores del cl\u00faster seg\u00fan los cambios en el mismo.<\/li>\n<li> <b>M\u00f3dulo<\/b> es una combinaci\u00f3n de un chart de Helm, un almacenamiento de valores y hooks. Los m\u00f3dulos se pueden activar y desactivar. Desactivar un m\u00f3dulo significa eliminar todos los lanzamientos del chart de Helm. Los m\u00f3dulos pueden activarse din\u00e1micamente, por ejemplo, si est\u00e1n habilitados todos los m\u00f3dulos necesarios o si el discovery en los hooks encontr\u00f3 los par\u00e1metros requeridos; esto se logra mediante un script auxiliar habilitado.<\/li>\n<li> <b>Hooks globales<\/b>. Son hooks \"por s\u00ed mismos\", no est\u00e1n incluidos en m\u00f3dulos y tienen acceso al almacenamiento global de valores, cuyos valores est\u00e1n disponibles para todos los hooks en los m\u00f3dulos.<\/li>\n<\/ul>\n<p>\n\u00bfC\u00f3mo trabajan estas partes juntas? Veamos la imagen de la documentaci\u00f3n:<\/p>\n<p><img decoding=\"async\" alt=\"\u00bfEs f\u00e1cil y conveniente preparar un cl\u00faster de Kubernetes? Anunciamos el addon-operator\" src=\"\/wp-content\/uploads\/c9bb8e5ae78aa5df0d6c4fbf353e4236.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nHay dos escenarios de funcionamiento:<\/p>\n<ol>\n<li> El hook global se activa por un evento, por ejemplo, al cambiar un recurso en el cl\u00faster. Este hook procesa los cambios y registra nuevos valores en el almacenamiento global de valores. El Addon-operator nota que el almacenamiento global ha cambiado y activa todos los m\u00f3dulos. Cada m\u00f3dulo, a trav\u00e9s de sus hooks, determina si necesita activarse y actualiza su almacenamiento de valores. Si el m\u00f3dulo est\u00e1 habilitado, el Addon-operator inicia la instalaci\u00f3n del chart de Helm. Al chart de Helm le son accesibles los valores del almacenamiento del m\u00f3dulo y del almacenamiento global.<\/li>\n<li> El segundo escenario es m\u00e1s sencillo: el hook modular se activa por un evento y modifica los valores en el almacenamiento de valores del m\u00f3dulo. El Addon-operator lo nota y activa el chart de Helm con los valores actualizados.<\/li>\n<\/ol>\n<p>\nEl complemento puede ser implementado como un solo hook o como un solo chart de Helm, o <b>incluso como varios m\u00f3dulos dependientes<\/b> , esto depende de la complejidad del componente que se est\u00e1 instalando en el cl\u00faster y del nivel de flexibilidad de la configuraci\u00f3n que se requiere. Por ejemplo, en el repositorio (<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/addon-operator\/tree\/master\/examples\">\/examples<\/a><\/noindex>) hay un complemento sysctl-tuner, que se implementa tanto como un simple m\u00f3dulo con un hook y un chart de Helm, como utilizando un almacenamiento de valores, lo que permite agregar configuraciones a trav\u00e9s de la edici\u00f3n de ConfigMap.<\/p>\n<h2>Entrega de actualizaciones<\/h2>\n<p>\nAlgunas palabras sobre la organizaci\u00f3n de las actualizaciones de los componentes que instala el Addon-operator.<\/p>\n<p>Para ejecutar el Addon-operator en el cl\u00faster, se necesita <b>compilar una imagen con complementos<\/b> en forma de archivos de ganchos y gr\u00e1ficos de Helm, agregar el archivo binario <code>addon-operator<\/code> y todo lo que se necesite para los ganchos: <code>bash<\/code>, <code>kubectl<\/code>, <code>jq<\/code>, <code>python<\/code> etc. Luego, esta imagen se puede desplegar en el cl\u00faster como una aplicaci\u00f3n normal y probablemente querr\u00e1s organizar alg\u00fan tipo de esquema de etiquetado. Si hay pocos cl\u00fasteres, puede que el mismo enfoque que con las aplicaciones funcione: nuevo lanzamiento, nueva versi\u00f3n, ir a todos los cl\u00fasteres y actualizar la imagen en los pods. Sin embargo, en caso de un despliegue en una cantidad considerable de cl\u00fasteres, la conceptualizaci\u00f3n de autoactualizaci\u00f3n desde el canal es m\u00e1s adecuada. <\/p>\n<p>Esto est\u00e1 organizado as\u00ed:<\/p>\n<ul>\n<li>El canal es, en esencia, un identificador que se puede asignar a cualquiera (por ejemplo, dev\/stage\/ea\/stable).<\/li>\n<li>El nombre del canal es la etiqueta de la imagen. Cuando se necesita desplegar actualizaciones en el canal, se compila una nueva imagen y se etiqueta con el nombre del canal.<\/li>\n<li>Cuando aparece una nueva imagen en el registro, el Addon-operator se reinicia y se inicia con la nueva imagen.<\/li>\n<\/ul>\n<p>\nEsto no es una buena pr\u00e1ctica, como se indica en <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/concepts\/containers\/images\/#updating-images\">la documentaci\u00f3n de Kubernetes<\/a><\/noindex>. No se recomienda hacerlo, pero se trata de <i>una aplicaci\u00f3n normal que vive en un solo cl\u00faster<\/i>. En el caso del Addon-operator, la aplicaci\u00f3n es un conjunto de despliegues dispersos en los cl\u00fasteres, y la autoactualizaci\u00f3n simplifica mucho la vida. <\/p>\n<p>Los canales ayudan tambi\u00e9n <b>en las pruebas<\/b>: si hay un cl\u00faster auxiliar, se puede configurarlo en el canal <code>stage<\/code> y probar las actualizaciones en \u00e9l antes de lanzarlas en los canales <code>ea<\/code> y <code>stable<\/code>. Si ocurre un error con el cl\u00faster en el canal, se puede cambiar a <code>ea<\/code> , mientras se investiga el problema con ese cl\u00faster. Si el cl\u00faster se ha sacado de soporte activo, se cambia a su canal de \"congelaci\u00f3n\" - por ejemplo, <code>stable<\/code>freeze-2019-03-20 <code>. Adem\u00e1s de las actualizaciones de ganchos y gr\u00e1ficos de Helm, puede ser necesario<\/code>.<\/p>\n<p>actualizar un componente externo <b>. Por ejemplo, si has notado un error en el node-exporter condicional y hasta has ideado c\u00f3mo parchearlo. Luego, abriste un PR y esperas el nuevo lanzamiento para recorrer todos los cl\u00fasteres y aumentar la versi\u00f3n de la imagen. Para no esperar un tiempo indefinido, puedes compilar tu propio node-exporter y cambiar a \u00e9l hasta que se acepte el PR.<\/b>.<\/p>\n<p>De hecho, esto se puede hacer sin el Addon-operator, pero con el Addon-operator, el m\u00f3dulo para instalar node-exporter estar\u00e1 en un \u00fanico repositorio, se puede mantener el Dockerfile para construir su propia imagen justo aqu\u00ed, y resulta m\u00e1s f\u00e1cil para todos los participantes entender lo que est\u00e1 sucediendo... \u00a1Y si hay varios cl\u00fasteres, se simplifica tanto la prueba de su PR como la implementaci\u00f3n de una nueva versi\u00f3n!<\/p>\n<p>Este sistema de actualizaci\u00f3n de componentes funciona con \u00e9xito para nosotros, pero se puede implementar cualquier otro esquema adecuado, ya que <b>en este caso, el Addon-operator es un simple archivo binario.<\/b>.<\/p>\n<h2>Conclusi\u00f3n<\/h2>\n<p>\nLos principios implementados en el Addon-operator permiten establecer un proceso transparente para crear, probar, instalar y actualizar complementos en el cl\u00faster, similar a los procesos de desarrollo de aplicaciones comunes.<\/p>\n<p>Los complementos para el Addon-operator en formato de m\u00f3dulos (Helm chart + hooks) se pueden hacer accesibles al p\u00fablico. Nosotros, la empresa Flant, planeamos publicar nuestras contribuciones en forma de tales complementos durante el verano. \u00danase al desarrollo en GitHub (<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/shell-operator\">shell-operator<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/addon-operator\"><b>addon-operator<\/b><\/a><\/noindex>), intente crear su propio complemento basado en <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/addon-operator\/tree\/master\/examples\">ejemplos<\/a><\/noindex> y <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/addon-operator\/blob\/master\/README.md\">la documentaci\u00f3n<\/a><\/noindex>, espere novedades en Habr y en nuestro <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/c\/%D0%A4%D0%BB%D0%B0%D0%BD%D1%82\">canal de YouTube<\/a><\/noindex>!<\/p>\n<h2>P.D.<\/h2>\n<p>\nTambi\u00e9n puedes leer en nuestro blog:<\/p>\n<ul>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/449096\/\">Ampliando y complementando Kubernetes (rese\u00f1a y video de la presentaci\u00f3n)<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/447442\/\">Presentamos shell-operator: crear operadores para Kubernetes se ha vuelto a\u00fan m\u00e1s f\u00e1cil.<\/a><\/noindex>\u00bb.<\/li>\n<\/ul>\n<p>Fuente: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/455543\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412\u0441\u043b\u0435\u0434 \u0437\u0430 shell-operator \u043c\u044b \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u0435\u0433\u043e \u0441\u0442\u0430\u0440\u0448\u0435\u0433\u043e \u0431\u0440\u0430\u0442\u0430 \u2014 addon-operator. \u042d\u0442\u043e Open Source-\u043f\u0440\u043e\u0435\u043a\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440 Kubernetes \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0437\u0432\u0430\u0442\u044c \u043e\u0431\u0449\u0438\u043c \u0441\u043b\u043e\u0432\u043e\u043c \u2014 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f. \u0417\u0430\u0447\u0435\u043c \u0432\u043e\u043e\u0431\u0449\u0435 \u043a\u0430\u043a\u0438\u0435-\u0442\u043e \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f? \u041d\u0435 \u0441\u0435\u043a\u0440\u0435\u0442, \u0447\u0442\u043e Kubernetes \u044d\u0442\u043e \u043d\u0435 \u0433\u043e\u0442\u043e\u0432\u044b\u0439 \u043f\u0440\u043e\u0434\u0443\u043a\u0442 \u0432\u0441\u0451-\u0432-\u043e\u0434\u043d\u043e\u043c, \u0438 \u0434\u043b\u044f \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u00ab\u0432\u0437\u0440\u043e\u0441\u043b\u043e\u0433\u043e\u00bb \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u044f\u0442\u0441\u044f \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f. Addon-operator \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c, \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0438 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-35226","post","type-post","status-publish","format-standard","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\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\/gotovit-kubernetes-klaster-prosto-i-udobno-anonsiruem-addon-operator\" \/>\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\udd47\u0413\u043e\u0442\u043e\u0432\u0438\u0442\u044c Kubernetes-\u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u043f\u0440\u043e\u0441\u0442\u043e \u0438 \u0443\u0434\u043e\u0431\u043d\u043e? \u0410\u043d\u043e\u043d\u0441\u0438\u0440\u0443\u0435\u043c addon-operator | ProHoster\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/gotovit-kubernetes-klaster-prosto-i-udobno-anonsiruem-addon-operator\" \/>\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:03:05+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:03:05+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\u00bfPreparar un cl\u00faster de Kubernetes es simple y conveniente? Anunciamos el addon-operator | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/gotovit-kubernetes-klaster-prosto-i-udobno-anonsiruem-addon-operator","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\udd47\u0413\u043e\u0442\u043e\u0432\u0438\u0442\u044c Kubernetes-\u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u043f\u0440\u043e\u0441\u0442\u043e \u0438 \u0443\u0434\u043e\u0431\u043d\u043e? \u0410\u043d\u043e\u043d\u0441\u0438\u0440\u0443\u0435\u043c addon-operator | ProHoster","og:url":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/gotovit-kubernetes-klaster-prosto-i-udobno-anonsiruem-addon-operator","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:03:05+00:00","article:modified_time":"2019-10-31T19:03:05+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"35226","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-21 22:25:22","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 02:07:29","updated":"2026-01-21 22:25:22","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\/35226","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=35226"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/35226\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media?parent=35226"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/categories?post=35226"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/tags?post=35226"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}