{"id":32283,"date":"2019-10-31T21:46:07","date_gmt":"2019-10-31T18:46:07","guid":{"rendered":"https:\/\/prohoster.info\/blog\/klusterkit\/"},"modified":"2019-10-31T21:46:07","modified_gmt":"2019-10-31T18:46:07","slug":"klusterkit","status":"publish","type":"post","link":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/klusterkit","title":{"rendered":"KlusterKit","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<h2 id=\"klusterkit-nabor-instrumentov-s-otkrytym-ishodnym-kodom-dlya-uproscheniya-deploev-kubernetes-i-raboty-v-fizicheski-izolirovannyh-lokalnyh-sredah\">KlusterKit: conjunto de herramientas de c\u00f3digo abierto para simplificar los despliegues de Kubernetes y trabajar en entornos locales f\u00edsicamente aislados<\/h2>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"KlusterKit\" src=\"\/wp-content\/uploads\/2019\/04\/52d94ced35948048c526188d866d71ae.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Hoy nos complace anunciar que Platform9 abre el c\u00f3digo de Klusterkit, un conjunto de tres herramientas, bajo la licencia Apache v2.0 en GitHub.<\/p>\n<p><\/p>\n<p>Nuestros clientes implementan software en centros de datos privados, que a menudo no est\u00e1n conectados a Internet (por razones de seguridad o por otras causas). Estas grandes empresas quieren aprovechar las ventajas de Kubernetes y modernizar sus aplicaciones mientras las despliegan en diferentes centros de datos, que a menudo carecen de conexi\u00f3n con el mundo exterior. Aqu\u00ed es donde entra Klusterkit, que simplifica la entrega y gesti\u00f3n de cl\u00fasteres de K8s en entornos f\u00edsicamente aislados.<\/p>\n<p><\/p>\n<p>Klusterkit consta de tres herramientas independientes que se pueden utilizar juntas o por separado para gestionar el ciclo de vida de un cl\u00faster de producci\u00f3n de Kubernetes:<\/p>\n<p><\/p>\n<ol>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes-sigs\/etcdadm\">etcdadm<\/a><\/noindex>, CLI para la gesti\u00f3n simplificada del cl\u00faster etcd.<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/platform9\/nodeadm\">nodeadm<\/a><\/noindex>, CLI para la administraci\u00f3n de nodos, que complementa a kubeadm y despliega las dependencias necesarias para kubeadm.<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/platform9\/cctl\">cctl<\/a><\/noindex>, herramienta de gesti\u00f3n del ciclo de vida del cl\u00faster que utiliza Cluster API de la comunidad de Kubernetes y emplea nodeadm y etcdadm para entregar y mantener cl\u00fasteres de Kubernetes altamente disponibles de manera sencilla en entornos locales y f\u00edsicamente aislados.<\/li>\n<\/ol>\n<p><\/p>\n<p>Juntos, estas tres herramientas realizan las siguientes tareas:<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<ul>\n<li>Entrega y gesti\u00f3n sencilla de un cl\u00faster de etcd altamente disponible y un panel de control de Kubernetes en entornos locales f\u00edsicamente aislados a trav\u00e9s de Cluster API.<\/li>\n<li>Recuperaci\u00f3n del panel de control del cl\u00faster despu\u00e9s de un fallo mediante una copia de seguridad de etcd.<\/li>\n<li>Empaquetado de todos los artefactos necesarios para la entrega de Kubernetes en entornos f\u00edsicamente aislados.<\/li>\n<\/ul>\n<p><\/p>\n<h3 id=\"vozmozhnosti-klusterkit\">Capacidades de Klusterkit<\/h3>\n<p><\/p>\n<ul>\n<li>Soporte para m\u00faltiples maestros (cl\u00faster HA K8s).<\/li>\n<li>Entrega y gesti\u00f3n de cl\u00fasteres etcd seguros.<\/li>\n<li>Operaci\u00f3n en entornos f\u00edsicamente aislados.<\/li>\n<li>Soporte para actualizaciones y reversi\u00f3n secuencial.<\/li>\n<li>Flannel (vxlan) como CNI para el backend; se planea soporte para otros CNI.<\/li>\n<li>Reserva y recuperaci\u00f3n de cl\u00fasteres etcd tras la p\u00e9rdida de qu\u00f3rum.<\/li>\n<li>Protecci\u00f3n del panel de control contra falta de memoria y tiempo de CPU.<\/li>\n<\/ul>\n<p><\/p>\n<h3 id=\"arhitektura-resheniya-klusterkit\">Arquitectura de la soluci\u00f3n Klusterkit<\/h3>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/5y\/xo\/lv\/5yxolv8yt1frmyxan5lmuji_ego.jpeg\"><img decoding=\"async\" alt=\"KlusterKit\" src=\"\/wp-content\/uploads\/2019\/04\/047c51df33c20b7d97c489d050d801a2.png\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>Para garantizar la resiliencia y la simplicidad, Klusterkit utiliza un \u00fanico archivo cctl-state.yaml para almacenar los metadatos del cl\u00faster de Kubernetes. A trav\u00e9s de la CLI cctl, se puede gestionar el ciclo de vida del cl\u00faster de Kubernetes en cualquier m\u00e1quina que tenga este archivo de estado. Esto puede ser un port\u00e1til del operador o cualquier otra computadora que forme parte del cl\u00faster de Kubernetes.<\/p>\n<p><\/p>\n<p>Cctl implementa y llama desde upstream a la interfaz cluster-api como una biblioteca de operaciones CRUD en cl\u00fasteres. Utiliza <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/platform9\/ssh-provider\">ssh-provider<\/a><\/noindex>, un proveedor de cluster-api de c\u00f3digo abierto en \"hardware desnudo\" de Platform9, que a su vez llama a etcdadm y nodeadm para realizar operaciones en el cl\u00faster.<\/p>\n<p><\/p>\n<h3 id=\"kak-ispolzovat-klusterkit-i-ego-komponenty\">C\u00f3mo utilizar Klusterkit y sus componentes:<\/h3>\n<p><\/p>\n<p>1 \u2013 Cualquiera de las tres herramientas se puede compilar f\u00e1cilmente con el comando go get:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">go get -u github.com\/platform9\/cctl\n\ngo get -u github.com\/platform9\/nodeadm\n\ngo get -u github.com\/kubernetes-sigs\/etcdadm<\/code><\/pre>\n<p><\/p>\n<p>2 \u2013 Luego, estos archivos ejecutables se pueden empaquetar y copiar en las m\u00e1quinas de destino donde debe funcionar el cl\u00faster de Kubernetes de alta disponibilidad. Coloque los archivos nodeadm y etcdadm en los directorios de versiones:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">cp $GOPATH\/bin\/nodeadm \/var\/cache\/ssh-provider\/nodeadm\/\/\n\ncp $GOPATH\/bin\/etcdadm \/var\/cache\/ssh-provider\/etcdadm\/\/<\/code><\/pre>\n<p><\/p>\n<p>3 \u2013 Si es necesario orquestar el cl\u00faster de Kubernetes localmente, en un entorno f\u00edsicamente aislado, las dependencias necesarias se pueden cargar f\u00e1cilmente por adelantado en una computadora con acceso a Internet usando el comando de carga de nodeadm y etcdadm. Luego, los elementos descargados (es decir, kubelet y el archivo de unidad kubelet para systemd, archivos ejecutables CNI, archivo kubeadm, todas las im\u00e1genes de contenedores, incluyendo Kubernetes, imagen keepalived y archivo systemd, imagen de contenedor etcd y los archivos de configuraci\u00f3n correspondientes) se pueden copiar f\u00e1cilmente en hosts f\u00edsicamente aislados junto con cctl, nodeadm y etcdadm. (Ver detalles en <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/platform9\/cctl\/wiki\">wiki<\/a><\/noindex>).<\/p>\n<p><\/p>\n<p>4 \u2013 Cuando todo est\u00e9 en su lugar, se puede crear el primer cl\u00faster de Kubernetes con un par de comandos:<\/p>\n<p><\/p>\n<p>\u2013 Primero, cree las credenciales del cl\u00faster.<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">$GOPATH\/bin\/cctl create credential --user root --private-key ~\/ .ssh\/id_rsa<\/code><\/pre>\n<p><\/p>\n<p>\u2013 Luego, cree el objeto del cl\u00faster. \u2013help invoca una lista de par\u00e1metros compatibles.<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">$GOPATH\/bin\/cctl create cluster --pod-network 192.168.0.0\/16 --service-network 192.169.0.0\/24<\/code><\/pre>\n<p><\/p>\n<p>\u2013 Por \u00faltimo, cree la primera m\u00e1quina en el cl\u00faster.<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">$GOPATH\/bin\/cctl create machine --ip $MACHINE_IP --role master<\/code><\/pre>\n<p><\/p>\n<p>Para m\u00e1s documentaci\u00f3n, lea en <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/platform9\/cctl\/\">GitHub<\/a><\/noindex>.<\/p>\n<p>Fuente: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/southbridge\/blog\/449214\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>KlusterKit: \u043d\u0430\u0431\u043e\u0440 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c \u0434\u043b\u044f \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u0438\u044f \u0434\u0435\u043f\u043b\u043e\u0435\u0432 Kubernetes \u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0432 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438 \u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u0440\u0435\u0434\u0430\u0445 \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u043c\u044b \u0441 \u0440\u0430\u0434\u043e\u0441\u0442\u044c\u044e \u043e\u0431\u044a\u044f\u0432\u043b\u044f\u0435\u043c, \u0447\u0442\u043e Platform9 \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u043a\u043e\u0434\u044b Klusterkit, \u043d\u0430\u0431\u043e\u0440\u0430 \u0438\u0437 \u0442\u0440\u0435\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432, \u043f\u043e \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0438 Apache v2.0 \u043d\u0430 GitHub. \u041d\u0430\u0448\u0438 \u043a\u043b\u0438\u0435\u043d\u0442\u044b \u0432\u044b\u043a\u0430\u0442\u044b\u0432\u0430\u044e\u0442 \u041f\u041e \u0432 \u0447\u0430\u0441\u0442\u043d\u044b\u0445 \u0434\u0430\u0442\u0430-\u0446\u0435\u043d\u0442\u0440\u0430\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0447\u0430\u0441\u0442\u043e \u043d\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u044b \u043a \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0443 (\u043f\u043e \u0441\u043e\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u043c \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":24101,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-32283","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.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"KlusterKit: \u043d\u0430\u0431\u043e\u0440 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c \u0434\u043b\u044f.\" \/>\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\/klusterkit\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\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\udd47KlusterKit | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"KlusterKit: \u043d\u0430\u0431\u043e\u0440 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c \u0434\u043b\u044f.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/klusterkit\" \/>\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-31T18:46:07+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:46:07+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\udd47KlusterKit | ProHoster","description":"KlusterKit: un conjunto de herramientas de c\u00f3digo abierto para.","canonical_url":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/klusterkit","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\udd47KlusterKit | ProHoster","og:description":"KlusterKit: \u043d\u0430\u0431\u043e\u0440 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c \u0434\u043b\u044f.","og:url":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/klusterkit","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-31T18:46:07+00:00","article:modified_time":"2019-10-31T18:46:07+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"32283","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 10:07:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 03:02:06","updated":"2026-01-21 10:07: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\/32283","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=32283"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/32283\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media\/24101"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media?parent=32283"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/categories?post=32283"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/tags?post=32283"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}