{"id":526,"date":"2023-06-22T18:36:31","date_gmt":"2023-06-22T18:36:31","guid":{"rendered":"https:\/\/aidomoticssystems.com\/?p=526"},"modified":"2024-06-26T06:25:12","modified_gmt":"2024-06-26T06:25:12","slug":"docker-swarm","status":"publish","type":"post","link":"https:\/\/aidomoticssystems.com\/index.php\/2023\/06\/22\/docker-swarm\/","title":{"rendered":"Docker Swarm: Orquestaci\u00f3n de contenedores"},"content":{"rendered":"<p><a href=\"https:\/\/www.docker.com\/products\/docker-desktop\/\" target=\"_blank\" rel=\"noopener\">Docker Swarm<\/a> es una soluci\u00f3n nativa de Docker dise\u00f1ada para la orquestaci\u00f3n y administraci\u00f3n de contenedores en un entorno distribuido. Permite la creaci\u00f3n de cl\u00fasteres de contenedores y facilita el despliegue y la escalabilidad de aplicaciones en m\u00faltiples nodos de manera sencilla. En esta secci\u00f3n, exploraremos c\u00f3mo utilizar Docker Swarm para orquestar contenedores.<\/p>\n<h2>\u00bfQu\u00e9 es Docker Swarm?<\/h2>\n<p>Docker Swarm es un conjunto de herramientas que permiten la creaci\u00f3n y administraci\u00f3n de cl\u00fasteres de Docker. Con Swarm, puedes agrupar varios hosts de Docker en un solo cl\u00faster y tratarlos como un \u00fanico recurso. Esto te permite distribuir y equilibrar la carga de trabajo de tus aplicaciones en los diferentes nodos de manera automatizada y eficiente.<\/p>\n<h2>Creaci\u00f3n de un cl\u00faster Swarm<\/h2>\n<p>Para crear un cl\u00faster Docker Swarm, necesitar\u00e1s al menos un nodo l\u00edder (manager node) y uno o m\u00e1s nodos trabajadores (worker nodes). El nodo l\u00edder es responsable de la coordinaci\u00f3n y gesti\u00f3n del cl\u00faster, mientras que los nodos trabajadores ejecutan los contenedores y realizan las tareas asignadas.<\/p>\n<ol>\n<li>\n<p>Configuraci\u00f3n del nodo l\u00edder:<\/p>\n<ul>\n<li>Instala Docker en el nodo l\u00edder si a\u00fan no lo tienes.<\/li>\n<li>Inicia el modo Swarm en el nodo l\u00edder utilizando el comando <strong><code>docker swarm init<\/code>.<\/strong><\/li>\n<li>Se generar\u00e1 un token \u00fanico que necesitar\u00e1s para unir los nodos trabajadores al cl\u00faster.<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>Configuraci\u00f3n de los nodos trabajadores:<\/p>\n<ul>\n<li>Instala Docker en los nodos trabajadores.<\/li>\n<li>\u00danete al cl\u00faster Swarm utilizando el token generado anteriormente con el comando <strong><code>docker swarm join<\/code><\/strong><\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p>r.<\/p>\n<p>Una vez que los nodos trabajadores se han unido con \u00e9xito al cl\u00faster, puedes comenzar a desplegar servicios y contenedores en \u00e9l.<\/p>\n<h2>Despliegue de servicios en varios nodos<\/h2>\n<p>En Docker Swarm, puedes desplegar servicios que consisten en uno o varios contenedores. Estos servicios se distribuyen autom\u00e1ticamente entre los nodos trabajadores disponibles para garantizar una alta disponibilidad y escalabilidad.<\/p>\n<p>Aqu\u00ed hay un ejemplo b\u00e1sico de c\u00f3mo desplegar un servicio en un cl\u00faster Swarm:<\/p>\n<ul>\n<li>Crea un archivo <code><strong>docker-compose.yml<\/strong><\/code> donde defines el servicio. Por ejemplo:<\/li>\n<\/ul>\n<pre data-line=\"\">\n\t\t\t\t<code readonly=\"true\">\n\t\t\t\t\t<xmp>\nversion: \"3\"\nservices:\n  web:\n    image: nginx:latest\n    deploy:\n      replicas: 3\n      restart_policy:\n        condition: any\n<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n<p>En este caso, el servicio &#8220;web&#8221; se basa en la imagen de Nginx y se desplegar\u00e1 con tres r\u00e9plicas.<\/p>\n<ul>\n<li>Despliega el servicio en el cl\u00faster Swarm ejecutando el siguiente comando:<\/li>\n<\/ul>\n<pre data-line=\"\">\n\t\t\t\t<code readonly=\"true\">\n\t\t\t\t\t<xmp>\ndocker stack deploy -c docker-compose.yml <nombre_del_servicio>\n<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n<p>\t\tDocker Swarm ofrece una soluci\u00f3n sencilla para la orquestaci\u00f3n de contenedores en un entorno distribuido. Permite crear cl\u00fasteres de Docker y desplegar servicios en m\u00faltiples nodos con facilidad. Mediante la creaci\u00f3n de un cl\u00faster Swarm y el despliegue de servicios, puedes lograr una mayor escalabilidad y disponibilidad para tus aplicaciones.Si est\u00e1 buscando un superclone <a href=\"https:\/\/www.high-endrolex.com\/\" target=\"_blank\" rel=\"noopener\">Replica Rolex<\/a>, \u00a1Super Clone Rolex es el lugar al que debe acudir! \u00a1La mayor colecci\u00f3n de relojes Rolex falsos online!\t\t<\/p>\n<h2>Configuraci\u00f3n y administraci\u00f3n de cl\u00fasteres<\/h2>\n<p>La configuraci\u00f3n y administraci\u00f3n de cl\u00fasteres en Docker Swarm implica gestionar los nodos, ajustar la escalabilidad y administrar los recursos del cl\u00faster. A continuaci\u00f3n, se presentan algunas tareas comunes relacionadas con la configuraci\u00f3n y administraci\u00f3n de cl\u00fasteres en Docker Swarm.<\/p>\n<h3>Gesti\u00f3n de nodos en el cl\u00faster:<\/h3>\n<ul>\n<li>A\u00f1adir nodos: Puedes agregar nuevos nodos al cl\u00faster Swarm utilizando el comando <code><strong>docker swarm join<\/strong><\/code> en los nodos que deseas unir al cl\u00faster.<\/li>\n<li>Eliminar nodos: Si necesitas eliminar un nodo del cl\u00faster, puedes usar el comando <code><strong>docker swarm leave<\/strong><\/code> en el nodo que deseas eliminar.<\/li>\n<li>Verificar el estado de los nodos: Para verificar el estado de los nodos en el cl\u00faster, puedes ejecutar el comando <code><strong>docker node ls<\/strong><\/code>, que muestra una lista de todos los nodos y su estado actual.<\/li>\n<\/ul>\n<h3>Escalado de servicios:<\/h3>\n<ul>\n<li>Escalado horizontal: Puedes ajustar la cantidad de r\u00e9plicas de un servicio en el cl\u00faster utilizando el comando <strong><code>docker service scale<\/code><\/strong>. Por ejemplo, para escalar un servicio llamado &#8220;web&#8221; a 5 r\u00e9plicas, puedes ejecutar <code><strong>docker service scale web=5<\/strong><\/code>.<\/li>\n<li>Autoescalamiento: Docker Swarm tambi\u00e9n es compatible con el autoescalamiento de servicios basado en m\u00e9tricas predefinidas, como el uso de la CPU o la memoria. Puedes configurar reglas de autoescalamiento utilizando herramientas como Docker Swarm Autoscaler.<\/li>\n<\/ul>\n<h3>Administraci\u00f3n de recursos:<\/h3>\n<ul>\n<li>Restricci\u00f3n de recursos: Puedes establecer l\u00edmites de recursos para los servicios en el cl\u00faster Swarm, como la cantidad de CPU o memoria que cada servicio puede utilizar. Esto se puede hacer mediante la especificaci\u00f3n de l\u00edmites en el archivo <code><strong>docker-compose.yml<\/strong><\/code> o mediante el uso de comandos como <strong><code>docker service update<\/code><\/strong>.<\/li>\n<li>Balanceo de carga: Docker Swarm distribuye autom\u00e1ticamente los servicios entre los nodos disponibles. Sin embargo, tambi\u00e9n puedes especificar reglas de balanceo de carga personalizadas utilizando etiquetas y restricciones para dirigir servicios a nodos espec\u00edficos.<\/li>\n<\/ul>\n<h3>Actualizaci\u00f3n y gesti\u00f3n de servicios:<\/h3>\n<ul>\n<li>Actualizaci\u00f3n de servicios: Puedes actualizar servicios en el cl\u00faster mediante la modificaci\u00f3n del archivo <code>docker-compose.yml<\/code> o utilizando el comando <code>docker service update<\/code>. Esto permite aplicar cambios en tiempo real sin tiempo de inactividad.<\/li>\n<li>Monitorizaci\u00f3n y registro: Puedes utilizar herramientas de monitorizaci\u00f3n y registro, como Docker Logging y Docker Stats, para obtener informaci\u00f3n sobre el rendimiento y la salud de los servicios en el cl\u00faster.<\/li>\n<\/ul>\n<p>Estas son solo algunas de las tareas b\u00e1sicas involucradas en la configuraci\u00f3n y administraci\u00f3n de cl\u00fasteres en Docker Swarm. Dependiendo de tus requisitos espec\u00edficos, es posible que tambi\u00e9n desees explorar herramientas adicionales de administraci\u00f3n y monitoreo de cl\u00fasteres, como Portainer, Docker Swarm Visualizer o Docker Swarm Monitoring Stack, para simplificar a\u00fan m\u00e1s estas tareas.<\/p>\n<h2>Men\u00fa del curso: Selecciona contenido ha aprender<\/h2>\n<p>\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 512 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M504 256C504 119 393 8 256 8S8 119 8 256c0 123.78 90.69 226.38 209.25 245V327.69h-63V256h63v-54.64c0-62.15 37-96.48 93.67-96.48 27.14 0 55.52 4.84 55.52 4.84v61h-31.28c-30.8 0-40.41 19.12-40.41 38.73V256h68.78l-11 71.69h-57.78V501C413.31 482.38 504 379.78 504 256z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t\t\tFacebook<br \/>\n\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 512 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t\t\tTwitter<br \/>\n\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3zM135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5 0 21.3-17.2 38.5-38.5 38.5zm282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9V416z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t\t\tLinkedIn<br \/>\n\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 496 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm121.8 169.9l-40.7 191.8c-3 13.6-11.1 16.9-22.4 10.5l-62-45.7-29.9 28.8c-3.3 3.3-6.1 6.1-12.5 6.1l4.4-63.1 114.9-103.8c5-4.4-1.1-6.9-7.7-2.5l-142 89.4-61.2-19.1c-13.3-4.2-13.6-13.3 2.8-19.7l239.1-92.2c11.1-4 20.8 2.7 17.2 19.5z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t\t\tTelegram<br \/>\n\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 496 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M496 256c0 137-111 248-248 248-25.6 0-50.2-3.9-73.4-11.1 10.1-16.5 25.2-43.5 30.8-65 3-11.6 15.4-59 15.4-59 8.1 15.4 31.7 28.5 56.8 28.5 74.8 0 128.7-68.8 128.7-154.3 0-81.9-66.9-143.2-152.9-143.2-107 0-163.9 71.8-163.9 150.1 0 36.4 19.4 81.7 50.3 96.1 4.7 2.2 7.2 1.2 8.3-3.3.8-3.4 5-20.3 6.9-28.1.6-2.5.3-4.7-1.7-7.1-10.1-12.5-18.3-35.3-18.3-56.6 0-54.7 41.4-107.6 112-107.6 60.9 0 103.6 41.5 103.6 100.9 0 67.1-33.9 113.6-78 113.6-24.3 0-42.6-20.1-36.7-44.8 7-29.5 20.5-61.3 20.5-82.6 0-19-10.2-34.9-31.4-34.9-24.9 0-44.9 25.7-44.9 60.2 0 22 7.4 36.8 7.4 36.8s-24.5 103.8-29 123.2c-5 21.4-3 51.6-.9 71.2C65.4 450.9 0 361.1 0 256 0 119 111 8 248 8s248 111 248 248z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t\t\tPinterest<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Docker Swarm es una soluci\u00f3n nativa de Docker dise\u00f1ada para la orquestaci\u00f3n y administraci\u00f3n de contenedores en un entorno distribuido. Permite la creaci\u00f3n de cl\u00fasteres de contenedores y facilita el despliegue y la escalabilidad de aplicaciones en m\u00faltiples nodos de manera sencilla. En esta secci\u00f3n, exploraremos c\u00f3mo utilizar Docker Swarm <a href=\"https:\/\/aidomoticssystems.com\/index.php\/2023\/06\/22\/docker-swarm\/\" class=\"btn btn-link continue-link\">Continue Reading<\/a><\/p>\n","protected":false},"author":1,"featured_media":527,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[261,262],"tags":[57,53,280,279,303,267],"class_list":["post-526","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cursos","category-docker","tag-contenedores","tag-docker","tag-docker-swarm","tag-dockerfile","tag-kubernetes","tag-orquestacion-de-contenedores"],"_links":{"self":[{"href":"https:\/\/aidomoticssystems.com\/index.php\/wp-json\/wp\/v2\/posts\/526","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/aidomoticssystems.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/aidomoticssystems.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/aidomoticssystems.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/aidomoticssystems.com\/index.php\/wp-json\/wp\/v2\/comments?post=526"}],"version-history":[{"count":10,"href":"https:\/\/aidomoticssystems.com\/index.php\/wp-json\/wp\/v2\/posts\/526\/revisions"}],"predecessor-version":[{"id":642,"href":"https:\/\/aidomoticssystems.com\/index.php\/wp-json\/wp\/v2\/posts\/526\/revisions\/642"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/aidomoticssystems.com\/index.php\/wp-json\/wp\/v2\/media\/527"}],"wp:attachment":[{"href":"https:\/\/aidomoticssystems.com\/index.php\/wp-json\/wp\/v2\/media?parent=526"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/aidomoticssystems.com\/index.php\/wp-json\/wp\/v2\/categories?post=526"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/aidomoticssystems.com\/index.php\/wp-json\/wp\/v2\/tags?post=526"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}