tag:blogger.com,1999:blog-85332216266577350402024-03-13T04:53:57.508+00:00GDG Cloud EspañolComunidad entorno a la plataforma Cloud Español. En donde colaboran todos los hispano hablantes, que les entusiasma y usan las tecnologias y sobretodo Cloud Español.Mario Ezquerro Saenzhttp://www.blogger.com/profile/13268821028089033812noreply@blogger.comBlogger263125tag:blogger.com,1999:blog-8533221626657735040.post-15770928243169289252023-10-17T18:29:00.004+01:002023-10-17T18:41:52.073+01:00Actualizando Registrator y simplificando el Registro de Servicios en Docker con Consul.<h1 style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; background-color: #f7f7f8; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: var(--tw-prose-headings); font-family: Söhne, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Ubuntu, Cantarell, "Noto Sans", sans-serif, "Helvetica Neue", Arial, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-size: 2.25em; line-height: 1.11111; margin: 0px 0px 0.888889em; white-space-collapse: preserve;">Actualizando Registrator y simplificando el Registro de Servicios en Docker con Consul.</h1><p style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; background-color: #f7f7f8; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: #374151; font-family: Söhne, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Ubuntu, Cantarell, "Noto Sans", sans-serif, "Helvetica Neue", Arial, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-size: 16px; margin: 1.25em 0px; white-space-collapse: preserve;">En el mundo de la contenerización y la administración de microservicios, la gestión de servicios desplegados en múltiples contenedores puede convertirse en un desafío. Una de las herramientas que simplifica en gran medida este proceso es <span color="var(--tw-prose-bold)" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; font-weight: 600;">Registrator</span>. En este artículo, exploraremos qué es Registrator y cómo funciona en conjunto con Docker Compose para facilitar el registro de servicios en un entorno de contenedores. Además, destacaremos una contribución importante al proyecto que mejora la seguridad.</p><h2 style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; background-color: #f7f7f8; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: var(--tw-prose-headings); font-family: Söhne, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Ubuntu, Cantarell, "Noto Sans", sans-serif, "Helvetica Neue", Arial, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; line-height: 1.33333; margin: 2rem 0px 1rem; white-space-collapse: preserve;">¿Qué es Registrator?</h2><p style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; background-color: #f7f7f8; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: #374151; font-family: Söhne, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Ubuntu, Cantarell, "Noto Sans", sans-serif, "Helvetica Neue", Arial, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-size: 16px; margin: 0px 0px 1.25em; white-space-collapse: preserve;"><span color="var(--tw-prose-bold)" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; font-weight: 600;">Registrator</span> es una herramienta diseñada para simplificar la tarea de registrar servicios en un clúster de contenedores Docker. Permite la detección automática de contenedores que se inician y la actualización de los servicios registrados en un servicio de descubrimiento, como <span color="var(--tw-prose-bold)" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; font-weight: 600;">Consul</span>, <span color="var(--tw-prose-bold)" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; font-weight: 600;">etcd</span>, <span color="var(--tw-prose-bold)" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; font-weight: 600;">ZooKeeper</span>, entre otros. En este artículo, nos centraremos en su uso con <span color="var(--tw-prose-bold)" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; font-weight: 600;">Consul</span>.</p><h2 style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; background-color: #f7f7f8; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: var(--tw-prose-headings); font-family: Söhne, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Ubuntu, Cantarell, "Noto Sans", sans-serif, "Helvetica Neue", Arial, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; line-height: 1.33333; margin: 2rem 0px 1rem; white-space-collapse: preserve;">¿Por qué es importante el Registro de Servicios?</h2><p style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; background-color: #f7f7f8; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: #374151; font-family: Söhne, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Ubuntu, Cantarell, "Noto Sans", sans-serif, "Helvetica Neue", Arial, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-size: 16px; margin: 0px 0px 1.25em; white-space-collapse: preserve;">Cuando trabajamos con una arquitectura de microservicios, es fundamental que los servicios puedan descubrir y comunicarse entre sí de manera eficiente. El registro de servicios es un componente esencial para lograrlo. Cada vez que un servicio se inicia o se detiene, se debe actualizar el registro para reflejar estos cambios. Registrator automatiza este proceso, eliminando la necesidad de hacerlo manualmente.</p><h2 style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; background-color: #f7f7f8; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: var(--tw-prose-headings); font-family: Söhne, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Ubuntu, Cantarell, "Noto Sans", sans-serif, "Helvetica Neue", Arial, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; line-height: 1.33333; margin: 2rem 0px 1rem; white-space-collapse: preserve;">El Papel de Docker Compose</h2><p style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; background-color: #f7f7f8; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: #374151; font-family: Söhne, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Ubuntu, Cantarell, "Noto Sans", sans-serif, "Helvetica Neue", Arial, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-size: 16px; margin: 0px 0px 1.25em; white-space-collapse: preserve;">Docker Compose es una herramienta que permite definir y ejecutar aplicaciones multicontenedor. Facilita la gestión de múltiples contenedores y sus interconexiones, lo que es esencial en un entorno de microservicios. Registrator se integra bien con Docker Compose, lo que simplifica aún más el registro de servicios en un clúster de contenedores.</p><h2 style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; background-color: #f7f7f8; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: var(--tw-prose-headings); font-family: Söhne, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Ubuntu, Cantarell, "Noto Sans", sans-serif, "Helvetica Neue", Arial, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; line-height: 1.33333; margin: 2rem 0px 1rem; white-space-collapse: preserve;">Cómo Funciona Registrator</h2><p style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; background-color: #f7f7f8; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: #374151; font-family: Söhne, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Ubuntu, Cantarell, "Noto Sans", sans-serif, "Helvetica Neue", Arial, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-size: 16px; margin: 0px 0px 1.25em; white-space-collapse: preserve;">El funcionamiento de Registrator es relativamente sencillo. Cuando un contenedor se inicia en un sistema que ejecuta Registrator, este último detecta automáticamente el inicio del contenedor y obtiene su dirección IP y los puertos expuestos. Luego, Registrator se encarga de actualizar el servicio de descubrimiento (por ejemplo, Consul) con esta información. Esto permite que otros servicios en el clúster accedan al servicio recién registrado.</p><h2 style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; background-color: #f7f7f8; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: var(--tw-prose-headings); font-family: Söhne, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Ubuntu, Cantarell, "Noto Sans", sans-serif, "Helvetica Neue", Arial, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; line-height: 1.33333; margin: 2rem 0px 1rem; white-space-collapse: preserve;">Configuración de Registrator con Docker Compose</h2><p style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; background-color: #f7f7f8; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: #374151; font-family: Söhne, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Ubuntu, Cantarell, "Noto Sans", sans-serif, "Helvetica Neue", Arial, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-size: 16px; margin: 0px 0px 1.25em; white-space-collapse: preserve;">Para configurar Registrator con Docker Compose, se debe definir un servicio Registrator en el archivo <code style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: var(--tw-prose-code); font-family: "Söhne Mono", Monaco, "Andale Mono", "Ubuntu Mono", monospace; font-size: 0.875em; font-weight: 600;">docker-compose.yml</code>. Aquí hay un ejemplo de cómo podría verse esa configuración:</p><pre style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; background-color: #f7f7f8; border-radius: 0.375rem; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: #374151; font-family: "Söhne Mono", Monaco, "Andale Mono", "Ubuntu Mono", monospace; font-size: 0.875em; line-height: 1.71429; margin-bottom: 0px; margin-top: 0px; overflow-x: auto; padding: 0px;"><div class="bg-black rounded-md mb-4" style="--tw-bg-opacity: 1; --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; background-color: rgba(0,0,0,var(--tw-bg-opacity)); border-radius: 0.375rem; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; margin-bottom: 1rem;"><div class="flex items-center relative text-gray-200 bg-gray-800 gizmo:dark:bg-token-surface-primary px-4 py-2 text-xs font-sans justify-between rounded-t-md" style="--tw-bg-opacity: 1; --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-text-opacity: 1; --tw-translate-x: 0; --tw-translate-y: 0; align-items: center; background-color: rgba(52,53,65,var(--tw-bg-opacity)); border-top-left-radius: 0.375rem; border-top-right-radius: 0.375rem; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: rgba(217,217,227,var(--tw-text-opacity)); display: flex; font-family: Söhne, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Ubuntu, Cantarell, "Noto Sans", sans-serif, "Helvetica Neue", Arial, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-size: 0.75rem; justify-content: space-between; line-height: 1rem; padding: 0.5rem 1rem; position: relative;"><span style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box;">yaml</span><button class="flex ml-auto gizmo:ml-0 gap-2 items-center" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; align-items: center; appearance: button; background-image: none; border-color: rgb(217, 217, 227); border-style: solid; border-width: 0px; cursor: pointer; display: flex; font-family: inherit; font-size: 12px; font-weight: inherit; gap: 0.5rem; line-height: inherit; margin: 0px 0px 0px auto; padding: 0px;"><svg class="icon-sm" fill="none" height="1em" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" stroke="currentColor" viewbox="0 0 24 24" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path><rect height="4" rx="1" ry="1" width="8" x="8" y="2"></rect></svg>Copy code</button></div><div class="p-4 overflow-y-auto" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; overflow-y: auto; padding: 1rem;"><code class="!whitespace-pre hljs language-yaml" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; background: none; border-radius: 0.3em; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: white; font-family: inherit; font-size: inherit; font-weight: inherit; hyphens: none; line-height: 1.5; overflow-wrap: normal; padding: 0.1em; tab-size: 4; white-space: normal; word-break: normal; word-spacing: normal;"><span class="hljs-attr" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: #df3079;">version:</span> <span class="hljs-string" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: #00a67d;">'3'</span></code><span class="hljs-attr" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; background-color: initial; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: #df3079; font-family: inherit; font-size: inherit; font-weight: inherit; white-space: normal; word-spacing: normal;">services:</span><span style="background-color: initial; color: white; font-family: inherit; font-size: inherit; font-weight: inherit; white-space: normal; word-spacing: normal;">
</span><span class="hljs-attr" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; background-color: initial; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: #df3079; font-family: inherit; font-size: inherit; font-weight: inherit; white-space: normal; word-spacing: normal;">app:</span><span style="background-color: initial; color: white; font-family: inherit; font-size: inherit; font-weight: inherit; white-space: normal; word-spacing: normal;">
</span><span class="hljs-attr" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; background-color: initial; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: #df3079; font-family: inherit; font-size: inherit; font-weight: inherit; white-space: normal; word-spacing: normal;">image:</span><span style="background-color: initial; color: white; font-family: inherit; font-size: inherit; font-weight: inherit; white-space: normal; word-spacing: normal;"> </span><span class="hljs-string" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; background-color: initial; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: #00a67d; font-family: inherit; font-size: inherit; font-weight: inherit; white-space: normal; word-spacing: normal;">mi-aplicacion:latest</span><span style="background-color: initial; color: white; font-family: inherit; font-size: inherit; font-weight: inherit; white-space: normal; word-spacing: normal;">
</span><span class="hljs-attr" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; background-color: initial; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: #df3079; font-family: inherit; font-size: inherit; font-weight: inherit; white-space: normal; word-spacing: normal;">ports:</span><span style="background-color: initial; color: white; font-family: inherit; font-size: inherit; font-weight: inherit; white-space: normal; word-spacing: normal;">
</span><span class="hljs-bullet" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; background-color: initial; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: #f22c3d; font-family: inherit; font-size: inherit; font-weight: inherit; white-space: normal; word-spacing: normal;">-</span><span style="background-color: initial; color: white; font-family: inherit; font-size: inherit; font-weight: inherit; white-space: normal; word-spacing: normal;"> </span><span class="hljs-string" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; background-color: initial; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: #00a67d; font-family: inherit; font-size: inherit; font-weight: inherit; white-space: normal; word-spacing: normal;">"8080:80"</span><span style="background-color: initial; color: white; font-family: inherit; font-size: inherit; font-weight: inherit; white-space: normal; word-spacing: normal;">
</span><span class="hljs-attr" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; background-color: initial; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: #df3079; font-family: inherit; font-size: inherit; font-weight: inherit; white-space: normal; word-spacing: normal;">registrator:</span><span style="background-color: initial; color: white; font-family: inherit; font-size: inherit; font-weight: inherit; white-space: normal; word-spacing: normal;">
</span><span class="hljs-attr" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; background-color: initial; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: #df3079; font-family: inherit; font-size: inherit; font-weight: inherit; white-space: normal; word-spacing: normal;">image:</span><span style="background-color: initial; color: white; font-family: inherit; font-size: inherit; font-weight: inherit; white-space: normal; word-spacing: normal;"> </span><span class="hljs-string" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; background-color: initial; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: #00a67d; font-family: inherit; font-size: inherit; font-weight: inherit; white-space: normal; word-spacing: normal;">gliderlabs/registrator:latest</span><span style="background-color: initial; color: white; font-family: inherit; font-size: inherit; font-weight: inherit; white-space: normal; word-spacing: normal;">
</span><span class="hljs-attr" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; background-color: initial; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: #df3079; font-family: inherit; font-size: inherit; font-weight: inherit; white-space: normal; word-spacing: normal;">command:</span><span style="background-color: initial; color: white; font-family: inherit; font-size: inherit; font-weight: inherit; white-space: normal; word-spacing: normal;"> </span><span class="hljs-string" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; background-color: initial; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: #00a67d; font-family: inherit; font-size: inherit; font-weight: inherit; white-space: normal; word-spacing: normal;">"consul://mi-servicio-consul:8500"</span><span style="background-color: initial; color: white; font-family: inherit; font-size: inherit; font-weight: inherit; white-space: normal; word-spacing: normal;">
</span><span class="hljs-attr" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; background-color: initial; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: #df3079; font-family: inherit; font-size: inherit; font-weight: inherit; white-space: normal; word-spacing: normal;">volumes:</span><span style="background-color: initial; color: white; font-family: inherit; font-size: inherit; font-weight: inherit; white-space: normal; word-spacing: normal;">
</span><span class="hljs-bullet" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; background-color: initial; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: #f22c3d; font-family: inherit; font-size: inherit; font-weight: inherit; white-space: normal; word-spacing: normal;">-</span><span style="background-color: initial; color: white; font-family: inherit; font-size: inherit; font-weight: inherit; white-space: normal; word-spacing: normal;"> </span><span class="hljs-string" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; background-color: initial; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: #00a67d; font-family: inherit; font-size: inherit; font-weight: inherit; white-space: normal; word-spacing: normal;">/var/run/docker.sock:/tmp/docker.sock</span></div></div></pre><p style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; background-color: #f7f7f8; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: #374151; font-family: Söhne, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Ubuntu, Cantarell, "Noto Sans", sans-serif, "Helvetica Neue", Arial, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-size: 16px; margin: 1.25em 0px; white-space-collapse: preserve;">En este ejemplo, el servicio <code style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: var(--tw-prose-code); font-family: "Söhne Mono", Monaco, "Andale Mono", "Ubuntu Mono", monospace; font-size: 0.875em; font-weight: 600;">registrator</code> se ejecuta junto con la aplicación. Está configurado para registrar los servicios en Consul.</p><h2 style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; background-color: #f7f7f8; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: var(--tw-prose-headings); font-family: Söhne, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Ubuntu, Cantarell, "Noto Sans", sans-serif, "Helvetica Neue", Arial, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; line-height: 1.33333; margin: 2rem 0px 1rem; white-space-collapse: preserve;">Ventajas de Utilizar Registrator</h2><ul style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; background-color: #f7f7f8; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: #374151; display: flex; flex-direction: column; font-family: Söhne, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Ubuntu, Cantarell, "Noto Sans", sans-serif, "Helvetica Neue", Arial, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-size: 16px; list-style-image: initial; list-style-position: initial; margin: 0px 0px 1.25em; padding: 0px; white-space-collapse: preserve;"><li style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; display: block; margin: 0px; min-height: 28px; padding-left: 0.375em;"><p style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; margin: 0px;"><span color="var(--tw-prose-bold)" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; font-weight: 600;">Automatización</span>: Registrator automatiza el proceso de registro de servicios en un clúster de contenedores, lo que ahorra tiempo y reduce la posibilidad de errores humanos.</p></li><li style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; display: block; margin: 0px; min-height: 28px; padding-left: 0.375em;"><p style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; margin: 0px;"><span color="var(--tw-prose-bold)" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; font-weight: 600;">Integración con Docker Compose</span>: La integración con Docker Compose facilita la configuración y el despliegue de Registrator en un entorno de múltiples contenedores.</p></li><li style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; display: block; margin: 0px; min-height: 28px; padding-left: 0.375em;"><p style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; margin: 0px;"><span color="var(--tw-prose-bold)" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; font-weight: 600;">Escalabilidad</span>: Registrator es escalable y se adapta fácilmente a la creciente cantidad de contenedores en su clúster.</p></li></ul><h2 style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; background-color: #f7f7f8; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: var(--tw-prose-headings); font-family: Söhne, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Ubuntu, Cantarell, "Noto Sans", sans-serif, "Helvetica Neue", Arial, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; line-height: 1.33333; margin: 2rem 0px 1rem; white-space-collapse: preserve;">Contribución a la Seguridad</h2><p style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; background-color: #f7f7f8; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: #374151; font-family: Söhne, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Ubuntu, Cantarell, "Noto Sans", sans-serif, "Helvetica Neue", Arial, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-size: 16px; margin: 0px 0px 1.25em; white-space-collapse: preserve;">También es importante destacar que el autor de este artículo ha realizado una valiosa contribución al proyecto Registrator en GitHub. Un fork del proyecto original, disponible en <a href="https://github.com/mario-ezquerro/registrator" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-text-opacity: 1; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; text-decoration-line: none;" target="_new">GitHub</a>, ofrece actualizaciones regulares de las versiones de los contenedores base utilizados en el proyecto, lo que contribuye a eliminar vulnerabilidades y mantener el software seguro.</p><h2 style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; background-color: #f7f7f8; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: var(--tw-prose-headings); font-family: Söhne, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Ubuntu, Cantarell, "Noto Sans", sans-serif, "Helvetica Neue", Arial, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; line-height: 1.33333; margin: 2rem 0px 1rem; white-space-collapse: preserve;">Conclusión</h2><p style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; background-color: #f7f7f8; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: #374151; font-family: Söhne, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Ubuntu, Cantarell, "Noto Sans", sans-serif, "Helvetica Neue", Arial, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-size: 16px; margin: 0px; white-space-collapse: preserve;">Registrator es una herramienta poderosa que simplifica el registro de servicios en un entorno de contenedores Docker. Al trabajar en conjunto con Docker Compose, automatiza el proceso de registro y actualización de servicios en un clúster de contenedores, lo que es esencial en arquitecturas de microservicios. El uso de Registrator aporta automatización, simplificación y eficiencia a la gestión de servicios en contenedores, contribuyendo así a un entorno de desarrollo más ágil y escalable. Además, las contribuciones al proyecto en GitHub resaltan el compromiso con la seguridad y la mejora continua.</p>Mario Ezquerro Saenzhttp://www.blogger.com/profile/13268821028089033812noreply@blogger.com0tag:blogger.com,1999:blog-8533221626657735040.post-76698896060131637042022-10-16T18:09:00.002+01:002022-10-16T18:14:13.588+01:00Pentesting desde un contenedor<div style="text-align: left;"><span style="font-family: inherit;"> <span face=""open sans", -apple-system, BlinkMacSystemFont, "segoe ui", Roboto, "helvetica neue", Arial, sans-serif, "apple color emoji", "segoe ui emoji", "segoe ui symbol"" style="background-color: white; color: #222222; font-size: 16px;">He hablado mucho de como hacer diversas acciones en docker y contenedores. Tampoco quiero que mi contenido sea monotemático pero me han lanzando una sugerencia de vídeo y no me puedo resistir a abordar el tema.</span></span></div><div style="text-align: left;"><span face=""open sans", -apple-system, BlinkMacSystemFont, "segoe ui", Roboto, "helvetica neue", Arial, sans-serif, "apple color emoji", "segoe ui emoji", "segoe ui symbol"" style="background-color: white; color: #222222; font-family: inherit; font-size: 16px;"><br /></span></div><div style="text-align: left;"><span style="font-family: inherit;"><span style="background-color: white; color: #222222; font-size: 16px;">Concretamente, el usuario pwnhun73r me sugirió utilizar contenedores para pentesting en laboratorios como HackTheBox o TryHackMe. Gracias por el apoyo y la sugerencia. Tu también puedes sugerir nuevo contenido desde </span><a href="https://github.com/pabpereza/pabpereza/issues" style="box-sizing: border-box; color: #3176d9; font-size: 16px; text-decoration-line: none;">la sección de issues de esta página en GitHub</a><span style="background-color: white; color: #222222; font-size: 16px;">.</span></span></div><div><span style="color: #222222; font-family: inherit;"><br /></span><div style="text-align: left;"><span style="font-family: inherit;">Hace tiempo que no me dedico al pentesting profesionalmente pero tampoco me gusta que se me oxide el tema. Youtube es muy restrictivo con el contenido del hacking por lo que, para este vídeo, me limitaré a plantear el entorno sin entrar en la explotación.</span></div><div style="text-align: left;"><span style="font-family: inherit;"><br /></span></div><h2 style="text-align: left;"><span style="font-family: inherit;">¿Por qué?</span></h2></div><div style="text-align: left;"><span style="background-color: white; color: #222222; font-size: 16px;"><span style="font-family: inherit;">Esta es la pregunta del millón… ¿Por qué?¿Cuál es la necesidad?. Realmente las máquinas virtuales para esta labor igual son más prácticas que un contenedor, tienes tus copias de seguridad, tu interfaz, puedes conectarles hardware cómodamente (antenas, cables, etc) y puedes configurar los servicios que necesites.</span></span></div><span style="font-family: inherit;"><span style="color: #222222;"><br /></span>Para los fanáticos de los contenedores como yo, es por amor de llevar la tecnología al límite. Hay que reconocer que los contenedores tienen sus ventajas. Fáciles de ejecutar, versionar y almacenar. Suficiente para justificar este vídeo.<br /><br /><br /></span><h2 style="text-align: left;"><span style="font-family: inherit;">Retos</span></h2><div><span style="font-family: inherit;"><a href="https://pabpereza.dev/blog/2022/08/29/pentesting-desde-un-contenedor/#retos"></a>Tenemos dos retos a tener en cuenta basados en dos escenarios:<br /></span><div><div class="td-main" style="box-sizing: border-box; flex-grow: 1;"><div class="row flex-xl-nowrap" style="box-sizing: border-box; display: flex; flex-wrap: nowrap; margin-left: -15px; margin-right: -15px;"><main class="col-12 col-md-9 col-xl-8 pl-md-5 pr-md-4" role="main" style="box-sizing: border-box; flex: 0 0 66.6667%; max-width: 66.6667%; padding-bottom: 2rem; padding-left: 3rem !important; padding-right: 1.5rem !important; padding-top: 5.5rem; padding: 5.5rem 1.5rem 2rem 3rem; position: relative; width: 1217.98px;"><div class="td-content" style="box-sizing: border-box; order: 1;"><h3><span style="font-family: inherit;">Contenedor para pentesting de un sitio web público</span></h3><p style="background-color: white; box-sizing: border-box; color: #222222; font-size: 16px; margin-bottom: 1rem; margin-top: 0px; max-width: 80%;"></p><div class="alert alert-warning" role="alert" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-color: rgb(237, 106, 90); border-image: initial; border-radius: 0px; border-style: solid; border-width: 0px 0px 0px 4px; box-sizing: border-box; margin-bottom: 2rem; margin-top: 2rem; max-width: 80%; padding: 0.75rem 1.25rem; position: relative;"><h4 class="alert-heading" style="background-color: white; box-sizing: border-box; color: #ed6a5a; font-size: 1.35rem; font-weight: 500; line-height: 1.2; margin-bottom: 0.5rem; margin-top: 0px;"><span style="font-family: inherit;">Warning</span></h4><span style="font-family: inherit;"><span style="background-color: white; color: inherit; font-size: 16px;">Antes de nada recordad que el sitio deberá ser de vuestra propiedad o deberéis tener permiso para auditarlo</span>.</span></div><span style="font-family: inherit;">En este supuesto, accedemos a algún sitio público y queremos hacer pentesting. Para la parte de la enumeración no tendremos limitación alguna. El problema surge cuando queremos explotar un sitio. La mayoría de conexiones que intentaremos generar serán inversas y, por tanto, necesitaremos abrir puertos en el router.<br /><br /></span><div class="card rounded p-2 td-post-card mb-4 mt-4" style="background-clip: border-box; border-radius: 0.25rem; border: 1px solid rgba(0, 0, 0, 0.125); box-sizing: border-box; display: flex; flex-direction: column; margin-bottom: 1.5rem; margin-top: 1.5rem; max-width: 333px; min-width: 0px; overflow-wrap: break-word; padding: 0.5rem; position: relative;"><img class="card-img-top" height="514" src="https://pabpereza.dev/blog/2022/08/29/pentesting-desde-un-contenedor/web_container.drawio_huac816293542598ce85666786b3ed362d_17866_700x450_fit_catmullrom_3.png" style="border-style: none; border-top-left-radius: calc(0.25rem - 1px); border-top-right-radius: calc(0.25rem - 1px); box-sizing: border-box; flex-shrink: 0; height: auto; max-width: 100%; vertical-align: middle; width: 315px;" width="369" /><div class="card-body px-0 pt-2 pb-0" style="background-color: white; box-sizing: border-box; color: #222222; flex: 1 1 auto; font-size: 16px; min-height: 1px; padding: 0.5rem 0px 0px;"><p class="card-text" style="box-sizing: border-box; margin-bottom: 0px; margin-top: 0px;"><span style="font-family: inherit;">Conexiones desde un contenedor a un servidor público</span></p></div></div><span style="font-family: inherit;"><br /><br />Supongamos que hacemos las pruebas desde un servidor público también, como un VPS. En este caso, no tendremos problema para abrir puertos. Aunque no todo queda ahí, tendremos que natear al contenedor un rango de puertos para que el servidor pueda acceder a los servicios que estemos ejecutando en el contenedor.<br /><br />Imaginaros que estamos escuchando una conexión con netcat en el puerto 4444. Deberíamos ejecutar el contenedor con ese puerto mapeado del host para que podamos capturar las conexiones desde del contenedor.<br /><br />Esto podemos hacerlo así:<br /></span><div class="highlight" style="background-clip: border-box; background-color: white; border-radius: 0.25rem; border: 1px solid rgba(0, 0, 0, 0.125); box-sizing: border-box; color: #222222; display: flex; flex-direction: column; font-size: 16px; margin: 2rem 0px; max-width: 80%; min-width: 0px; overflow-wrap: break-word; padding: 0px; position: relative;"><div class="code-toolbar" style="box-sizing: border-box; position: relative;"><pre class="language-bash" style="background: rgb(39, 40, 34); box-sizing: border-box; color: #f8f8f2; font-size: 1em; hyphens: none; line-height: 1.5; margin-bottom: 0px; margin-top: 0px; overflow-wrap: normal; overflow: auto; padding: 1rem; tab-size: 4; word-break: normal; word-spacing: normal;" tabindex="0"><code class="language-bash" data-lang="bash" style="background-attachment: initial; background-clip: initial; background-color: inherit; background-image: initial; background-origin: initial; background-position: 0px 0px; background-repeat: initial; background-size: initial; border: 0px; box-sizing: border-box; color: #cccccc; hyphens: none; line-height: 1.5; margin: 0px; overflow-wrap: normal; padding: 0px; tab-size: 4; word-break: normal; word-spacing: normal;"><span style="font-family: inherit;"><span class="token function" style="box-sizing: border-box; color: #f08d49;">docker</span> run -it -p <span class="token number" style="box-sizing: border-box; color: #f08d49;">4444</span>:4444 kalilinux/kali-rolling /bin/bash
</span></code></pre><div class="toolbar" style="box-sizing: border-box; opacity: 0; position: absolute; right: 0.2em; top: 0.3em; transition: opacity 0.3s ease-in-out 0s; z-index: 10;"><span style="font-family: inherit;"><div class="toolbar-item" style="box-sizing: border-box; display: inline-block;"><span style="background: rgba(224, 224, 224, 0.2); border-radius: 0.5em; box-shadow: rgba(0, 0, 0, 0.2) 0px 2px 0px 0px; box-sizing: border-box; color: #bbbbbb; font-size: 0.8em; padding: 0px 0.5em;">Bash</span></div><div class="toolbar-item" style="box-sizing: border-box; display: inline-block;"><button class="copy-to-clipboard-button" data-copy-state="copy" style="appearance: button; background: rgba(224, 224, 224, 0.2); border-color: initial; border-radius: 0.5em; border-style: initial; border-width: 0px; box-shadow: rgba(0, 0, 0, 0.2) 0px 2px 0px 0px; color: #bbbbbb; cursor: pointer; font-size: 0.8em; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; margin: 0px; overflow: visible; padding: 0px 0.5em; user-select: none;" type="button"><span style="box-sizing: border-box;">Copy</span></button></div></span></div></div></div><h4 style="background-color: white; box-sizing: border-box; color: #222222; font-size: 1.5rem; font-weight: 500; line-height: 1.2; margin-bottom: 1rem; margin-top: 2rem; text-align: left;"><span style="font-family: inherit;">Contenedor para pentesting en un laboratorio privado</span></h4><h3 id="contenedor-para-pentesting-en-un-laboratorio-privado" style="background-color: white; box-sizing: border-box; color: #222222; font-size: 1.5rem; font-weight: 500; line-height: 1.2; margin-bottom: 1rem; margin-top: 2rem;"><a aria-hidden="true" href="https://pabpereza.dev/blog/2022/08/29/pentesting-desde-un-contenedor/#contenedor-para-pentesting-en-un-laboratorio-privado" style="background-color: transparent; box-sizing: border-box; color: #3176d9; text-decoration-line: none; visibility: hidden;"><svg fill="currentColor" height="24" viewbox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><span style="font-family: inherit;"><path d="M0 0h24v24H0z" fill="none"></path><path d="M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z"></path></span></svg></a></h3><p style="background-color: white; box-sizing: border-box; color: #222222; font-size: 16px; margin-bottom: 1rem; margin-top: 0px; max-width: 80%;"><span style="font-family: inherit;">En este caso, la parte de acceso y enrutamiento es más sencillo dado que normalmente a los laboratorios de pentesting nos conectamos a través de una VPN, la cuál, nos crea un tunel directamente desde el contenedor al laboratorio.</span></p><div class="card rounded p-2 td-post-card mb-4 mt-4" style="background-clip: border-box; background-color: white; border-radius: 0.25rem; border: 1px solid rgba(0, 0, 0, 0.125); box-sizing: border-box; color: #222222; display: flex; flex-direction: column; font-size: 16px; margin-bottom: 1.5rem; margin-top: 1.5rem; max-width: 288px; min-width: 0px; overflow-wrap: break-word; padding: 0.5rem; position: relative;"><img class="card-img-top" height="450" src="https://pabpereza.dev/blog/2022/08/29/pentesting-desde-un-contenedor/lab_container.drawio_huec361dd4430ba791d15e41eba0cc9af1_27417_700x450_fit_catmullrom_3.png" style="border-style: none; border-top-left-radius: calc(0.25rem - 1px); border-top-right-radius: calc(0.25rem - 1px); box-sizing: border-box; flex-shrink: 0; height: auto; max-width: 100%; vertical-align: middle; width: 270px;" width="278" /><div class="card-body px-0 pt-2 pb-0" style="box-sizing: border-box; flex: 1 1 auto; min-height: 1px; padding: 0.5rem 0px 0px;"><p class="card-text" style="box-sizing: border-box; margin-bottom: 0px; margin-top: 0px;"><span style="font-family: inherit;">Conexiones desde un contenedor a un laboratorio privado</span></p></div></div><p style="background-color: white; box-sizing: border-box; color: #222222; font-size: 16px; margin-bottom: 1rem; margin-top: 0px; max-width: 80%;"></p><p style="background-color: white; box-sizing: border-box; color: #222222; font-size: 16px; margin-bottom: 1rem; margin-top: 0px; max-width: 80%;"><span style="font-family: inherit;">La problemática viene por la parte del cliente VPN en los contenedores.</span></p><h4 id="limitaciones" style="background-color: white; box-sizing: border-box; color: #222222; font-size: 1.35rem; font-weight: 500; line-height: 1.2; margin-bottom: 1rem; margin-top: 2rem;"><span style="font-family: inherit;">Limitaciones<a aria-hidden="true" href="https://pabpereza.dev/blog/2022/08/29/pentesting-desde-un-contenedor/#limitaciones" style="background-color: transparent; box-sizing: border-box; color: #3176d9; text-decoration-line: none; visibility: hidden;"><svg fill="currentColor" height="24" viewbox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M0 0h24v24H0z" fill="none"></path><path d="M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z"></path></svg></a></span></h4><span style="font-family: inherit;">La principal limitación es la acceso a las interfaces de red. En una máquina virtual virtualizas tanto software como hardware. En el caso de los contenedores, al ser procesos aislados, tenemos que lidiar con la problemática de crear interfaces de red para las VPN de algunos laboratorio.</span></div><div class="td-content" style="box-sizing: border-box; order: 1;"><span style="background-color: white; color: #222222; font-size: 16px;"><span style="font-family: inherit;"><br /></span></span></div><div class="td-content" style="box-sizing: border-box; order: 1;"><span style="font-family: inherit;"><span style="background-color: white; color: #222222; font-size: 16px;">Podemos levantar un contenedor con Kali Linux solventando estas limitaciones, usando el parámetro </span><code style="background-color: rgba(0, 0, 0, 0.05); border-radius: 0.25rem; box-sizing: border-box; color: inherit; font-size: 13.6px; margin: 0px; overflow-wrap: break-word; padding: 0.2em 0.4em; word-break: normal;">--privileged</code><span style="background-color: white; color: #222222; font-size: 16px;"> para que el contenedor tenga acceso a las interfaces de red del host y </span><code style="background-color: rgba(0, 0, 0, 0.05); border-radius: 0.25rem; box-sizing: border-box; color: inherit; font-size: 13.6px; margin: 0px; overflow-wrap: break-word; padding: 0.2em 0.4em; word-break: normal;">--sysctl net.ipv6.conf.all.disable_ipv6=0</code><span style="background-color: white; color: #222222; font-size: 16px;"> para que el contenedor tenga acceso a la red IPv6.</span></span></div><div class="td-content" style="box-sizing: border-box; order: 1;"><span style="background-color: white; color: #222222; font-size: 16px;"><span style="font-family: inherit;"><br /></span></span></div><div class="td-content" style="box-sizing: border-box; order: 1;"><span style="background-color: white; color: #222222; font-size: 16px;"><span style="font-family: inherit;">El comando completo sería:</span></span></div></main></div></div></div><div><div class="td-main" style="box-sizing: border-box; flex-grow: 1;"><div class="row flex-xl-nowrap" style="box-sizing: border-box; display: flex; flex-wrap: nowrap; margin-left: -15px; margin-right: -15px;"><main class="col-12 col-md-9 col-xl-8 pl-md-5 pr-md-4" role="main" style="box-sizing: border-box; flex: 0 0 66.6667%; max-width: 66.6667%; padding-bottom: 2rem; padding-left: 3rem !important; padding-right: 1.5rem !important; padding-top: 5.5rem; padding: 5.5rem 1.5rem 2rem 3rem; position: relative; width: 1217.98px;"><div class="td-content" style="box-sizing: border-box; order: 1;"><div class="highlight" style="background-clip: border-box; background-color: white; border-radius: 0.25rem; border: 1px solid rgba(0, 0, 0, 0.125); box-sizing: border-box; color: #222222; display: flex; flex-direction: column; font-size: 16px; margin: 2rem 0px; max-width: 80%; min-width: 0px; overflow-wrap: break-word; padding: 0px; position: relative;"><div class="code-toolbar" style="box-sizing: border-box; position: relative;"><pre class="language-bash" style="background: rgb(39, 40, 34); box-sizing: border-box; color: #f8f8f2; font-size: 1em; hyphens: none; line-height: 1.5; margin-bottom: 0px; margin-top: 0px; overflow-wrap: normal; overflow: auto; padding: 1rem; tab-size: 4; word-break: normal; word-spacing: normal;" tabindex="0"><code class="language-bash" data-lang="bash" style="background-attachment: initial; background-clip: initial; background-color: inherit; background-image: initial; background-origin: initial; background-position: 0px 0px; background-repeat: initial; background-size: initial; border: 0px; box-sizing: border-box; color: #cccccc; hyphens: none; line-height: 1.5; margin: 0px; overflow-wrap: normal; padding: 0px; tab-size: 4; word-break: normal; word-spacing: normal;"><span style="font-family: inherit;"><span class="token function" style="box-sizing: border-box; color: #f08d49;">docker</span> run -it --privileged --sysctl net.ipv6.conf.all.disable_ipv6<span class="token operator" style="box-sizing: border-box; color: #67cdcc;">=</span><span class="token number" style="box-sizing: border-box; color: #f08d49;">0</span> kalilinux/kali-rolling /bin/bash
</span></code></pre><div class="toolbar" style="box-sizing: border-box; opacity: 0; position: absolute; right: 0.2em; top: 0.3em; transition: opacity 0.3s ease-in-out 0s; z-index: 10;"><span style="font-family: inherit;"><div class="toolbar-item" style="box-sizing: border-box; display: inline-block;"><span style="background: rgba(224, 224, 224, 0.2); border-radius: 0.5em; box-shadow: rgba(0, 0, 0, 0.2) 0px 2px 0px 0px; box-sizing: border-box; color: #bbbbbb; font-size: 0.8em; padding: 0px 0.5em;">Bash</span></div><div class="toolbar-item" style="box-sizing: border-box; display: inline-block;"><button class="copy-to-clipboard-button" data-copy-state="copy" style="appearance: button; background: rgba(224, 224, 224, 0.2); border-color: initial; border-radius: 0.5em; border-style: initial; border-width: 0px; box-shadow: rgba(0, 0, 0, 0.2) 0px 2px 0px 0px; color: #bbbbbb; cursor: pointer; font-size: 0.8em; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; margin: 0px; overflow: visible; padding: 0px 0.5em; user-select: none;" type="button"><span style="box-sizing: border-box;">Copy</span></button></div></span></div></div></div><span style="font-family: inherit;">Así ya podríamos conectarnos a HackTheBox, por ejemplo.</span><h2 id="vídeo" style="background-color: white; box-sizing: border-box; color: #222222; font-size: 2rem; font-weight: 500; line-height: 1.2; margin-bottom: 1rem; margin-top: 3rem; max-width: 80%;"><span style="font-family: inherit;">Vídeo<a aria-hidden="true" href="https://pabpereza.dev/blog/2022/08/29/pentesting-desde-un-contenedor/#v%C3%ADdeo" style="background-color: transparent; box-sizing: border-box; color: #3176d9; text-decoration-line: none; visibility: hidden;"><svg fill="currentColor" height="24" viewbox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M0 0h24v24H0z" fill="none"></path><path d="M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z"></path></svg></a></span></h2><p style="background-color: white; box-sizing: border-box; color: #222222; font-size: 16px; margin-bottom: 1rem; margin-top: 0px; max-width: 80%;"><span style="font-family: inherit;">Sin más preámbulos, dentro vídeo:</span></p><div style="background-color: white; box-sizing: border-box; color: #222222; font-family: "open sans", -apple-system, BlinkMacSystemFont, "segoe ui", Roboto, "helvetica neue", Arial, sans-serif, "apple color emoji", "segoe ui emoji", "segoe ui symbol"; font-size: 16px; height: 0px; overflow: hidden; padding-bottom: 644.609px; position: relative;"><iframe allowfullscreen="" src="https://www.youtube.com/embed/0GsiBPVRMyI" style="border-style: initial; border-width: 0px; box-sizing: border-box; height: 644.609px; left: 0px; position: absolute; top: 0px; width: 1145.98px;" title="YouTube Video"></iframe><br /></div></div></main></div></div></div></div>Pablo Pérez-Aradroshttp://www.blogger.com/profile/11702380207387758836noreply@blogger.com0tag:blogger.com,1999:blog-8533221626657735040.post-8593675537113233292022-08-09T17:01:00.001+01:002022-08-09T17:01:44.909+01:00Potencia tu terminal Powershell <div class="td-main"><div class="row flex-xl-nowrap"><main class="col-12 col-md-9 col-xl-8 pl-md-5 pr-md-4" role="main"><div class="td-content"><p>He de reconocer que no soy muy fan de powershell, es más, en ciertos momentos de mi vida he llegado a detestarlo. Tanto si te encanta powershell como si te ves forzado a usarlo, hay que reconocer quees muy mejorable.</p><p>En el anterior vídeo vimos el proceso de potenciar el terminal en entornos unix y linux mediante zsh y oh-my-zsh. <a href="https://pabpereza.dev/blog/potencia_tu_terminal/">Aquí la entrada al blog y enlace al vídeo</a></p><p>Para esta ocasión, abordaremos el tema en sistemas windows utilizando oh my posh. OMP nos ofrece características, que a día de hoy considero indispensables, como:</p><ul><li>Auto completado</li><li>Navegación simplificada</li><li>Información avanzada</li><li>Personalizacion con múltiples temas</li></ul><p>Dentro vídeo:</p><div><iframe src="https://www.youtube.com/embed/kWIesAUhLAg" allowfullscreen="" title="YouTube Video"></iframe></div><p></p><h3 id="todos-los-comandos-del-vídeo-y-enlaces-están-en-la-siguiente-página">Todos los comandos del vídeo y enlaces están en la siguiente página:<a aria-hidden="true" href="https://pabpereza.dev/blog/2022/08/08/potencia-powershell/#todos-los-comandos-del-v%C3%ADdeo-y-enlaces-est%C3%A1n-en-la-siguiente-p%C3%A1gina"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" width="24" height="24" viewBox="0 0 24 24"><path d="M0 0h24v24H0z" fill="none"></path><path d="M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z"></path></svg></a></h3><p><strong>Documentación: <a href="https://pabpereza.dev/docs/windows/oh_my_posh/">/docs/windows/oh_my_posh</a></strong></p></div></main></div></div>Pablo Pérez-Aradroshttp://www.blogger.com/profile/11702380207387758836noreply@blogger.com0tag:blogger.com,1999:blog-8533221626657735040.post-77840027930006432172022-03-29T19:23:00.005+01:002022-03-29T19:23:51.846+01:00Escapar de contenedores Docker - Principales malas configuraciones<p> Los contenedores son procesos aislados que, por defecto, ¿se podrían considerar como seguros?. Su enfoque nos dice que sí pero existen muchos casos en los que, principalmente por malas configuraciones, podrían ser vulnerables.</p><p><br /></p><h3 style="text-align: left;">Aislados pero no herméticos</h3><p>Tecnologías de contenedores como Docker, LXC, LXD, etc.. permiten a los usuarios lanzar un proceso aislado pero, existen multiples funcionalidades, que podrían comprometer la aplicación en mayor o menor medida.</p><p><a href="https://pabpereza.dev/docs/pentesting/privilegios/contenedores/" target="_blank">Documentación</a></p><p><br /></p><p>En este vídeo trato las principales malas configuraciones que permiten a un atacante escapar de un contenedor:</p><div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen="" class="BLOG_video_class" height="302" src="https://www.youtube.com/embed/XmOsJXA0FU8" width="510" youtube-src-id="XmOsJXA0FU8"></iframe></div><br /><p><br /></p><p><br /></p><p><b>Principales malas configuraciones</b>:</p><p></p><ul style="text-align: left;"><li>Montaje de volúmenes</li><li>Ejecución en modo privilegiado</li><li>Escalado a través del grupo de docker</li><li>Host vulnerable</li><li>Secretos o variables de entorno</li><li>Montaje del socket</li><li>Segregación de redes</li></ul><p></p><div><br /></div>Pablo Pérez-Aradroshttp://www.blogger.com/profile/11702380207387758836noreply@blogger.com0tag:blogger.com,1999:blog-8533221626657735040.post-76820697549821843252022-01-04T09:42:00.001+00:002022-01-04T09:42:40.923+00:00Os hablamos de las Becas Google , como presentarse y los importantes cambios.<p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqLUDq91R-6XR8Wq2tqvSnvk0D6Ob5z8_f6boZgeGVKt2GqqZE_oA8dJsoPAx5TcWeBYJZlQqF2fOaXvymCWoyvuyDhpPt2ds4hDjiZjx7XE2D8Ip_lMRVZef7JxZQ68ugZxVW2_Uubzjv/" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="1080" data-original-width="1950" height="354" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqLUDq91R-6XR8Wq2tqvSnvk0D6Ob5z8_f6boZgeGVKt2GqqZE_oA8dJsoPAx5TcWeBYJZlQqF2fOaXvymCWoyvuyDhpPt2ds4hDjiZjx7XE2D8Ip_lMRVZef7JxZQ68ugZxVW2_Uubzjv/w640-h354/Master+GSoC+2022+-+Cloud+Espa%25C3%25B1ol.png" width="640" /></a></div><br /> Este año Google repite con sus becas para el verano, pero hay que presentarse ahora, este año hay importantes cambios, sobretodo en el perfil de las personas que se pueden presentar.<p></p><p>No te pierdas nuestro streaming para conocer como presentarse o aclarar dudas.</p><p>Estes 6 de enero a las 18:00 en nuestro canal de youtube.</p><p><span data-offset-key="dnf0r-0-0" style="background-color: white; color: #0f1419; font-family: TwitterChirp, -apple-system, "system-ui", "Segoe UI", Roboto, Helvetica, Arial, sans-serif; font-size: 20px; white-space: pre-wrap;"><span data-text="true">Programa de Becas de Google GSOC. </span></span><span style="background-color: white; color: #1d9bf0; font-family: TwitterChirp, -apple-system, "system-ui", "Segoe UI", Roboto, Helvetica, Arial, sans-serif; font-size: 20px; white-space: pre-wrap;"><span data-offset-key="dnf0r-1-0">https://youtu.be/AEs-jvs425g</span></span><span data-offset-key="dnf0r-2-0" style="background-color: white; color: #0f1419; font-family: TwitterChirp, -apple-system, "system-ui", "Segoe UI", Roboto, Helvetica, Arial, sans-serif; font-size: 20px; white-space: pre-wrap;"><span data-text="true"> a través de </span></span><span style="background-color: white; color: #1d9bf0; font-family: TwitterChirp, -apple-system, "system-ui", "Segoe UI", Roboto, Helvetica, Arial, sans-serif; font-size: 20px; white-space: pre-wrap;"><span data-offset-key="dnf0r-3-0">@YouTube</span></span></p>Mario Ezquerro Saenzhttp://www.blogger.com/profile/13268821028089033812noreply@blogger.com0tag:blogger.com,1999:blog-8533221626657735040.post-88135634722145486582021-12-30T19:52:00.005+00:002021-12-30T19:52:39.497+00:00Potencia tu terminal en MacOS, Linux y WSL con ZSH<p>¡Hola a todos!</p><p>En esta ocasión veremos como mejorar las capacidad de tu terminal para que os sea más útil si cabe. Por defecto, la mayoría de terminales unix vienen con bash y, sin faltarle al respeto, esta muy lejos de todo lo que zsh puede hacer por tí.</p><p>En este vídeo veremos su instalación, configuración y mejores características que te ayudarán en tu día a día:</p><div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen="" class="BLOG_video_class" height="320" src="https://www.youtube.com/embed/cyK89jHB9JA" width="560" youtube-src-id="cyK89jHB9JA"></iframe></div><br /><p><br /></p><p>Además, en mi web personal tenéis la documentación por escrito con algunos enlaces y comando.</p><p><a href="https://pabpereza.dev/docs/linux/zsh/">Zsh | Pabpereza</a></p><p><br /></p><p>¡Espero que os sea útil y lo disfrutéis!</p>Pablo Pérez-Aradroshttp://www.blogger.com/profile/11702380207387758836noreply@blogger.com0tag:blogger.com,1999:blog-8533221626657735040.post-29625917353702338812021-11-17T15:19:00.003+00:002021-11-17T15:19:49.290+00:00Linux es todo lo que Windows necesita<p> <span style="background-color: white; color: #222222; font-family: "open sans", -apple-system, BlinkMacSystemFont, "segoe ui", Roboto, "helvetica neue", Arial, sans-serif, "apple color emoji", "segoe ui emoji", "segoe ui symbol"; font-size: 1.25rem;">El subsistema de linux en windows nos permite ejecutar nuestras herramientas de desarrollo o sistemas favoritas sin complicaciones</span></p><p style="background-color: white; box-sizing: border-box; color: #222222; font-family: "open sans", -apple-system, BlinkMacSystemFont, "segoe ui", Roboto, "helvetica neue", Arial, sans-serif, "apple color emoji", "segoe ui emoji", "segoe ui symbol"; font-size: 16px; margin-bottom: 1rem; margin-top: 0px; max-width: 80%; text-align: left;">El subsistema de linux en windows se introdujo hace unos años en windows 10 pero sus primeras versiones tenían ciertas limitaciones y no acababa de funcionar como se esperaba. Personalmente, con WSL2 y Windows 11 creo que ha llegado a ofrecer el funcionamiento que realmente se esperaba de el. Dentro vídeo:</p><iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" frameborder="0" height="400" src="https://www.youtube.com/embed/p04dRcQh2VM" style="background-color: white; box-sizing: border-box; color: #222222; font-family: "open sans", -apple-system, BlinkMacSystemFont, "segoe ui", Roboto, "helvetica neue", Arial, sans-serif, "apple color emoji", "segoe ui emoji", "segoe ui symbol"; font-size: 16px;" title="YouTube video player" width="100%"></iframe><span style="background-color: white; color: #222222; font-family: "open sans", -apple-system, BlinkMacSystemFont, "segoe ui", Roboto, "helvetica neue", Arial, sans-serif, "apple color emoji", "segoe ui emoji", "segoe ui symbol"; font-size: 16px;"></span><h2 id="ventajas-y-desventajas" style="background-color: white; box-sizing: border-box; color: #222222; font-family: "open sans", -apple-system, BlinkMacSystemFont, "segoe ui", Roboto, "helvetica neue", Arial, sans-serif, "apple color emoji", "segoe ui emoji", "segoe ui symbol"; font-size: 2rem; font-weight: 500; line-height: 1.2; margin-bottom: 1rem; margin-top: 3rem; max-width: 80%;">Ventajas y desventajas<a aria-hidden="true" href="https://pabpereza.dev/blog/2021/11/10/linux-en-windows-windows-subsystem-linux/#ventajas-y-desventajas" style="background-color: transparent; box-sizing: border-box; color: #3176d9; text-decoration-line: none; visibility: hidden;"><svg fill="currentColor" height="24" viewbox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M0 0h24v24H0z" fill="none"></path><path d="M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z"></path></svg></a></h2><p style="background-color: white; box-sizing: border-box; color: #222222; font-family: "open sans", -apple-system, BlinkMacSystemFont, "segoe ui", Roboto, "helvetica neue", Arial, sans-serif, "apple color emoji", "segoe ui emoji", "segoe ui symbol"; font-size: 16px; margin-bottom: 1rem; margin-top: 0px; max-width: 80%;">En el vídeo analizo las principales ventajas que ofrece y alguna que otra desventaja por el camino. Los principales puntos a destacar son:</p><ul style="background-color: white; box-sizing: border-box; color: #222222; font-family: "open sans", -apple-system, BlinkMacSystemFont, "segoe ui", Roboto, "helvetica neue", Arial, sans-serif, "apple color emoji", "segoe ui emoji", "segoe ui symbol"; font-size: 16px; margin-bottom: 1rem; margin-top: 0px; max-width: 80%;"><li style="box-sizing: border-box; margin-bottom: 0.25rem;">El consumo de memoria es inferior al de una máquina virtual. Aunque mayor que una solución nativa, windows virtualiza un kernel linux que aprovechan y comparten las distintas distribuciones del subsistema.</li><li style="box-sizing: border-box; margin-bottom: 0.25rem;">También sirve backend para aplicaciones como Docker Desktop o Rancher Desktop haciendolos más livianos que usándolos sober hyper-V.</li><li style="box-sizing: border-box; margin-bottom: 0.25rem;">La integración con windows terminal es sencilla. Además, este nuevo terminal nos ofrece una interfaz limpia, personalizable y con una multitarea que ya le hacía falta. Nose vosotros pero a mi me encanta.</li><li style="box-sizing: border-box; margin-bottom: 0.25rem;">Simplicidad en el uso de varios entornos, instalación, reseteo o borrado.</li><li style="box-sizing: border-box; margin-bottom: 0.25rem;">La integración con VS Code de forma bidireccional es algo que me encanta. Ya no me molesto en instalar los lenguajes de programación o las herramientas de sistemas en windows, prácticamente todo lo uso sobre una distribución u otra en función de lo que necesite.</li><li style="box-sizing: border-box; margin-bottom: 0.25rem;">Montaje del sistema de archivos. Aunque el acceso es más lento al ser dos sistemas de archivos diferentes, windows nos monta nuestro home (c:/users/pablo) en cada uno de los subsistemas.</li><li style="box-sizing: border-box; margin-bottom: 0.25rem;">Integración de los sistemas de archivos de las distribuciones en el explorador de windows.</li></ul><div class="card rounded p-2 td-post-card mb-4 mt-4" style="background-clip: border-box; background-color: white; border-radius: 0.25rem !important; border: 1px solid rgba(0, 0, 0, 0.125); box-sizing: border-box; color: #222222; display: flex; flex-direction: column; font-family: "open sans", -apple-system, BlinkMacSystemFont, "segoe ui", Roboto, "helvetica neue", Arial, sans-serif, "apple color emoji", "segoe ui emoji", "segoe ui symbol"; font-size: 16px; margin-bottom: 1.5rem !important; margin-top: 1.5rem !important; max-width: 710px; min-width: 0px; overflow-wrap: break-word; padding: 0.5rem !important; position: relative;"><img class="card-img-top" height="360" src="https://pabpereza.dev/blog/2021/11/10/linux-en-windows-windows-subsystem-linux/wslpic_hu201e03dafeb7857c89c14db5798d694d_45791_700x450_fit_catmullrom_3.png" style="border-style: none; border-top-left-radius: calc(0.25rem - 1px); border-top-right-radius: calc(0.25rem - 1px); box-sizing: border-box; flex-shrink: 0; height: auto; max-width: 100%; vertical-align: middle; width: 692px;" width="700" /><div class="card-body px-0 pt-2 pb-0" style="box-sizing: border-box; flex: 1 1 auto; min-height: 1px; padding: 0.5rem 0px 0px !important;"><p class="card-text" style="box-sizing: border-box; margin-bottom: 0px; margin-top: 0px;">Integración de los sistemas de archivos de las distribuciones en el explorador de windows.</p></div></div><p style="background-color: white; box-sizing: border-box; color: #222222; font-family: "open sans", -apple-system, BlinkMacSystemFont, "segoe ui", Roboto, "helvetica neue", Arial, sans-serif, "apple color emoji", "segoe ui emoji", "segoe ui symbol"; font-size: 16px; margin-bottom: 1rem; margin-top: 0px; max-width: 80%;">Espero que os guste y os anime a sacarle más partido a las herramientas que nos ofrece windows. ¡Hasta el próximo!</p>Pablo Pérez-Aradroshttp://www.blogger.com/profile/11702380207387758836noreply@blogger.com0tag:blogger.com,1999:blog-8533221626657735040.post-60564859640771744742021-10-26T07:45:00.008+01:002021-10-26T07:46:16.298+01:00Rancher Desktop una alternativa real a Docker en Windows y Mac.<div style="text-align: left;"><br /></div>Ya estuve explicando en este <a href="https://www.blogger.com/#">artículo</a> los nuevos planes de Docker Desktop y como afectaría a los usuarios. Aunque existen otras alternativas como Buildah o Podman, estas, solo funcionan sobre linux y si sois usuarios de Windows o Mac y pensais en montar una máquina Linux quizá prefiráis usar docker engine por la familiaridad que no usar otras herramientas.<div><br /></div><div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen="" class="BLOG_video_class" height="298" src="https://www.youtube.com/embed/LmKN4NvpR-4" width="509" youtube-src-id="LmKN4NvpR-4"></iframe></div><br /><div><br /><h2 style="text-align: left;">¿Qué es rancher desktop?</h2>Si vienes del mundo de kubernetes seguro que Rancher te es familiar. Este es una plataforma de kubernetes con una capa de gestión persado en la facilidad de despliegue y gestión de clústers.<br />En esta ocasión, rancher destkop es una forma de acercarse a los desarrolladores y competir directamente con docker en el escritorio.<div><br /><h2 style="text-align: left;">¿Qué aporta?</h2>El planteamiento es similar al de Docker Desktop, gestiona automáticamente la instalación de una interfaz de usario, el engine de contenedores (containerd), k3s (la misma técnología que utiliza rancher para kubernetes), kubectl… etc y todo este paquete en una instalación sencilla.<div class="card rounded p-2 td-post-card mb-4 mt-4" style="background-clip: border-box; background-color: white; border-bottom-left-radius: 0.25rem; border-bottom-right-radius: 0.25rem; border-top-left-radius: 0.25rem; border-top-right-radius: 0.25rem; border: 1px solid rgba(0, 0, 0, 0.125); box-sizing: border-box; caret-color: rgb(34, 34, 34); color: #222222; display: flex; flex-direction: column; font-family: "open sans", -apple-system, BlinkMacSystemFont, "segoe ui", Roboto, "helvetica neue", Arial, sans-serif, "apple color emoji", "segoe ui emoji", "segoe ui symbol"; font-size: 16px; margin-bottom: 1.5rem; margin-top: 1.5rem; max-width: 588px; min-width: 0px; padding: 0.5rem; position: relative; word-wrap: break-word;"><img class="card-img-top" height="450" src="https://pabpereza.dev/blog/2021/10/24/la-alternativa-a-docker-que-estabas-buscando-rancher-desktop/rancher_desktop_panel_hu06da50055044c71d4a54d06a2d3b2a8d_588237_700x450_fit_catmullrom_3.png" style="border-style: none; border-top-left-radius: calc(-1px + 0.25rem); border-top-right-radius: calc(-1px + 0.25rem); box-sizing: border-box; flex-shrink: 0; height: auto; max-width: 100%; vertical-align: middle; width: 570px;" width="578" /><div class="card-body px-0 pt-2 pb-0" style="box-sizing: border-box; flex: 1 1 auto; min-height: 1px; padding: 0.5rem 0px 0px;"><p class="card-text" style="box-sizing: border-box; margin-bottom: 0px; margin-top: 0px;">Panel de control de rancher desktop en Mac</p></div></div>Si has visto el vídeo Rancher Desktop, al menos en Windows, tiene algunos pequeños errores. Cabe recordar que su estado de desarrollo es pre-release y es normal que durante sus betas encontremos errores que nos impidan utilizarlo a día de hoy.<br class="Apple-interchange-newline" /></div></div>Pablo Pérez-Aradroshttp://www.blogger.com/profile/11702380207387758836noreply@blogger.com0tag:blogger.com,1999:blog-8533221626657735040.post-41047089595303904642021-09-16T12:58:00.009+01:002021-09-16T14:46:57.544+01:00¿Docker desktop de pago? Como te impacta y alternativas<br /><br /><div>Analizamos los últimos cambios de Docker Desktop, como afectarán al usuario y las posibles alternativas.<br /><br />La empresa Docker anunció la semana pasada los cambios en su modelo de negocio empresarial y sus nuevos planes de subscripción para empresas.<br /><br />Hasta el momento, la empresa ha sabido posicionarse como una de las más importantes en el mundo de la tecnología pero sin generar ningún tipo de ingreso.<br /><br />Las nuevas versiones tendrán ciertas restricciones que forzarán a algunas empresas a utilizar las modalidades de pago.<br /><img height="279" src="https://pabpereza.dev/blog/2021/09/12/docker-desktop-de-pago/featured_docker_desktop_planes_hu11fea927c14a98521cf9e3076a898257_134646_700x450_fit_catmullrom_3.png" width="586" /><br /><br /><br /><h2 style="text-align: left;">Planes de precios de Docker</h2>Con el precio, todo hay que decirlo, ganamos muchas funcionalidades como SSO, escaneos de seguridad, builds en la nube, colaboración entre equipos… etc. Podéis ver una lista completa de las funcionalidades en la <a href="https://www.blogger.com/#">página de Docker</a>.</div><div><br /><h2 style="text-align: left;">¿Quién tiene que pagar?</h2>Las empresas que tengan más de 250 empleados o unos ingresos anuales de 10 millones de dólares deberán utilizar los planes profesionales, de equipos o de empresa. Para dar margen a mediadas y grandes empresas, que son las principales afectadas, se dará un periodo de gracia hasta el 31 de Enero de 2022.<br /><br />Seguirá siendo totalmente gratuito en los siguientes casos:<br /><ul style="text-align: left;"><li>Pequeñas empresas con menos de 250 empleados y menos de 10 millones de dólares de ingresos anuales.</li><li>Uso personal.</li><li>Instituciones educativas.</li><li>Proyectos no comerciales open-source.</li></ul></div><div><br /><h2 style="text-align: left;">¿Qué alternativas tengo?</h2><br />Estas nuevas políticas solo afecta a la versión de Docker Desktop, es decir, a la versión de Windows y Mac. En linux se utiliza Docker Engine al cuál no se le aplican estas restricciones.<br /><br />Además, docker no es la única forma de construir contenedores. Existen otras tecnologías como podman o buildah que también nos permiten construir imágenes sin requerir un docker engine aunque estas también solo estan disponibles en Linux.<br class="Apple-interchange-newline" style="-webkit-text-size-adjust: auto;" /></div>Pablo Pérez-Aradroshttp://www.blogger.com/profile/11702380207387758836noreply@blogger.com0tag:blogger.com,1999:blog-8533221626657735040.post-9583046820727278522021-08-31T19:17:00.000+01:002021-08-31T19:17:02.194+01:00Errores comunes en la construcción de imágenes Docker<p> </p><p>Docker se esta volviendo una herramienta fundamental en la mayoría de proyectos de desarrollo de software actuales. Junto a sus bondades, la versatilidad que ofrece a los desarrolladores para definir parte de la infraestructura y la facilidad de paquetizar el software, <b>van ligados otros procesos que pueden lastrar los proyectos o causar más riesgos de seguridad</b>.</p><p>En mi último vídeo trato los errores más comunes que se suelen producir al construir imágenes con Dockerfiles.</p><p><br /></p><div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen="" class="BLOG_video_class" height="365" src="https://www.youtube.com/embed/U_oRWLGCrd8" width="439" youtube-src-id="U_oRWLGCrd8"></iframe></div><br /><p>El vídeo comienza con una<b> explicación del sistema de capas y caché de docker, seguido consejos de mejora</b>. Estos principalmente se centrar en optimización, buena praxis y seguridad:</p><p></p><ul style="text-align: left;"><li>Orden de construcción</li><li>Copias específicas</li><li>Agrupar instrucciones</li><li>Docker ignore</li><li>Tags específicos</li><li>Actualizar la imagen base</li><li>Definir el espacio de trabajo</li><li>Multi-stage</li></ul><div>Para finalizar, hago una introducción a la herramienta <b>Hadolint </b>que nos ayudará de una forma muy completa y sencilla a analizar nuestros dockerfiles con decenas de reglas de buenas practicas y seguridad.</div><div><br /></div><div><br /></div><p></p>Pablo Pérez-Aradroshttp://www.blogger.com/profile/11702380207387758836noreply@blogger.com0tag:blogger.com,1999:blog-8533221626657735040.post-89705237747076765602021-08-13T11:14:00.002+01:002021-08-13T11:14:27.490+01:00eBPF Summit 2021<p></p><div class="separator" style="clear: both; text-align: left;">Siempres nos alegra un buen summit: <a href="https://ebpf.io/summit-2021/">https://ebpf.io/summit-2021/ </a> este 18 y 19 de agosto teneis..</div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjI8hpjoh7NMzq22VN96A12bRRGocVZ3_0jbpE2ptJA7wHpgciXrDRji9vW4VAyrQmhtXY_55YfISK_VZvxwUvqfp9cF8MTqZ7Sy-_PnLIIxI4F5l7XWZUFnh2UFj1_vObhmwAdK7XQha_1/" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="313" data-original-width="616" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjI8hpjoh7NMzq22VN96A12bRRGocVZ3_0jbpE2ptJA7wHpgciXrDRji9vW4VAyrQmhtXY_55YfISK_VZvxwUvqfp9cF8MTqZ7Sy-_PnLIIxI4F5l7XWZUFnh2UFj1_vObhmwAdK7XQha_1/s16000/Captura+de+pantalla+2021-08-13+a+las+12.10.21.png" /></a></div><br /> En nada empieza este evento virtual, recomendado a los DevOps y SecOps, y arquitectos de plataformas, registraros si trabajais con k8s.<p></p><p><br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFgDJpAdVjwSE5N-8fXJgDeH5c7aGvmn6gzZsw-0VsR-B4Wc7AfH-lvGJtJJDCdbkYvPtjks8HxpKMP16kLFL14txJUbn2NDwBbskw6FEXbfKw751UpLfKsETJNb6cEDX-38nmDKD09zAy/" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="296" data-original-width="850" height="139" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFgDJpAdVjwSE5N-8fXJgDeH5c7aGvmn6gzZsw-0VsR-B4Wc7AfH-lvGJtJJDCdbkYvPtjks8HxpKMP16kLFL14txJUbn2NDwBbskw6FEXbfKw751UpLfKsETJNb6cEDX-38nmDKD09zAy/w400-h139/logo-big-9cf8920e80cdc57e6ea60825ebe287ca.png" width="400" /></a></div><p></p>Mario Ezquerro Saenzhttp://www.blogger.com/profile/13268821028089033812noreply@blogger.com0tag:blogger.com,1999:blog-8533221626657735040.post-55858688115855862522021-08-12T17:10:00.002+01:002021-08-12T17:10:11.098+01:00Multi tenant event management at the scale<p>Pablo Moncada Isla [MásMóvil]</p><div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen="" class="BLOG_video_class" height="351" src="https://www.youtube.com/embed/pn6RSApC5CI" width="550" youtube-src-id="pn6RSApC5CI"></iframe></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><span class="style-scope yt-formatted-string" dir="auto" style="background: rgb(249, 249, 249); border: 0px; color: #030303; font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; margin: 0px; padding: 0px; white-space: pre-wrap;">Multi tenant event management at the scale - Pablo Moncada Isla, MásMóvil
How to manage a multi-tenant event system based in Kafka, Kubernetes and OPA that scales at an infrastructure and security point of view. We will see why do we use an event system, why we need it to be multi-tenant and what are the challenges for operating it. Our event system stack is based on Strimzi, a Kubernetes Kafka operator and we rely on a zero-trust security model without compromising performance.
Sigue la conversación en </span><a class="yt-simple-endpoint style-scope yt-formatted-string" dir="auto" href="https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbXpTSHRxYXJiWVVYRzdyQXZuaHRGWTA5azRlZ3xBQ3Jtc0trRkdrN3FsTGp5YXVKSldYWktzRVhMQjNOV3BKQW5WNE40LTBEelMwWGw2VVduRUdzM1I5bTZvV1N0OGFVbkdQbnE5SkFSQktsV1JYSkNmbjZZTzB2bko4aFpjcEQzMVBvRTN5ZGNsS0tYRkx1QXBMaw&q=https%3A%2F%2Fbit.ly%2Fkcdspain2021-masmovil" rel="nofollow" spellcheck="false" style="background-color: #f9f9f9; cursor: pointer; display: var(--yt-endpoint-display, inline-block); font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; overflow-wrap: var(--yt-endpoint-word-wrap, none); text-decoration: var(--yt-endpoint-text-regular-decoration, none); white-space: pre-wrap; word-break: var(--yt-endpoint-word-break, none);" target="_blank">https://bit.ly/kcdspain2021-masmovil</a></div><br /><p><br /></p>Mario Ezquerro Saenzhttp://www.blogger.com/profile/13268821028089033812noreply@blogger.com0tag:blogger.com,1999:blog-8533221626657735040.post-38730765025911761502021-07-20T12:33:00.002+01:002021-07-20T12:33:26.812+01:00Tutorial Kubernetes | De 0 a 100 con K0s | <div style="text-align: left;"> <span style="background-color: white;">De la mano de. <span style="color: #030303; font-family: Roboto, Arial, sans-serif;"><span style="font-size: 14px; letter-spacing: 0.25px;">Albert Coronado nos presenta en su canal un video en español de introducción a kubernetes muy recomendable.</span></span></span></div><div style="text-align: left;"><span style="background-color: white;"><span style="color: #030303; font-family: Roboto, Arial, sans-serif;"><span style="font-size: 14px; letter-spacing: 0.25px;"><br /></span></span></span><span class="style-scope yt-formatted-string" dir="auto" style="background: rgb(255, 255, 255); border: 0px; color: var(--yt-spec-text-primary); font-family: inherit; font-weight: var(--ytd-user-comment_-_font-weight); letter-spacing: var(--ytd-user-comment_-_letter-spacing); margin: 0px; padding: 0px; white-space: pre-wrap;">Hazte de su Patreon en </span><a class="yt-simple-endpoint style-scope yt-formatted-string" dir="auto" href="https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbHQ0aGJLVi01MDdlM1pfMFl3Nk1PMFNuZVF2d3xBQ3Jtc0tuTHZ0cmp2ZF9RcnMwRWRCMzhOZkVHWVg5cW9aX1lXT0RkeHdUa2I5QkJpdFlGeHRrekJuMVl5Z2RhOE5hSnlyT1pxSThabWRPd0ttNmJVLVgxcUxKS3lMNi1Zanotckg2ang0MkxhR0xBT1lPSFQ1Zw&q=https%3A%2F%2Fwww.patreon.com%2Facoronadoc" rel="nofollow" spellcheck="false" style="background-color: white; cursor: pointer; display: var(--yt-endpoint-display, inline-block); font-family: inherit; font-weight: var(--ytd-user-comment_-_font-weight); letter-spacing: var(--ytd-user-comment_-_letter-spacing); text-decoration: var(--yt-endpoint-text-regular-decoration, none); white-space: pre-wrap;" target="_blank">https://www.patreon.com/acoronadoc<br /></a><span class="style-scope yt-formatted-string" dir="auto" style="background: rgb(255, 255, 255); border: 0px; color: var(--yt-spec-text-primary); font-family: inherit; font-weight: var(--ytd-user-comment_-_font-weight); letter-spacing: var(--ytd-user-comment_-_letter-spacing); margin: 0px; padding: 0px; white-space: pre-wrap;"><br /></span></div><div style="text-align: left;"><span class="style-scope yt-formatted-string" dir="auto" style="background: rgb(255, 255, 255); border: 0px; color: var(--yt-spec-text-primary); font-family: inherit; font-weight: var(--ytd-user-comment_-_font-weight); letter-spacing: var(--ytd-user-comment_-_letter-spacing); margin: 0px; padding: 0px; white-space: pre-wrap;">Mas contenido y las RRSS en mi blog </span><a class="yt-simple-endpoint style-scope yt-formatted-string" dir="auto" href="https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqblRnVFVMM3Ztd3lXRU5XS0c2Y3VaVk9QWmo4Z3xBQ3Jtc0ttb1Z6OS1ialhJSkprdzlfN3FRUEhaRWZqajdka0YzSGRjZFNUdlEtSzIzQ1FGV0VNWk5wbDNkZ2Q0SXJnY3luVEd0aG02endnX1FWVy1Cc1l3S1Brd0dOaGgxLURmdWVWZ2dLZmtuT1ZPZ3Z6SGRHZw&q=https%3A%2F%2Fwww.albertcoronado.com" rel="nofollow" spellcheck="false" style="background-color: white; cursor: pointer; display: var(--yt-endpoint-display, inline-block); font-family: inherit; font-weight: var(--ytd-user-comment_-_font-weight); letter-spacing: var(--ytd-user-comment_-_letter-spacing); text-decoration: var(--yt-endpoint-text-regular-decoration, none); white-space: pre-wrap;" target="_blank">https://www.albertcoronado.com<br /></a><span style="background-color: white; color: var(--yt-spec-text-primary); font-weight: var(--ytd-user-comment_-_font-weight); letter-spacing: var(--ytd-user-comment_-_letter-spacing); white-space: pre-wrap;"><br /></span></div><div style="text-align: left;"><span style="background-color: white; color: var(--yt-spec-text-primary); font-weight: var(--ytd-user-comment_-_font-weight); letter-spacing: var(--ytd-user-comment_-_letter-spacing); white-space: pre-wrap;">Apuntate a su canal de youtube </span><a href="https://www.youtube.com/channel/UCLek8zeRbg3gm5usDe6YFzw" style="background-color: white; font-weight: var(--ytd-user-comment_-_font-weight); letter-spacing: var(--ytd-user-comment_-_letter-spacing); white-space: pre-wrap;">aqui</a><span style="background-color: white; color: var(--yt-spec-text-primary); font-weight: var(--ytd-user-comment_-_font-weight); letter-spacing: var(--ytd-user-comment_-_letter-spacing); white-space: pre-wrap;">.</span></div><p style="text-align: left;"><span style="background-color: white; color: var(--yt-spec-text-primary); font-weight: var(--ytd-user-comment_-_font-weight); letter-spacing: var(--ytd-user-comment_-_letter-spacing); white-space: pre-wrap;"><br /></span></p><p style="text-align: center;"><iframe allowfullscreen="" class="BLOG_video_class" height="366" src="https://www.youtube.com/embed/gmFSmzAWcig" width="604" youtube-src-id="gmFSmzAWcig"></iframe></p><p style="text-align: left;"><span style="background-color: white; color: var(--yt-spec-text-primary); font-family: inherit; font-weight: var(--ytd-user-comment_-_font-weight); letter-spacing: var(--ytd-user-comment_-_letter-spacing); white-space: pre-wrap;"><br /></span></p><p style="text-align: left;"><span style="background-color: white; color: var(--yt-spec-text-primary); font-family: inherit; font-weight: var(--ytd-user-comment_-_font-weight); letter-spacing: var(--ytd-user-comment_-_letter-spacing); white-space: pre-wrap;">El este video nos habla de:</span></p><div class="style-scope ytd-watch-flexy" id="meta" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; padding: 0px; text-align: left;"><div class="style-scope ytd-watch-flexy" id="meta-contents" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; padding: 0px;"><ytd-video-secondary-info-renderer class="style-scope ytd-watch-flexy" style="border-bottom: 1px solid var(--yt-spec-10-percent-layer); display: block; margin-bottom: 24px; padding-bottom: 16px;"><div class="style-scope ytd-video-secondary-info-renderer" id="container" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; padding: 0px;"><ytd-expander class="style-scope ytd-video-secondary-info-renderer" style="--ytd-expander-collapsed-height: 60px; display: block; font-weight: var(--ytd-user-comment_-_font-weight); letter-spacing: var(--ytd-user-comment_-_letter-spacing); line-height: var(--ytd-user-comment_-_line-height); margin-left: 64px;"><div class="style-scope ytd-expander" id="content" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; min-width: 0px; overflow-wrap: break-word; padding: 0px;"><div class="style-scope ytd-video-secondary-info-renderer" id="description" slot="content" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; max-width: 615px; padding: 0px;"><p style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; max-width: 615px; padding: 0px; text-align: left;"><span style="background-color: white;"><yt-formatted-string class="content style-scope ytd-video-secondary-info-renderer" force-default-style="" split-lines="" style="color: var(--yt-spec-text-primary); white-space: pre-wrap; word-break: break-word;"><span style="font-family: inherit;"><span class="style-scope yt-formatted-string" dir="auto" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; padding: 0px;">-Contratar servidores<br /></span></span></yt-formatted-string><yt-formatted-string class="content style-scope ytd-video-secondary-info-renderer" force-default-style="" split-lines="" style="color: var(--yt-spec-text-primary); white-space: pre-wrap; word-break: break-word;"><span style="font-family: inherit;"><span class="style-scope yt-formatted-string" dir="auto" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; padding: 0px;">-Instalar K0s<br /></span></span></yt-formatted-string><yt-formatted-string class="content style-scope ytd-video-secondary-info-renderer" force-default-style="" split-lines="" style="color: var(--yt-spec-text-primary); white-space: pre-wrap; word-break: break-word;"><span style="font-family: inherit;"><span class="style-scope yt-formatted-string" dir="auto" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; padding: 0px;">-Trabajando con el cluster y sus nodos<br /></span></span></yt-formatted-string><yt-formatted-string class="content style-scope ytd-video-secondary-info-renderer" force-default-style="" split-lines="" style="color: var(--yt-spec-text-primary); white-space: pre-wrap; word-break: break-word;"><span style="font-family: inherit;"><span class="style-scope yt-formatted-string" dir="auto" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; padding: 0px;">-Pods<br /></span></span></yt-formatted-string><yt-formatted-string class="content style-scope ytd-video-secondary-info-renderer" force-default-style="" split-lines="" style="color: var(--yt-spec-text-primary); white-space: pre-wrap; word-break: break-word;"><span style="font-family: inherit;"><span class="style-scope yt-formatted-string" dir="auto" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; padding: 0px;">-Namespaces<br /></span></span></yt-formatted-string><yt-formatted-string class="content style-scope ytd-video-secondary-info-renderer" force-default-style="" split-lines="" style="color: var(--yt-spec-text-primary); white-space: pre-wrap; word-break: break-word;"><span style="font-family: inherit;"><span class="style-scope yt-formatted-string" dir="auto" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; padding: 0px;">-Servicios<br /></span></span></yt-formatted-string><yt-formatted-string class="content style-scope ytd-video-secondary-info-renderer" force-default-style="" split-lines="" style="color: var(--yt-spec-text-primary); white-space: pre-wrap; word-break: break-word;"><span style="font-family: inherit;"><span class="style-scope yt-formatted-string" dir="auto" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; padding: 0px;">-Deployments<br /></span></span></yt-formatted-string><yt-formatted-string class="content style-scope ytd-video-secondary-info-renderer" force-default-style="" split-lines="" style="color: var(--yt-spec-text-primary); white-space: pre-wrap; word-break: break-word;"><span style="font-family: inherit;"><span class="style-scope yt-formatted-string" dir="auto" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; padding: 0px;">-Statefulsets</span></span></yt-formatted-string></span></p><p style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; max-width: 615px; padding: 0px; text-align: left;"><span style="background-color: white;"><yt-formatted-string class="content style-scope ytd-video-secondary-info-renderer" force-default-style="" split-lines="" style="color: var(--yt-spec-text-primary); white-space: pre-wrap; word-break: break-word;"><span style="font-family: inherit;"><span class="style-scope yt-formatted-string" dir="auto" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; padding: 0px;"><br /></span></span></yt-formatted-string><yt-formatted-string class="content style-scope ytd-video-secondary-info-renderer" force-default-style="" split-lines="" style="color: var(--yt-spec-text-primary); white-space: pre-wrap; word-break: break-word;"><span style="font-family: inherit;"><span class="style-scope yt-formatted-string" dir="auto" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; padding: 0px;">Buen trabajo Albert.</span></span></yt-formatted-string></span></p></div></div></ytd-expander></div></ytd-video-secondary-info-renderer></div></div><p style="text-align: left;"><ytd-comments class="style-scope ytd-watch-flexy" id="comments" style="display: block; font-family: Roboto, Arial, sans-serif; font-size: 10px;"><ytd-item-section-renderer class="style-scope ytd-comments" id="sections" initial-count="2" style="display: block;"></ytd-item-section-renderer></ytd-comments></p><div class="style-scope ytd-item-section-renderer" id="header" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; padding: 0px; text-align: left;"><ytd-comments-header-renderer class="style-scope ytd-item-section-renderer" style="--paper-input-container-input-align: baseline; display: flex; flex-direction: column; margin-bottom: var(--comments-header-renderer-margin-bottom, 32px); margin-top: var(--comments-header-renderer-margin-top, 24px);"><div class="style-scope ytd-comments-header-renderer" id="title" style="align-items: center; background: transparent; border: 0px; display: flex; flex-direction: row; margin: 0px 0px 24px; padding: 0px;"></div></ytd-comments-header-renderer></div><div class="style-scope ytd-watch-flexy" id="merch-shelf" style="-webkit-text-stroke-width: 0px; background: rgb(249, 249, 249); border: 0px; color: black; font-family: Roboto, Arial, sans-serif; font-size: 10px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; margin: 0px; orphans: 2; padding: 0px; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-decoration-thickness: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"></div><div class="style-scope ytd-watch-flexy" id="ticket-shelf" style="-webkit-text-stroke-width: 0px; background: rgb(249, 249, 249); border: 0px; color: black; font-family: Roboto, Arial, sans-serif; font-size: 10px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; margin: 0px; orphans: 2; padding: 0px; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-decoration-thickness: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"></div>Mario Ezquerro Saenzhttp://www.blogger.com/profile/13268821028089033812noreply@blogger.com0tag:blogger.com,1999:blog-8533221626657735040.post-37871212254479303872021-07-20T11:37:00.001+01:002021-07-20T11:37:11.430+01:00Next level K8s observability with Hubble<p> - Beatriz Martínez, Isovalent</p><div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen="" class="BLOG_video_class" height="398" src="https://www.youtube.com/embed/DwOcm5WUsoQ" width="611" youtube-src-id="DwOcm5WUsoQ"></iframe></div><p><br /></p><p>Dado que Kubernetes es el estándar en la industria, las soluciones que implementamos en nuestro entorno ganan complejidad, tener una buena "observabilidad "es clave cuando necesitamos solucionar problemas. En esta charla, mostraremos cómo obtener información sobre las diferentes capas con Hubble, una plataforma de código abierto basada en Cilium CNI y la tecnología del kernel de Linux subyacente, eBPF. ¿Le gustaría saber más sobre Hubble y las tecnologías que lo impulsan? No te pierdas la sesión.</p><p><br /></p><p>Sigue la conversación en https://bit.ly/kcdspain2021-hubble</p>Mario Ezquerro Saenzhttp://www.blogger.com/profile/13268821028089033812noreply@blogger.com0tag:blogger.com,1999:blog-8533221626657735040.post-78935133612302000332021-07-15T07:20:00.005+01:002021-07-15T07:20:29.815+01:00Zero Touch Provisioning - desplegando clusters 5G con un enfoque GitOps<p>- Yolanda Robla, Red Hat</p><p><span class="style-scope yt-formatted-string" dir="auto" style="background: rgb(249, 249, 249); border: 0px; color: #030303; font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; margin: 0px; padding: 0px; white-space: pre-wrap;">Los enfoques tradicionales para desplegar software en el Edge no son escalables. En el caso del despliegue de miles de nodos enfocados a 5G, necesitamos un nuevo enfoque totalmente automatizado. De ahí nace Zero Touch Provisioning (ZTP), un framework declarativo para desplegar múltiples clusters en paralelo sin intervención humana. Este framework utiliza múltiples proeyctos Open Source como Ansible, Open Shift, Open Cluster Management y Kustomize. Utilitzaremos Git con un enfoque de "infrastructure as code", definiendo todos los detalles de cada cluster, su configuración y sus aplicaciones, que serán almacenados en repositorios. El framework monitorizará la información de estos repositorios y creará los clusters adecuados, configurándolos según lo especificado. Con este sistema se reduce la intervención humana y se asegura el control y monitorización de todos los clusters desplegados.
<br /></span></p><p></p><div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen="" class="BLOG_video_class" height="418" src="https://www.youtube.com/embed/RvR64njkD14" width="634" youtube-src-id="RvR64njkD14"></iframe></div><br /><span class="style-scope yt-formatted-string" dir="auto" style="background: rgb(249, 249, 249); border: 0px; color: #030303; font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; margin: 0px; padding: 0px; white-space: pre-wrap;"><br /></span><p></p><p><br /></p><p><span class="style-scope yt-formatted-string" dir="auto" style="background: rgb(249, 249, 249); border: 0px; color: #030303; font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; margin: 0px; padding: 0px; white-space: pre-wrap;">Sigue la conversación en </span><a class="yt-simple-endpoint style-scope yt-formatted-string" dir="auto" href="https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbUFVeDZJLVVqZHBqLWUwSmxLNnJUQ18zRzlHQXxBQ3Jtc0tsYzRvSWVLMHJ4ZTRRZzJjMzQxSU9oVFRqdUFsZVpTSUxCRXZYajdhRnJwR21HVGFVR0JRazB6bTQzR1IxSnpETndkTTZQMVFHS25vVHVaeC1ESlNKT2Q5T3FuRm5IR1JUTjJPaWZMTnI4T0h6Q1dNQQ&q=http%3A%2F%2Fbit.ly%2Fkcdspain2021-5g" rel="nofollow" spellcheck="false" style="background-color: #f9f9f9; cursor: pointer; display: var(--yt-endpoint-display, inline-block); font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; text-decoration: var(--yt-endpoint-text-regular-decoration, none); white-space: pre-wrap;" target="_blank">http://bit.ly/kcdspain2021-5g</a><span class="style-scope yt-formatted-string" dir="auto" style="background: rgb(249, 249, 249); border: 0px; color: #030303; font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; margin: 0px; padding: 0px; white-space: pre-wrap;">
---
Song: Elektronomia & RUD - Memory [NCS Release]
Music provided by NoCopyrightSounds
Free Download/Stream: </span><a class="yt-simple-endpoint style-scope yt-formatted-string" dir="auto" href="https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqa3pCbnJrUVJxdGlrenU0TzhfcGFsTnFoZ2FNd3xBQ3Jtc0ttYXJFalVBY2FqbjY2eUxuYVhoekdNeFFaZWNQMnkyT2pkQnVYdnNqcGRNTXhyb01PTi1uOU1qLXlqWEdMRmlnSzNuc2pwX1YxR0U0el9yZ1FNajlKbGFPVENjMTVrd2Z0aFpIRWVQLUZrY2tQTk0taw&q=http%3A%2F%2Fncs.io%2FMemory" rel="nofollow" spellcheck="false" style="background-color: #f9f9f9; cursor: pointer; display: var(--yt-endpoint-display, inline-block); font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; text-decoration: var(--yt-endpoint-text-regular-decoration, none); white-space: pre-wrap;" target="_blank">http://ncs.io/Memory</a><span class="style-scope yt-formatted-string" dir="auto" style="background: rgb(249, 249, 249); border: 0px; color: #030303; font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; margin: 0px; padding: 0px; white-space: pre-wrap;">
Watch: </span><a class="yt-simple-endpoint style-scope yt-formatted-string" dir="auto" href="https://www.youtube.com/watch?v=EnuGdwI0W1g&t=0s" spellcheck="false" style="background-color: #f9f9f9; cursor: pointer; display: var(--yt-endpoint-display, inline-block); font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; text-decoration: var(--yt-endpoint-text-regular-decoration, none); white-space: pre-wrap;">http://youtu.be/EnuGdwI0W1g</a></p>Mario Ezquerro Saenzhttp://www.blogger.com/profile/13268821028089033812noreply@blogger.com0Océano Atlántico-14.5994134 -28.6731465-90 -169.2981465 65.552420122245422 111.9518535tag:blogger.com,1999:blog-8533221626657735040.post-12340916161536696522021-06-30T07:18:00.000+01:002021-06-30T07:18:10.961+01:00Prepárate para multi cloud con Crossplane - Mauricio Salatino, LearnK8s<p><span class="style-scope yt-formatted-string" dir="auto" style="background: rgb(249, 249, 249); border: 0px; color: #030303; font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; margin: 0px; padding: 0px; white-space: pre-wrap;">En esta presentación vamos a ver las principales características de el proyecto Crossplane (CNCF </span><a class="yt-simple-endpoint style-scope yt-formatted-string" dir="auto" href="https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqblRhOUlNbW93NVpyNDZhZk9CX2xueU1CdERFUXxBQ3Jtc0treDJ0bmhPUHRxbXZxNkpzZnFqQm1fU3RnUkNETFZxNEZ0NzNZV1AwWUZMSWVOY1NlbDlmSW1oZTBhcncxWlhYaG5pTmEyQWd4YlFOVjNHWHRxd3ZhTWtvb0tUcVpRdUtObmFiNjBPOUVLNzFmTXp5aw&q=http%3A%2F%2Fcrossplane.io" rel="nofollow" spellcheck="false" style="background-color: #f9f9f9; cursor: pointer; display: var(--yt-endpoint-display, inline-block); font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; text-decoration: var(--yt-endpoint-text-regular-decoration, none); white-space: pre-wrap;" target="_blank">http://crossplane.io</a><span class="style-scope yt-formatted-string" dir="auto" style="background: rgb(249, 249, 249); border: 0px; color: #030303; font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; margin: 0px; padding: 0px; white-space: pre-wrap;">), que nos permite administrar recursos usando las APIs de Kubernetes para administrar recursos en distintos proveedores de cloud de manera uniforme. Esta presentación muestra un ejemplo de una aplicación que require distintos componentes de infraestructura (base de datos, brokers de mensajería, etc) y como estos pueden ser administrados por Crossplane. Veremos cómo Crossplane integra con el ecosistema de herramientas alrededor de Kubernetes permitiéndoos utilizar nuestras herramientas favoritas.
Sigue la conversación en </span><a class="yt-simple-endpoint style-scope yt-formatted-string" dir="auto" href="https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbDk5Q2d5WW44UE93QTFMREhZakdrX1hnQWlwZ3xBQ3Jtc0tudFlwM2xjTTd1alBodmxnbVY1aUNpM0hqdlhaOWRPXzBISHRJNU1pRkpMeDdDUFpkT3JUaTE3aGxCaDJxUnhMY0IxcFFWSjJfcUx4NVZUeVdsNnBOMmVJZWM3emRBVjFwRmNoeVZxd2gzbk5xbm5Paw&q=http%3A%2F%2Fbit.ly%2Fkcdspain2021-crossplane" rel="nofollow" spellcheck="false" style="background-color: #f9f9f9; cursor: pointer; display: var(--yt-endpoint-display, inline-block); font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; text-decoration: var(--yt-endpoint-text-regular-decoration, none); white-space: pre-wrap;" target="_blank">http://bit.ly/kcdspain2021-crossplane</a></p><p><br /></p><div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen="" class="BLOG_video_class" height="351" src="https://www.youtube.com/embed/MXRHkXoHjxU" width="657" youtube-src-id="MXRHkXoHjxU"></iframe></div><br /><p><br /></p><p><span class="style-scope yt-formatted-string" dir="auto" style="background: rgb(249, 249, 249); border: 0px; color: #030303; font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; margin: 0px; padding: 0px; white-space: pre-wrap;">Forma parte de la primera comunidad de hispanohablantes de Kubernetes. Descubre un evento de tres días en español lleno de experiencias, empresas emergentes y personas a las que les gusta tanto la tecnología como a ti.
</span><a class="yt-simple-endpoint style-scope yt-formatted-string" dir="auto" href="https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbVc2OTJ5NVBWbm9RWGtTZUp6RXV4QS1sdDRGQXxBQ3Jtc0tra3IyRmpHVF91YVNSbWUzamFQcXR2UEZQdlkzeWtUVlprbUdDUHR6SV9SalE0OVkzWE1nNXozbXdNY25FaWFUWHB4R3lKN2hzbHFGRFpTNHRYZi1RSEREc2ctUVk3em42U3NqMzhSWmpsM1FfdjFpUQ&q=https%3A%2F%2Fkcdspain.com%2F" rel="nofollow" spellcheck="false" style="background-color: #f9f9f9; cursor: pointer; display: var(--yt-endpoint-display, inline-block); font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; text-decoration: var(--yt-endpoint-text-regular-decoration, none); white-space: pre-wrap;" target="_blank">https://kcdspain.com/</a><span class="style-scope yt-formatted-string" dir="auto" style="background: rgb(249, 249, 249); border: 0px; color: #030303; font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; margin: 0px; padding: 0px; white-space: pre-wrap;">
</span><a class="yt-simple-endpoint style-scope yt-formatted-string" dir="auto" href="https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbUJzWlZ6OVpQSEFHWGRjQVhkbVRyNG1udjctQXxBQ3Jtc0tsM2FEeHB5WUswdk1jQnVKMmNKcmVvc0R0UFhjY3NjWTIzZU1pMnNBTS1fS2xnRmNidTdDOFVGek5UVHpTaUJENEQySjNObUxyZ25wVXh6NUFCRWtaQ3lPMVdaai1jYlRjNWhfVHJDb0F2dVM0TkYzMA&q=https%3A%2F%2Ftwitter.com%2Fkcdspain" rel="nofollow" spellcheck="false" style="background-color: #f9f9f9; cursor: pointer; display: var(--yt-endpoint-display, inline-block); font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; text-decoration: var(--yt-endpoint-text-regular-decoration, none); white-space: pre-wrap;" target="_blank">https://twitter.com/kcdspain</a><span class="style-scope yt-formatted-string" dir="auto" style="background: rgb(249, 249, 249); border: 0px; color: #030303; font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; margin: 0px; padding: 0px; white-space: pre-wrap;">
</span><a class="yt-simple-endpoint style-scope yt-formatted-string" dir="auto" href="https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbU9iTE0yeV9HcVQ3c2QzY3pweDhkRXI4eEhyQXxBQ3Jtc0ttSzNIY0pVTnFtM0VZZlI3TGUySWRKT1hoR09mNVktemhKWkxkMDYzQzNSTC0wbnBWM0NkMDdzdlBDb2xHQ0QtenljWVUySnZjNnZpbXZXdEdLRWdEWlZPeWpTenVJWHZ0bzZ4MUlYazRjeENLTnlkTQ&q=https%3A%2F%2Fwww.linkedin.com%2Fcompany%2Fkcdspain" rel="nofollow" spellcheck="false" style="background-color: #f9f9f9; cursor: pointer; display: var(--yt-endpoint-display, inline-block); font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; text-decoration: var(--yt-endpoint-text-regular-decoration, none); white-space: pre-wrap;" target="_blank">https://www.linkedin.com/company/kcds...</a><span class="style-scope yt-formatted-string" dir="auto" style="background: rgb(249, 249, 249); border: 0px; color: #030303; font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; margin: 0px; padding: 0px; white-space: pre-wrap;">
</span><a class="yt-simple-endpoint style-scope yt-formatted-string" dir="auto" href="https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbGUtbU1YTGxCNno3ZXVCUG1GYzdfTTg0cVZhQXxBQ3Jtc0trRHZnTDNFbklhb3NUbUdMUjZuRW5Uc0dyb2c2bEh3RVVESFZuRWU1VFI4bXV2MHpBVDI1dHVnNktkZ1RGaWFpbnF1OTRnZlg5ZV9TTFZyNzk1UkdNbFl0TzBMRklhRExGSmRaWHlDZG5XT20yVk1iaw&q=https%3A%2F%2Fwww.linkedin.com%2Fevents%2Fkcdspain20216800770622398980096%2F" rel="nofollow" spellcheck="false" style="background-color: #f9f9f9; cursor: pointer; display: var(--yt-endpoint-display, inline-block); font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; text-decoration: var(--yt-endpoint-text-regular-decoration, none); white-space: pre-wrap;" target="_blank">https://www.linkedin.com/events/kcdsp...</a></p>Mario Ezquerro Saenzhttp://www.blogger.com/profile/13268821028089033812noreply@blogger.com0tag:blogger.com,1999:blog-8533221626657735040.post-73499383787865218972021-06-30T07:15:00.004+01:002021-06-30T07:15:58.511+01:00Creación de un Mutating Admission Webhook - Victor Morales, Samsung<p><span class="style-scope yt-formatted-string" dir="auto" style="background: rgb(249, 249, 249); border: 0px; color: #030303; font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; margin: 0px; padding: 0px; white-space: pre-wrap;">Network Service Mesh (NSM) es un proyecto de la CNCF que simplifica la conectividad entre cargas de trabajo independientes. Dicha conectividad es solo creada entre aquellas cargas de trabajo que lo necesiten, lo cual ofrece un modelo mas flexible en el desarrollo de Cloud-Native Network Functions (CNFs). Durante esta platica se mencionara algunas de las limitantes enfrentadas por desarrolladores de CNFs y se ofrecerá la creación de un Kubernetes Mutating Admission Webhook como componente necesario para la portabilidad requerida por CNFs que utilizan NSM.
Sigue la conversación en </span><a class="yt-simple-endpoint style-scope yt-formatted-string" dir="auto" href="https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbDkxc1RLYTBBTzUydkRLblM4ZkRiYXRPWWZ5UXxBQ3Jtc0tubTRSN2NoTnpIZm1vSEprWnJGNlR4YU16dXJXUGRRQmNrRVd6QWx1WVhXOFZ2cGtTaFRxeWtKOTRHQjVoelBGRHo2T0JHT3dEWjBaS3FYR3pKUnRqN3lzejJxQU9JME04Z3NtZkVSR2t0bFBvSzI0UQ&q=http%3A%2F%2Fbit.ly%2Fkcdspain2021-mutating" rel="nofollow" spellcheck="false" style="background-color: #f9f9f9; cursor: pointer; display: var(--yt-endpoint-display, inline-block); font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; text-decoration: var(--yt-endpoint-text-regular-decoration, none); white-space: pre-wrap;" target="_blank">http://bit.ly/kcdspain2021-mutating</a></p><div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen="" class="BLOG_video_class" height="346" src="https://www.youtube.com/embed/pj2yKqWoV74" width="545" youtube-src-id="pj2yKqWoV74"></iframe></div><div><br /></div><br /><p><br /></p><p><span class="style-scope yt-formatted-string" dir="auto" style="background: rgb(249, 249, 249); border: 0px; color: #030303; font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; margin: 0px; padding: 0px; white-space: pre-wrap;">Forma parte de la primera comunidad de hispanohablantes de Kubernetes. Descubre un evento de tres días en español lleno de experiencias, empresas emergentes y personas a las que les gusta tanto la tecnología como a ti.
</span><a class="yt-simple-endpoint style-scope yt-formatted-string" dir="auto" href="https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbHVJMVF0Smg1SXktWk4zMkpwU3VsX1NydzB3Z3xBQ3Jtc0ttc2xDVzhyaWJzYVc2M3lweHpDdldnVlZsOG8xLUMwVUxSTzNJSU41TDNpekppbGdpYzR6OTJqVUtUc09IXzBjRU91cW1JNnlZY1IxdndMemxmMmNqYnF0N0kwMVItZ1hVX2FHQTg5X2s5a3JPMlR3Zw&q=https%3A%2F%2Fkcdspain.com%2F" rel="nofollow" spellcheck="false" style="background-color: #f9f9f9; cursor: pointer; display: var(--yt-endpoint-display, inline-block); font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; text-decoration: var(--yt-endpoint-text-regular-decoration, none); white-space: pre-wrap;" target="_blank">https://kcdspain.com/</a><span class="style-scope yt-formatted-string" dir="auto" style="background: rgb(249, 249, 249); border: 0px; color: #030303; font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; margin: 0px; padding: 0px; white-space: pre-wrap;">
</span><a class="yt-simple-endpoint style-scope yt-formatted-string" dir="auto" href="https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqa0xxUno1ZVNOVFpVcUVUcGRfX0E3TnVKaWJnUXxBQ3Jtc0tsdV9ra2VqLXFEYVdJWnhxdGstRzBuTG5NcDY0cm5mcll0LWdtcl9tNzBwQnVLM3FVMjhIay1lSjl4ejBzd1dENDZhQW0tVEI3M1ptbmhvODAtQUNhN09OQ0tsUE9mbExmVWdMT3Z6dUQ4QThDWURvWQ&q=https%3A%2F%2Ftwitter.com%2Fkcdspain" rel="nofollow" spellcheck="false" style="background-color: #f9f9f9; cursor: pointer; display: var(--yt-endpoint-display, inline-block); font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; text-decoration: var(--yt-endpoint-text-regular-decoration, none); white-space: pre-wrap;" target="_blank">https://twitter.com/kcdspain</a><span class="style-scope yt-formatted-string" dir="auto" style="background: rgb(249, 249, 249); border: 0px; color: #030303; font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; margin: 0px; padding: 0px; white-space: pre-wrap;">
</span><a class="yt-simple-endpoint style-scope yt-formatted-string" dir="auto" href="https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbU9TRDZtemZ2WEtrTTdWZ3BzaTBiRWJiOHR0d3xBQ3Jtc0ttOS1Ga0NzVFA3Tmtsd2E1T1VPSEJtUnljb29sMkRMQUUteU9DeDdGeFZ2TVVqNENDUXBQaDN6S1JmeUlfQVo2R0J5NS0yd0h4ay1TaGo3QUNabnItMTJTeHdTcWgtQzZjOElzczRRYWdYODNrVDcwQQ&q=https%3A%2F%2Fwww.linkedin.com%2Fcompany%2Fkcdspain" rel="nofollow" spellcheck="false" style="background-color: #f9f9f9; cursor: pointer; display: var(--yt-endpoint-display, inline-block); font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; text-decoration: var(--yt-endpoint-text-regular-decoration, none); white-space: pre-wrap;" target="_blank">https://www.linkedin.com/company/kcds...</a><span class="style-scope yt-formatted-string" dir="auto" style="background: rgb(249, 249, 249); border: 0px; color: #030303; font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; margin: 0px; padding: 0px; white-space: pre-wrap;">
</span><a class="yt-simple-endpoint style-scope yt-formatted-string" dir="auto" href="https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbFJjLV9XYzZvaHB5cmNMTlFqTUtJY1B0ZTRJd3xBQ3Jtc0trTHRmUWc2WnYwaWZ4cllCVUcyTk5yVHcwNG9BcGFXSHdCM2FaRHZUYkxFSXp3YkIwdFd3UzZHVWtLcTJ2eHZ5RlJnQkdCTzhFUTFKVFdEMGpkbFE0YVM4UjZVSWRpalNKakRfdThfZjdLRjU3bnFfbw&q=https%3A%2F%2Fwww.linkedin.com%2Fevents%2Fkcdspain20216800770622398980096%2F" rel="nofollow" spellcheck="false" style="background-color: #f9f9f9; cursor: pointer; display: var(--yt-endpoint-display, inline-block); font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; text-decoration: var(--yt-endpoint-text-decoration, none); white-space: pre-wrap;" target="_blank">https://www.linkedin.com/events/kcdsp...</a></p>Mario Ezquerro Saenzhttp://www.blogger.com/profile/13268821028089033812noreply@blogger.com0tag:blogger.com,1999:blog-8533221626657735040.post-66390015546680016472021-06-19T09:17:00.006+01:002021-06-19T09:30:28.370+01:00Serverless y GitOps ¿Cómo los cocino en Kubernetes? - Carlos Santana, IBM<p></p><div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen="" class="BLOG_video_class" height="416" src="https://www.youtube.com/embed/7rBWUTadKrg" width="633" youtube-src-id="7rBWUTadKrg"></iframe></div><br /><span class="style-scope yt-formatted-string" dir="auto" style="background: rgb(249, 249, 249); border: 0px; color: #030303; font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; margin: 0px; padding: 0px; white-space: pre-wrap;"><br class="Apple-interchange-newline" />
Cloud Native se ha vuelto muy popular y todas las organizaciones de TI están utilizando kuberentes ahora. Herramientas como Serverless, Service Mesh y GitOps se han convertido en el siguiente nivel de abstracciones que los desarrolladores y operadores están tratando de aprender hoy para obtener más agilidad a medida que desarrollan nuevas aplicaciones o modernizan aplicaciones antiguas. Usaré un ejemplo práctico que puedes tomar como base y construir encima usando uno de los mejores proyectos para cada área, y los que he usado con clientes que ayudo en el trabajo a llegar a producción, en mi caso Knative, Istio. y ArgoCD.
Sigue la conversación en </span><a class="yt-simple-endpoint style-scope yt-formatted-string" dir="auto" href="https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbTJYZTJXeG5sRXF3b1lzTHFMMkJfaV9wdVg4UXxBQ3Jtc0treEVwaWhfRFhfZzhMM05ROFVOMzdzLVN3c091NG9vRkJyTmNYLUVXUVdlNGV1cU16R2FCS2FHZGxBdlNReHltOFRPYk53MzNZWUhzZkVwVFhONUNCM0ltMy1CN0NZclZLdkpnQThwSTlHUTNOdERJRQ&q=http%3A%2F%2Fbit.ly%2Fkcdspain2021-serverlessgitops" rel="nofollow" spellcheck="false" style="background-color: #f9f9f9; cursor: pointer; display: var(--yt-endpoint-display, inline-block); font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; text-decoration: var(--yt-endpoint-text-regular-decoration, none); white-space: pre-wrap;" target="_blank">http://bit.ly/kcdspain2021-serverless...</a><p></p><p><span class="style-scope yt-formatted-string" dir="auto" style="background: rgb(249, 249, 249); border: 0px; color: #030303; font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; margin: 0px; padding: 0px; white-space: pre-wrap;">
</span><a class="yt-simple-endpoint style-scope yt-formatted-string" dir="auto" href="https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbjB3SnVsMXdySlhaMUxXZjRubmdVRDZwQ21rd3xBQ3Jtc0ttR3RmVTNwSDVIRnFGMHdNMkw0LVU1LTFxT0tjekdXZUtYbW9jSXd6SDJSS0RVN1djd1o1SGREcnI3aFBydV9GM2RDbURsdUo3OWMwUld4ZzZEdm9jVDJKU2RUaVlKNDRMelJfQU1yVy1yVy1sWVJDOA&q=https%3A%2F%2Fkcdspain.com%2F" rel="nofollow" spellcheck="false" style="background-color: #f9f9f9; cursor: pointer; display: var(--yt-endpoint-display, inline-block); font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; text-decoration: var(--yt-endpoint-text-regular-decoration, none); white-space: pre-wrap;" target="_blank">https://kcdspain.com/</a><span class="style-scope yt-formatted-string" dir="auto" style="background: rgb(249, 249, 249); border: 0px; color: #030303; font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; margin: 0px; padding: 0px; white-space: pre-wrap;">
</span><a class="yt-simple-endpoint style-scope yt-formatted-string" dir="auto" href="https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbWVKcmx3UWdsNE4ybHdNNjF0NHZ5TWdZZ2xLUXxBQ3Jtc0tsM0Q4cW42TW1BZFBZV1Y4ZGlqNjREVDFLT3l5WTNMWE5fVDRIT0VmUFFEd1JKbWwwU3FYZlJDUU05M1FmYVNPcVFHRmY5V25sTHpPLVRqRHZFTzVXZ2RqcHNtSGp3RTNTcml2S1lRMVJBUUVUYWVhSQ&q=https%3A%2F%2Ftwitter.com%2Fkcdspain" rel="nofollow" spellcheck="false" style="background-color: #f9f9f9; cursor: pointer; display: var(--yt-endpoint-display, inline-block); font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; text-decoration: var(--yt-endpoint-text-regular-decoration, none); white-space: pre-wrap;" target="_blank">https://twitter.com/kcdspain</a><span class="style-scope yt-formatted-string" dir="auto" style="background: rgb(249, 249, 249); border: 0px; color: #030303; font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; margin: 0px; padding: 0px; white-space: pre-wrap;">
</span><a class="yt-simple-endpoint style-scope yt-formatted-string" dir="auto" href="https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqa09VWWVSU3BobTNnbFhmX0JBRUVPZ2pRdXFIZ3xBQ3Jtc0ttbUV2aDRsYXlDS3UtY0RSVHA1a1lTajBVellPczUxellGXzh0U0Uyc0xPRVk3RnphdXkzZE9xTU53aGxRUjZYY2xFaEswQUdsbnFHd1pfeXlOaEtvMmNKeVlFdXMtVzdSbDUzX3JLVGY2aFlQVm0zWQ&q=https%3A%2F%2Fwww.linkedin.com%2Fcompany%2Fkcdspain" rel="nofollow" spellcheck="false" style="background-color: #f9f9f9; cursor: pointer; display: var(--yt-endpoint-display, inline-block); font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; text-decoration: var(--yt-endpoint-text-regular-decoration, none); white-space: pre-wrap;" target="_blank">https://www.linkedin.com/company/kcds...</a><span class="style-scope yt-formatted-string" dir="auto" style="background: rgb(249, 249, 249); border: 0px; color: #030303; font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; margin: 0px; padding: 0px; white-space: pre-wrap;">
</span><a class="yt-simple-endpoint style-scope yt-formatted-string" dir="auto" href="https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqblRpdzZOUTd2R095emI1d01IZGZNMHd0VkZjd3xBQ3Jtc0tsbjRBM2VXMjhsT2l5X1IzRzhSckFGa3VERjRzNmxfZDROckpyRFg3ek94R2prWTlfZ24xcTRJc0tiZDI2S0dOSGRZOXFXLVlYemtoMlNqT0NJQ0FtVlJ1NjJKRUxsSFNxTzlPTVE0MzB3aXJYRGtJYw&q=https%3A%2F%2Fwww.linkedin.com%2Fevents%2Fkcdspain20216800770622398980096%2F" rel="nofollow" spellcheck="false" style="background-color: #f9f9f9; cursor: pointer; display: var(--yt-endpoint-display, inline-block); font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; text-decoration: var(--yt-endpoint-text-regular-decoration, none); white-space: pre-wrap;" target="_blank">https://www.linkedin.com/events/kcdsp...</a></p><p><span class="style-scope yt-formatted-string" dir="auto" style="background: rgb(249, 249, 249); border: 0px; color: #030303; font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; margin: 0px; padding: 0px; white-space: pre-wrap;">---
Song: Elektronomia & RUD - Memory [NCS Release]
Music provided by NoCopyrightSounds
Free Download/Stream: </span><a class="yt-simple-endpoint style-scope yt-formatted-string" dir="auto" href="https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbnlXcGVLNTRfTzBpWnJJTkhsdEdTX3VMS2FKd3xBQ3Jtc0tta05sNmJxa2Y5dTJ4bE5yYTI5WUZWYUpiYVdVaGR4aUwwRFp4QkVFbzhFQ0dwQkc4YUlhbkdodlhKeEZlVGhKSXhGcW9Rc0Q1N2ZMMWRMczZKMmJlNUlVcUU0SjZOUDBieHMzMWxUWmx6bFU5bWVqRQ&q=http%3A%2F%2Fncs.io%2FMemory" rel="nofollow" spellcheck="false" style="background-color: #f9f9f9; cursor: pointer; display: var(--yt-endpoint-display, inline-block); font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; text-decoration: var(--yt-endpoint-text-decoration, none); white-space: pre-wrap;" target="_blank">http://ncs.io/Memory</a><span class="style-scope yt-formatted-string" dir="auto" style="background: rgb(249, 249, 249); border: 0px; color: #030303; font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; margin: 0px; padding: 0px; white-space: pre-wrap;">
Watch: </span><a class="yt-simple-endpoint style-scope yt-formatted-string" dir="auto" href="https://www.youtube.com/watch?v=EnuGdwI0W1g&t=0s" spellcheck="false" style="background-color: #f9f9f9; cursor: pointer; display: var(--yt-endpoint-display, inline-block); font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; text-decoration: var(--yt-endpoint-text-regular-decoration, none); white-space: pre-wrap;">http://youtu.be/EnuGdwI0W1g</a></p><p><br /><br /></p>Mario Ezquerro Saenzhttp://www.blogger.com/profile/13268821028089033812noreply@blogger.com0tag:blogger.com,1999:blog-8533221626657735040.post-63707741806419242372021-06-16T17:43:00.000+01:002021-06-16T17:43:00.583+01:00Wikimedia Toolforge, plataforma basada en Kubernetes - Arturo Borrero y David Caro, Wikimedia Fdn<div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen="" class="BLOG_video_class" height="390" src="https://www.youtube.com/embed/BSNuwjnA1qk" width="661" youtube-src-id="BSNuwjnA1qk"></iframe></div><div class="separator" style="clear: both; text-align: center;"><br /></div><p><span class="style-scope yt-formatted-string" dir="auto" style="background: rgb(249, 249, 249); border: 0px; color: #030303; font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; margin: 0px; padding: 0px; white-space: pre-wrap;">Conoce Wikimedia Toolforge, plataforma basada en Kubernetes, Arturo Borrero Gonzalez y David Caro, Wikimedia Foundation
Wikimedia Toolforge (</span><a class="yt-simple-endpoint style-scope yt-formatted-string" dir="auto" href="https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqa3NGc01uSHkwRnQwdnZMdTZXQk9WSXZySFhNZ3xBQ3Jtc0tsQ3lwTzl6dFNXZEo2a0RkeEpLM3FBUTRrSjN0TEIwYW9UdGJXbDYwRjl2RmlnUkJXQjRoNVZyZFRhTjAtbGI2MEVzcFdWVWZITzhrQnhCRFMzWnlxLWFrSGFlendrX1RPLXh1SHg4NnVnc1BpRHhPdw&q=https%3A%2F%2Ftoolforge.org" rel="nofollow" spellcheck="false" style="background-color: #f9f9f9; cursor: pointer; display: var(--yt-endpoint-display, inline-block); font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; text-decoration: var(--yt-endpoint-text-regular-decoration, none); white-space: pre-wrap;" target="_blank">https://toolforge.org</a><span class="style-scope yt-formatted-string" dir="auto" style="background: rgb(249, 249, 249); border: 0px; color: #030303; font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; margin: 0px; padding: 0px; white-space: pre-wrap;">) es un servicio gratuito ofrecido a la comunidad por la Fundación Wikimedia. Esta plataforma permite desplegar herramientas, bots y servicios web principalmente enfocados a trabajar sobre proyectos relacionados con el movimiento Wikimedia. En la actualidad, desde Toolforge se originan del orden del 30% de las ediciones del contenido en Wikipedia. Toolforge es una plataforma como servicio, que ofrece muchas funcionalidades a sus usuarios para el hosting de aplicaciones y herramientas de automatización de tareas. Toolforge está basado en Kubernetes. Todo el código fuente que usa Toolforge es software libre, y la Fundación Wikimedia ofrece de manera abierta y transparente acceso a la configuración, documentación de despliegue y arquitectura del servicio, mediante repositorios git y documentación online en </span><a class="yt-simple-endpoint style-scope yt-formatted-string" dir="auto" href="https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqa2NfQ1RUQm92Y2lhSnNDdFZqYm5hX29BVlhXd3xBQ3Jtc0trQVRpQWptZm0zdUcwV1JvYUlKdzhydThwTUg3RU5TSEs4SFNaMXVRQUhMT2pFRFdCM1RoSU41ZU5yTTlMVmZMQm1vWUZhazI1Tkd0YVNNSUZScXFoNnd1VlJJQ0NPeFNMWHk5RDlTeFQ0Z1BUMVpoSQ&q=https%3A%2F%2Fwikitech.wikimedia.org%2F" rel="nofollow" spellcheck="false" style="background-color: #f9f9f9; cursor: pointer; display: var(--yt-endpoint-display, inline-block); font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; text-decoration: var(--yt-endpoint-text-regular-decoration, none); white-space: pre-wrap;" target="_blank">https://wikitech.wikimedia.org/</a><span class="style-scope yt-formatted-string" dir="auto" style="background: rgb(249, 249, 249); border: 0px; color: #030303; font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; margin: 0px; padding: 0px; white-space: pre-wrap;">
Sigue la conversación en </span><a class="yt-simple-endpoint style-scope yt-formatted-string" dir="auto" href="https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbm11VkE4a0pnZndvTVljcUJxU2gzSnZyTFByZ3xBQ3Jtc0tuSE15aDduc3V2SG1pbXVpZ3lJMGJGUzRxd0s5TDVkU2lqQkp5RzNSYld3YkJWM3kxRnVBekZqYVZfTVYyVWJ2cHN0NEpyZHZGQ0d3bUhmTFFvM09hcEpocEVnZy1TLXZGNDFScFZ3Um4zYm5jeExaZw&q=http%3A%2F%2Fbit.ly%2Fkcdspain2021-toolforge" rel="nofollow" spellcheck="false" style="background-color: #f9f9f9; cursor: pointer; display: var(--yt-endpoint-display, inline-block); font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; text-decoration: var(--yt-endpoint-text-regular-decoration, none); white-space: pre-wrap;" target="_blank">http://bit.ly/kcdspain2021-toolforge</a></p><p><span class="style-scope yt-formatted-string" dir="auto" style="background: rgb(249, 249, 249); border: 0px; margin: 0px; padding: 0px;"><span class="style-scope yt-formatted-string" dir="auto" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #030303; font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; margin: 0px; padding: 0px; white-space: pre-wrap;">Forma parte de la primera comunidad de hispanohablantes de Kubernetes. Descubre un evento de tres días en español lleno de experiencias, empresas emergentes y personas a las que les gusta tanto la tecnología como a ti.
</span><a class="yt-simple-endpoint style-scope yt-formatted-string" dir="auto" href="https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbEJLbWhjcWVObkpDR1pjT0dYaVlkT2Zkalc2QXxBQ3Jtc0trbUgwQzVBRFFkNHM2MDBDN1J5bzBzQ0ZZdGhHV2IzTVJrRnY1aGY3bUV1LXpOWUtwaGNrZTBZdzhUd0lTajMwRGpzZlhnWHNnRTA4SmJNN1A4YVl3VUZMbXN6MUo0Tzkya2VNWHZTRWNGdkFCZGxTYw&q=https%3A%2F%2Fkcdspain.com%2F" rel="nofollow" spellcheck="false" style="cursor: pointer; display: var(--yt-endpoint-display, inline-block); font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; text-decoration: var(--yt-endpoint-text-regular-decoration, none); white-space: pre-wrap;" target="_blank">https://kcdspain.com/</a><span class="style-scope yt-formatted-string" dir="auto" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #030303; font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; margin: 0px; padding: 0px; white-space: pre-wrap;">
</span><a class="yt-simple-endpoint style-scope yt-formatted-string" dir="auto" href="https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbWE2cWlOMVBpSDIxYzZqTGtrOTBFbG1IcmxkQXxBQ3Jtc0tsbEV5NGlkOHFiVHNxWU1LX3VIMjBrNUxLSkZHZFgwYThkc2xiMHMzcnQ2NERwR1BzQU56c1lpQjJHNUcwQ1lQMHluNWJWenFMRUxmMS1pVVZZcWdNYU12S0FzTU4ycmd2S2NqSWM0M2xpMld2UW9FZw&q=https%3A%2F%2Ftwitter.com%2Fkcdspain" rel="nofollow" spellcheck="false" style="cursor: pointer; display: var(--yt-endpoint-display, inline-block); font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; text-decoration: var(--yt-endpoint-text-regular-decoration, none); white-space: pre-wrap;" target="_blank">https://twitter.com/kcdspain</a><span class="style-scope yt-formatted-string" dir="auto" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #030303; font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; margin: 0px; padding: 0px; white-space: pre-wrap;">
</span><a class="yt-simple-endpoint style-scope yt-formatted-string" dir="auto" href="https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbjItbC13R0tCM2dvdENjWjNfRXJYaV8wVDNXQXxBQ3Jtc0tuTXBkV00yZ1pVTmpzcmF3TzJRanZSQWcwdm9MSWZIMUhzMTM3Q1pZdkFDNHNEdWFBZUhsRVl4NTNla1k3TU9TTEVBNl9KTUJpRGVoT25SYUZMdm90UkVxOGhOQTF4ZFExTHpQUFd2RmY4MHE2aDItSQ&q=https%3A%2F%2Fwww.linkedin.com%2Fcompany%2Fkcdspain" rel="nofollow" spellcheck="false" style="cursor: pointer; display: var(--yt-endpoint-display, inline-block); font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; text-decoration: var(--yt-endpoint-text-regular-decoration, none); white-space: pre-wrap;" target="_blank">https://www.linkedin.com/company/kcds...</a><span class="style-scope yt-formatted-string" dir="auto" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #030303; font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; margin: 0px; padding: 0px; white-space: pre-wrap;">
</span><a class="yt-simple-endpoint style-scope yt-formatted-string" dir="auto" href="https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqa2hIRVRRNnVjSVhCLTQycUlJOUtISUVoQnFpUXxBQ3Jtc0trLW01bG9Xa1Fmb1FJUjF0eFA3X0lFWlBsQjhhZnFRM0hmdWs0REFaM0pxR2xrX2pmSVdaMi1ZOGFYQVhOY1IyeWlGY2R2RlFYbGRsM0xvcmRKb3VkMkdEU2RxSmp2akx2T014X3lueHdtOWQ3YldJUQ&q=https%3A%2F%2Fwww.linkedin.com%2Fevents%2Fkcdspain20216800770622398980096%2F" rel="nofollow" spellcheck="false" style="cursor: pointer; display: var(--yt-endpoint-display, inline-block); font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; text-decoration: var(--yt-endpoint-text-regular-decoration, none); white-space: pre-wrap;" target="_blank">https://www.linkedin.com/events/kcdsp...</a></span></p><p><span class="style-scope yt-formatted-string" dir="auto" style="background: rgb(249, 249, 249); border: 0px; margin: 0px; padding: 0px;"><br /></span></p><p><span class="style-scope yt-formatted-string" dir="auto" style="background: rgb(249, 249, 249); border: 0px; margin: 0px; padding: 0px;">
--- </span></p><p><span class="style-scope yt-formatted-string" dir="auto" style="background: rgb(249, 249, 249); border: 0px; margin: 0px; padding: 0px;">Song: Elektronomia & RUD - Memory [NCS Release]
Music provided by NoCopyrightSounds
Free Download/Stream: </span><a class="yt-simple-endpoint style-scope yt-formatted-string" dir="auto" href="https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqa2QxblN1N3Qzcl9seThQSjVCaHZFeU5nWTRsUXxBQ3Jtc0tubWJOWEt5LUFqLV9LWlZieGxSS3RsZmp3Rkt1SHBEMXV3ME1WN013X3FibUdiZkN3eHdLYmtzVG9VSVpJQXRQbVAyTkJYNjdxeGIyNlZJcjNnNmZwRFFseFNZRDJfYXhRcklWSVpEZEJsb1RFVzhWcw&q=http%3A%2F%2Fncs.io%2FMemory" rel="nofollow" spellcheck="false" style="background-color: #f9f9f9; cursor: pointer; display: var(--yt-endpoint-display, inline-block); font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; text-decoration: var(--yt-endpoint-text-regular-decoration, none); white-space: pre-wrap;" target="_blank">http://ncs.io/Memory</a><span class="style-scope yt-formatted-string" dir="auto" style="background: rgb(249, 249, 249); border: 0px; color: #030303; font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; margin: 0px; padding: 0px; white-space: pre-wrap;">
Watch: </span><a class="yt-simple-endpoint style-scope yt-formatted-string" dir="auto" href="https://www.youtube.com/watch?v=EnuGdwI0W1g&t=0s" spellcheck="false" style="background-color: #f9f9f9; cursor: pointer; display: var(--yt-endpoint-display, inline-block); font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; text-decoration: var(--yt-endpoint-text-regular-decoration, none); white-space: pre-wrap;">http://youtu.be/EnuGdwI0W1g</a></p>Mario Ezquerro Saenzhttp://www.blogger.com/profile/13268821028089033812noreply@blogger.com0tag:blogger.com,1999:blog-8533221626657735040.post-28076072357041455742021-06-16T17:38:00.009+01:002021-06-16T17:38:50.382+01:00Reinventando Postgres en Kubernetes - Alvaro Hernandez, OnGres<p> </p><div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen="" class="BLOG_video_class" height="377" src="https://www.youtube.com/embed/05Yz2wHdjY0" width="644" youtube-src-id="05Yz2wHdjY0"></iframe></div><p><span class="style-scope yt-formatted-string" dir="auto" style="background: rgb(249, 249, 249); border: 0px; color: #030303; font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; margin: 0px; padding: 0px; white-space: pre-wrap;">
La manera en la que se despliegan y operan aplicaciones como Postgres no ha cambiado mucho en años/décadas, ni cuando se despliegan en Kubernetes. K8s es una tecnología que permite descomponer aplicaciones más monolíticas como Postgres, y delegar partes de su funcionalidad en otros componentes del ecosistema CNCF. Esta sesión incluye: *Una revisión de los operadores de Postgres. *Cómo estructurar Postgres como un contenedor sin init, pero con sidecar. *Cómo usar Envoy para hacer de proxy de todo el tráfico de Postgres, descargar el cifrado SSL y exportar métricas a Prometheus. *Usar FluentBit para capturar los logs de todos los contenedores Postgres y reenviarlos a Fluentd, para a su vez guardarlos en una base de datos Postgres centralizada. *Cómo codificar en CRDs operaciones de mantenimiento de Postgres (“Day 2 ops”). *Cómo instalar extensiones de Postgres con 1 sola línea de YAML.
Sigue la conversación en </span><a class="yt-simple-endpoint style-scope yt-formatted-string" dir="auto" href="https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbkF0MGdiVDV3VDd6a0xGUzI1Q05qUkhWdzBiQXxBQ3Jtc0tsc1VjM3A2Rm1ZWXEtQTM4ZjJPbGJjc3QxXzFGcU1OUzA0TXNFX3JyTDVicHdKYzhDeGR6ZWlHT2dyMFVOZm81LVNJbUEycFZzbTBjZkNvOWx2aHMzMk9ldkE0Zl9udW5MTWdYYWVNbF9NZGwxWktxYw&q=http%3A%2F%2Fbit.ly%2Fkcdspain2021-postgres" rel="nofollow" spellcheck="false" style="background-color: #f9f9f9; cursor: pointer; display: var(--yt-endpoint-display, inline-block); font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; text-decoration: var(--yt-endpoint-text-regular-decoration, none); white-space: pre-wrap;" target="_blank">http://bit.ly/kcdspain2021-postgres</a></p><p><span class="style-scope yt-formatted-string" dir="auto" style="background: rgb(249, 249, 249); border: 0px; margin: 0px; padding: 0px;"><br /></span></p><span class="style-scope yt-formatted-string" dir="auto" style="background: rgb(249, 249, 249); border: 0px; color: #030303; font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; margin: 0px; padding: 0px; white-space: pre-wrap;">Forma parte de la primera comunidad de hispanohablantes de Kubernetes. Descubre un evento de tres días en español lleno de experiencias, empresas emergentes y personas a las que les gusta tanto la tecnología como a ti.
</span><a class="yt-simple-endpoint style-scope yt-formatted-string" dir="auto" href="https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbWtUR3B5SEN4UXdaZGhlMDVWX2F2R2VwX0VjZ3xBQ3Jtc0tuWHlmYnY4XzBVVk1FREpBLXlBWFlxU29BS0RobnJBMWVNUVRYVE5IeXRwTkhOWUoxMm0ta0N0d1ZJVF9yR3dwaUNtaFZHNTB3N3BtVkFsMEdZelJpYWtCdTRrQVhWX3lWNy1jRXVtaHBnSkNGTFBTSQ&q=https%3A%2F%2Fkcdspain.com%2F" rel="nofollow" spellcheck="false" style="background-color: #f9f9f9; cursor: pointer; display: var(--yt-endpoint-display, inline-block); font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; text-decoration: var(--yt-endpoint-text-regular-decoration, none); white-space: pre-wrap;" target="_blank">https://kcdspain.com/</a><span class="style-scope yt-formatted-string" dir="auto" style="background: rgb(249, 249, 249); border: 0px; color: #030303; font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; margin: 0px; padding: 0px; white-space: pre-wrap;">
</span><a class="yt-simple-endpoint style-scope yt-formatted-string" dir="auto" href="https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqa3YwMU11MFZDdm44bWEwUldVQjk5X2V2b1JpZ3xBQ3Jtc0ttMWY5QVd5MlBNMVdDc3Y3QkdKSE5Dc296cl94WWxROHdsd2ZOZzlFTU1rNG5FQnd3d2s4dF9aV3dmaTBYYlR3cWVsalBIREp0ampwMG55bkFEbVlaNEdxbVZ5bG9OOFJ4a3NWZUpkeHMySUZscjBDQQ&q=https%3A%2F%2Ftwitter.com%2Fkcdspain" rel="nofollow" spellcheck="false" style="background-color: #f9f9f9; cursor: pointer; display: var(--yt-endpoint-display, inline-block); font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; text-decoration: var(--yt-endpoint-text-regular-decoration, none); white-space: pre-wrap;" target="_blank">https://twitter.com/kcdspain</a><span class="style-scope yt-formatted-string" dir="auto" style="background: rgb(249, 249, 249); border: 0px; color: #030303; font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; margin: 0px; padding: 0px; white-space: pre-wrap;">
</span><a class="yt-simple-endpoint style-scope yt-formatted-string" dir="auto" href="https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqa1doZS1fVHFBTXBrOXphYVg4a2x4RXRRYzZCZ3xBQ3Jtc0tuQlJ6ODRRSTVuQWhiVXRYTmVqaFJ3NVJCXzA3QkVoM0szV3NpVGZGQ0Fhd0E5LXJvZmVkWXo0dC1tbDJsb3JiOXotbHZJMkNxSUs0MHIxenZKTG94S25nYlJyMzVDaTZBbUFHMXYzYjhiZDdMWmF1VQ&q=https%3A%2F%2Fwww.linkedin.com%2Fcompany%2Fkcdspain" rel="nofollow" spellcheck="false" style="background-color: #f9f9f9; cursor: pointer; display: var(--yt-endpoint-display, inline-block); font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; text-decoration: var(--yt-endpoint-text-regular-decoration, none); white-space: pre-wrap;" target="_blank">https://www.linkedin.com/company/kcds...</a><span class="style-scope yt-formatted-string" dir="auto" style="background: rgb(249, 249, 249); border: 0px; color: #030303; font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; margin: 0px; padding: 0px; white-space: pre-wrap;"> </span><p><a class="yt-simple-endpoint style-scope yt-formatted-string" dir="auto" href="https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbEFsQl9ZcXl3bVJtbmJZQk1XaWhrd1hjMGltQXxBQ3Jtc0ttamU4T0hVd3pOa2tGVUVGYVN0QkJOajUwblJ6N3R4ZHlieEltbUw5bXVzbERrR1g1RDk2VEM5ZExPOUZrUHZYOTRvYXFFbUIwR3N4STNoYVhHdDhQV2dBTXZLNVE5a05vNHR6QTZVdkdQbllHQTJQdw&q=https%3A%2F%2Fwww.linkedin.com%2Fevents%2Fkcdspain20216800770622398980096%2F" rel="nofollow" spellcheck="false" style="background-color: #f9f9f9; cursor: pointer; display: var(--yt-endpoint-display, inline-block); font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; text-decoration: var(--yt-endpoint-text-regular-decoration, none); white-space: pre-wrap;" target="_blank">https://www.linkedin.com/events/kcdsp...</a></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-ET5w_9vzNGvhvFxBX4PL2dFMPZ1oBu4h_oDqoEsZlwFWfnq-Em4rCzuYobHazOJvg03zqBa6V6lH8rmOF68ECfIsDv-1Ksb87LevMMT-BoNc6Xq_JzbkYin6nnxMKJW3_NTZgiJ367pB/" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="559" data-original-width="1144" height="312" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-ET5w_9vzNGvhvFxBX4PL2dFMPZ1oBu4h_oDqoEsZlwFWfnq-Em4rCzuYobHazOJvg03zqBa6V6lH8rmOF68ECfIsDv-1Ksb87LevMMT-BoNc6Xq_JzbkYin6nnxMKJW3_NTZgiJ367pB/w640-h312/Captura+de+pantalla+2021-06-16+a+las+18.32.33.png" width="640" /></a></div><br /><br /><p></p><p><span style="background-color: #f9f9f9;">--- </span></p><p><span class="style-scope yt-formatted-string" dir="auto" style="background: rgb(249, 249, 249); border: 0px; margin: 0px; padding: 0px;">Song: Elektronomia & RUD - Memory [NCS Release]
Music provided by NoCopyrightSounds
Free Download/Stream: </span><a class="yt-simple-endpoint style-scope yt-formatted-string" dir="auto" href="https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbm96QzZLSEx6eGl5OVJ0eUZheU9HOF9GcHNyd3xBQ3Jtc0trdktJaGFfUUREUDZFenlIWVdIc1ZVVTFCR0Z4UVhKLXRhNmxud011TnpXVjhqZ0xsS2hocnlQdGdjbHZyNjVIQXkxZlpVUXp2YkR1YVVPNTNnSG12V21UNm4tWkJieUFMZUxYNW5VaTktVksweTg1SQ&q=http%3A%2F%2Fncs.io%2FMemory" rel="nofollow" spellcheck="false" style="background-color: #f9f9f9; cursor: pointer; display: var(--yt-endpoint-display, inline-block); font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; text-decoration: var(--yt-endpoint-text-regular-decoration, none); white-space: pre-wrap;" target="_blank">http://ncs.io/Memory</a><span class="style-scope yt-formatted-string" dir="auto" style="background: rgb(249, 249, 249); border: 0px; color: #030303; font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; margin: 0px; padding: 0px; white-space: pre-wrap;">
Watch: </span><a class="yt-simple-endpoint style-scope yt-formatted-string" dir="auto" href="https://www.youtube.com/watch?v=EnuGdwI0W1g&t=0s" spellcheck="false" style="background-color: #f9f9f9; cursor: pointer; display: var(--yt-endpoint-display, inline-block); font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; text-decoration: var(--yt-endpoint-text-regular-decoration, none); white-space: pre-wrap;">http://youtu.be/EnuGdwI0W1g</a></p>Mario Ezquerro Saenzhttp://www.blogger.com/profile/13268821028089033812noreply@blogger.com0tag:blogger.com,1999:blog-8533221626657735040.post-38709865410415945412021-06-16T17:33:00.011+01:002021-06-16T17:33:58.029+01:00Kubesphere - Juan Vela García y Xavi Miranda, Geko Cloud<p><span class="style-scope yt-formatted-string" dir="auto" style="background: rgb(249, 249, 249); border: 0px; color: #030303; font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; margin: 0px; padding: 0px; white-space: pre-wrap;"></span></p><div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen="" class="BLOG_video_class" height="364" src="https://www.youtube.com/embed/wjgvwRxDjsQ" width="650" youtube-src-id="wjgvwRxDjsQ"></iframe></div><br />
Kubesphere es una plataforma basada en Kubernetes que permite gestionar múltiples clústers junto con sus aplicaciones y su ciclo de vida desde una interfaz unificada. Esta plataforma integra distintas herramientas que ayudan a resolver los problemas comunes que enfrentan los equipos de infra, de desarrollo y de operaciones cuando desean migrar sus servicios a Kubernetes.<p></p><p><span class="style-scope yt-formatted-string" dir="auto" style="background: rgb(249, 249, 249); border: 0px; color: #030303; font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; margin: 0px; padding: 0px; white-space: pre-wrap;"><a class="yt-simple-endpoint style-scope yt-formatted-string" dir="auto" href="https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbDU3cm5BRXFfNFdaZ3NMWFVQcHByM1N6YmVVQXxBQ3Jtc0ttSExfSm1RV1Vyajg2YzIwWGJxQnpNUnZDX0ZIS3VROFJ3dDUzenRLVHp1MU54RjN2NGhId3FnYXMwbkFNT1d5TzBwVUVRcFk0RjlPYUZ6enRKc2laRE1SN0NENDRDM211clluT19zc2c1S0VDelp3TQ&q=https%3A%2F%2Fkcdspain.com%2F" rel="nofollow" spellcheck="false" style="cursor: pointer; display: var(--yt-endpoint-display, inline-block); letter-spacing: 0.2px; text-decoration: var(--yt-endpoint-text-regular-decoration, none);" target="_blank">https://kcdspain.com/</a><span class="style-scope yt-formatted-string" dir="auto" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; letter-spacing: 0.2px; margin: 0px; padding: 0px;">
</span><a class="yt-simple-endpoint style-scope yt-formatted-string" dir="auto" href="https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqa2RfUXpjZnRkVUk0U0Zrc20yeF92MC1LendIZ3xBQ3Jtc0trcHJob2JBaGxKcktRc2k3dUVubDN4cmp4ZlhnTlp5UTNrZmkxOTlkTWJEaGFxRUNtUzZzcV9SQzh0d3VQdlBnZUhpOXA3QnFQRExmOGdpLWVERC14aTZsQlNZcm9ld3J0S1ZMVGpkb0NuNUtLZjFzMA&q=https%3A%2F%2Ftwitter.com%2Fkcdspain" rel="nofollow" spellcheck="false" style="cursor: pointer; display: var(--yt-endpoint-display, inline-block); letter-spacing: 0.2px; text-decoration: var(--yt-endpoint-text-regular-decoration, none);" target="_blank">https://twitter.com/kcdspain</a><span class="style-scope yt-formatted-string" dir="auto" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; letter-spacing: 0.2px; margin: 0px; padding: 0px;">
</span><a class="yt-simple-endpoint style-scope yt-formatted-string" dir="auto" href="https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbEtGNWJnWGF4TWoyMjUzQ3lYTmxiQUR6NmhHZ3xBQ3Jtc0tsUjk3aGdMNmF4NklUWnZoQ3lCUlVldHpVakExQk5tVS1fZDFqZ1ZueTN1cFJpaHFWcGNrLXk4cFVWX2wtVXZSZHJZejJvRTRSNDdfUjBjWFVhY24zS1JKNGV1LUo2N0NsYU5TY0ZDMEc2aWVwT3lMMA&q=https%3A%2F%2Fwww.linkedin.com%2Fcompany%2Fkcdspain" rel="nofollow" spellcheck="false" style="cursor: pointer; display: var(--yt-endpoint-display, inline-block); letter-spacing: 0.2px; text-decoration: var(--yt-endpoint-text-regular-decoration, none);" target="_blank">https://www.linkedin.com/company/kcds...</a><span class="style-scope yt-formatted-string" dir="auto" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; letter-spacing: 0.2px; margin: 0px; padding: 0px;">
</span><a class="yt-simple-endpoint style-scope yt-formatted-string" dir="auto" href="https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqa0wwYnZmNnN1NDBYQkRZUlhPcV9wSkRBZFhuQXxBQ3Jtc0tsZEw0RzZLTWtPdEdPNndXR3NTc3NUSGo1U1JMd05VSzYxdUE0NFZtREV5bHVLZnFuWTJiZW80RmxjYmw0UGVrcm9zLS1SNjFqM1F2NUVvbkdUSkh2bDM3eGNoWVVkVmtkM09IUU1nbHpJVWhKcmdsOA&q=https%3A%2F%2Fwww.linkedin.com%2Fevents%2Fkcdspain20216800770622398980096%2F" rel="nofollow" spellcheck="false" style="cursor: pointer; display: var(--yt-endpoint-display, inline-block); letter-spacing: 0.2px; text-decoration: var(--yt-endpoint-text-regular-decoration, none);" target="_blank">https://www.linkedin.com/events/kcdsp...</a>
Sigue la conversación en </span><a class="yt-simple-endpoint style-scope yt-formatted-string" dir="auto" href="https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbFBWRjBkSzItbnhQYWk2a3g4TThjSGhpRmxmUXxBQ3Jtc0tuaXI5QWxOTkZNc3p3QW1JX1JvVVNZNm1oRXhlck5zWl9reVN6RXZ6dE1mZ0xTMlprZ1V0S1R0bXVyZHUxc0NMOV95YmRkekx2UURIUVQ3OXFfcWNIYURlOHlKUWhWSGttb0FKemxnZlRidVpLZkJyUQ&q=http%3A%2F%2Fbit.ly%2Fkcdspain2021-kubesphere" rel="nofollow" spellcheck="false" style="background-color: #f9f9f9; cursor: pointer; display: var(--yt-endpoint-display, inline-block); font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; text-decoration: var(--yt-endpoint-text-regular-decoration, none); white-space: pre-wrap;" target="_blank">http://bit.ly/kcdspain2021-kubesphere</a></p><p><span class="style-scope yt-formatted-string" dir="auto" style="background: rgb(249, 249, 249); border: 0px; margin: 0px; padding: 0px;"><span style="color: #030303; font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; white-space: pre-wrap;">Forma parte de la primera comunidad de hispanohablantes de Kubernetes. Descubre un evento de tres días en español lleno de experiencias, empresas emergentes y personas a las que les gusta tanto la tecnología como a ti.</span></span></p><p><span class="style-scope yt-formatted-string" dir="auto" style="background: rgb(249, 249, 249); border: 0px; margin: 0px; padding: 0px;"><span style="color: #030303; font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; white-space: pre-wrap;"><br /></span></span></p><p><span class="style-scope yt-formatted-string" dir="auto" style="background: rgb(249, 249, 249); border: 0px; margin: 0px; padding: 0px;"><span style="color: #030303; font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; white-space: pre-wrap;"></span></span></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZ7gpSHCtjrRY7hHXN-TBHdnVCQha7wZnBi5ZIx1XBNysXFbVA1-8ZrTCoiDidGuBXW0nHaogEVgHzXaBV0YFhW5rfU-imcr3CyHrU7nT59q9b6tpcm1gbNNH4AuKZaHJrJxKwfdgGxdXX/" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="559" data-original-width="1144" height="312" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZ7gpSHCtjrRY7hHXN-TBHdnVCQha7wZnBi5ZIx1XBNysXFbVA1-8ZrTCoiDidGuBXW0nHaogEVgHzXaBV0YFhW5rfU-imcr3CyHrU7nT59q9b6tpcm1gbNNH4AuKZaHJrJxKwfdgGxdXX/w640-h312/Captura+de+pantalla+2021-06-16+a+las+18.32.33.png" width="640" /></a></div><br /><p></p><p><span class="style-scope yt-formatted-string" dir="auto" style="background: rgb(249, 249, 249); border: 0px; margin: 0px; padding: 0px;">
--- </span></p><p><span class="style-scope yt-formatted-string" dir="auto" style="background: rgb(249, 249, 249); border: 0px; margin: 0px; padding: 0px;">Song: Elektronomia & RUD - Memory [NCS Release]
Music provided by NoCopyrightSounds
Free Download/Stream: </span><a class="yt-simple-endpoint style-scope yt-formatted-string" dir="auto" href="https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqa0hSTkszdk5YaFBmcEF4VFh0OHM0Q0VNYTVRQXxBQ3Jtc0tsMU9vNi1PNTBrakZzVXI0dVYzaDgtR0lpNnJkTW1BX3lDNG1VQU4zZmliTXFpZ253LXJ0RXFMUHA4TVd2dHIwcTJaaDd4bVc1MjkybmtiMDRFdUVua1o2NU1nNjE4cjVqRm5GaVFFOWpKQmFoYzNfWQ&q=http%3A%2F%2Fncs.io%2FMemory" rel="nofollow" spellcheck="false" style="background-color: #f9f9f9; cursor: pointer; display: var(--yt-endpoint-display, inline-block); font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; text-decoration: var(--yt-endpoint-text-regular-decoration, none); white-space: pre-wrap;" target="_blank">http://ncs.io/Memory</a><span class="style-scope yt-formatted-string" dir="auto" style="background: rgb(249, 249, 249); border: 0px; color: #030303; font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; margin: 0px; padding: 0px; white-space: pre-wrap;">
Watch: </span><a class="yt-simple-endpoint style-scope yt-formatted-string" dir="auto" href="https://www.youtube.com/watch?v=EnuGdwI0W1g&t=0s" spellcheck="false" style="background-color: #f9f9f9; cursor: pointer; display: var(--yt-endpoint-display, inline-block); font-family: Roboto, Arial, sans-serif; font-size: 14px; letter-spacing: 0.2px; text-decoration: var(--yt-endpoint-text-regular-decoration, none); white-space: pre-wrap;">http://youtu.be/EnuGdwI0W1g</a></p>Mario Ezquerro Saenzhttp://www.blogger.com/profile/13268821028089033812noreply@blogger.com0tag:blogger.com,1999:blog-8533221626657735040.post-10613212770222057732021-05-13T18:35:00.000+01:002021-05-13T18:35:06.630+01:00GDGSpainPodcast E4S2 Visualización comentada por streaming de la keynote del I/O<p></p><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5Qepe6acgNWJEMmmEOJAKz0stAndzuVm_dHqrtGwUH4qaWJNRRRQzM0b3A4eZIyFbkmQgwpEOC4yOMS-uFCOA6tzoti3O_qOGKfh5fP55LUM_S1YFQDWIeEoaNqYdazuHGebPpcqFVBvU/" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="900" data-original-width="1600" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5Qepe6acgNWJEMmmEOJAKz0stAndzuVm_dHqrtGwUH4qaWJNRRRQzM0b3A4eZIyFbkmQgwpEOC4yOMS-uFCOA6tzoti3O_qOGKfh5fP55LUM_S1YFQDWIeEoaNqYdazuHGebPpcqFVBvU/w640-h360/e02ec772-7ace-4870-bfb1-338574880048.jpeg" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><br /></div><br /><p></p><p style="background-color: white; box-sizing: border-box; color: #202124; font-family: "Google Sans"; font-size: 16px; margin: 0.75em 0px;">El equipo del GDG Spain Podcast realizará la visualización comentada por streaming de la keynote del I/O 2021.</p><p style="background-color: white; box-sizing: border-box; color: #202124; font-family: "Google Sans"; font-size: 16px; margin: 0.75em 0px;">Con Mario y Laura expertos reconocidos en Cloud y Andreu en diversas tecnologías como GEO y AR/VR, desde las 18:30 conectaremos con el streaming oficial de Google para recordar momentos presenciales de los anteriores I/O, tanto en California como en España, e ir comentando las novedades que se presenten en la keynote principal.</p><p style="background-color: white; box-sizing: border-box; color: #202124; font-family: "Google Sans"; font-size: 16px; margin: 0.75em 0px;"><br /></p><p style="background-color: white; box-sizing: border-box; color: #202124; font-family: "Google Sans"; font-size: 16px; margin: 0.75em 0px;">Link del stream que enlazará con el del GDG Lleida a las 18:30 aproximadamente en </p><p style="background-color: white; box-sizing: border-box; color: #444444; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; margin: 0.75em 0px;"><span style="color: #202124; font-family: "Google Sans";"><a href="https://www.youtube.com/watch?v=YxaFGPkQc14" style="color: #3778cd; text-decoration-line: none;">https://www.youtube.com/watch?v=YxaFGPkQc14</a></span></p>Mario Ezquerro Saenzhttp://www.blogger.com/profile/13268821028089033812noreply@blogger.com0tag:blogger.com,1999:blog-8533221626657735040.post-13114223950174802022021-05-12T18:23:00.003+01:002021-05-12T18:23:23.916+01:00Kubernetes Community Day Spain 2021<p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbSbuB-pd2vL8qTSQzKW83niSUDE9jXB6KUDKrUYOK53IAyeL0RnnQLDLUm0GfoNiEd1P54LNy84EIFV76z34G-k4cK-avaZ5JLkaPRVgBdVFeQgH9aSVWctuGGX5WCtZbosul5eoVKAUj/" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="344" data-original-width="681" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbSbuB-pd2vL8qTSQzKW83niSUDE9jXB6KUDKrUYOK53IAyeL0RnnQLDLUm0GfoNiEd1P54LNy84EIFV76z34G-k4cK-avaZ5JLkaPRVgBdVFeQgH9aSVWctuGGX5WCtZbosul5eoVKAUj/s16000/Captura+de+pantalla+2021-05-12+a+las+19.21.43.png" /></a></div><br /><br /><p></p><p><a href="https://www.meetup.com/Cloud-Native-Madrid/events/277508988/">https://www.meetup.com/Cloud-Native-Madrid/events/277508988/ </a></p><p><span style="background-color: #f6f7f8; color: #212121; font-family: "Graphik Meetup", -apple-system, system-ui, Roboto, Helvetica, Arial, sans-serif; font-size: 16px;">Cloud Native Madrid, junto con otras comunidades del resto de España, estamos preparando el primer Kubernetes Community Days Spain oficial de la Cloud Native Computing Foundation.</span></p><br style="background-color: #f6f7f8; color: #212121; font-family: "Graphik Meetup", -apple-system, system-ui, Roboto, Helvetica, Arial, sans-serif; font-size: 16px;" /><span style="background-color: #f6f7f8; color: #212121; font-family: "Graphik Meetup", -apple-system, system-ui, Roboto, Helvetica, Arial, sans-serif; font-size: 16px;">- Puedes reservar la entrada gratuita en </span><a class="link" href="https://cncf.k8scd.es/" rel="nofollow ugc" style="background-color: #f6f7f8; cursor: pointer; display: inline; fill: rgb(0, 162, 199); font-family: "Graphik Meetup", -apple-system, system-ui, Roboto, Helvetica, Arial, sans-serif; font-size: 16px; stroke: transparent; text-decoration-line: none;" target="_blank" title="https://cncf.k8scd.es">https://cncf.k8scd.es</a><br style="background-color: #f6f7f8; color: #212121; font-family: "Graphik Meetup", -apple-system, system-ui, Roboto, Helvetica, Arial, sans-serif; font-size: 16px;" /><br style="background-color: #f6f7f8; color: #212121; font-family: "Graphik Meetup", -apple-system, system-ui, Roboto, Helvetica, Arial, sans-serif; font-size: 16px;" /><span style="background-color: #f6f7f8; color: #212121; font-family: "Graphik Meetup", -apple-system, system-ui, Roboto, Helvetica, Arial, sans-serif; font-size: 16px;">- Y si quieres dar una charla, tienes hasta el 30 de Abril para enviarla a </span><a class="link" href="https://cfp.k8scd.es/" rel="nofollow ugc" style="background-color: #f6f7f8; cursor: pointer; display: inline; fill: rgb(0, 162, 199); font-family: "Graphik Meetup", -apple-system, system-ui, Roboto, Helvetica, Arial, sans-serif; font-size: 16px; stroke: transparent; text-decoration-line: none;" target="_blank" title="https://cfp.k8scd.es">https://cfp.k8scd.es</a><span style="background-color: #f6f7f8; color: #212121; font-family: "Graphik Meetup", -apple-system, system-ui, Roboto, Helvetica, Arial, sans-serif; font-size: 16px;">.</span><br style="background-color: #f6f7f8; color: #212121; font-family: "Graphik Meetup", -apple-system, system-ui, Roboto, Helvetica, Arial, sans-serif; font-size: 16px;" /><br style="background-color: #f6f7f8; color: #212121; font-family: "Graphik Meetup", -apple-system, system-ui, Roboto, Helvetica, Arial, sans-serif; font-size: 16px;" /><span style="background-color: #f6f7f8; color: #212121; font-family: "Graphik Meetup", -apple-system, system-ui, Roboto, Helvetica, Arial, sans-serif; font-size: 16px;">El evento será los días 8, 9 (y quizás 10) de Junio, unas 3-4 horas por la tarde y será online en la plataforma para eventos de la CNCF.</span>Mario Ezquerro Saenzhttp://www.blogger.com/profile/13268821028089033812noreply@blogger.com0tag:blogger.com,1999:blog-8533221626657735040.post-80456034260449054982021-04-21T20:45:00.001+01:002021-04-21T20:45:07.187+01:00Docker en modo Experimental<h1 cid="n871" class="md-end-block md-heading" mdtype="heading" style="background-color: white; border-bottom: 1px solid rgb(238, 238, 238); box-sizing: border-box; break-after: avoid-page; break-inside: avoid; caret-color: rgb(51, 51, 51); color: #333333; cursor: text; font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 2.25em; line-height: 1.2; margin-bottom: 1rem; margin-top: 1rem; orphans: 4; position: relative; white-space: pre-wrap;"><span class="md-plain md-expand" md-inline="plain" style="box-sizing: border-box;">Develop Docker Experimental Feature</span></h1><p cid="n873" class="md-end-block md-p" mdtype="paragraph" style="background-color: white; box-sizing: border-box; caret-color: rgb(51, 51, 51); color: #333333; font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: inherit; margin: 0.8em 0px; orphans: 4; position: relative; white-space: pre-wrap;"><span class="md-plain" md-inline="plain" style="box-sizing: border-box;">Para usar las características experimentales en Docker hay que ajustar el servidor y el cliente de Docker, en esta imagen vemos como esta activado solo en uno de los dos: usamos </span><span class="md-pair-s" md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="background-color: #f3f4f4; border-radius: 3px; border: 1px solid rgb(231, 234, 237); box-sizing: border-box; font-family: var(--monospace); font-size: 0.9em; padding: 0px 2px;">docker version</code></span></p><p cid="n874" class="md-end-block md-p" mdtype="paragraph" style="background-color: white; box-sizing: border-box; caret-color: rgb(51, 51, 51); color: #333333; font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: inherit; margin: 0.8em 0px; orphans: 4; position: relative; white-space: pre-wrap;"><span class="md-plain" md-inline="plain" style="box-sizing: border-box;">Te indico como configurar cada uno de ellos.</span></p><h5 cid="n875" class="md-end-block md-heading" mdtype="heading" style="background-color: white; box-sizing: border-box; break-after: avoid-page; break-inside: avoid; caret-color: rgb(51, 51, 51); color: #333333; cursor: text; font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 1em; line-height: 1.4; margin-bottom: 1rem; margin-top: 1rem; orphans: 4; position: relative; white-space: pre-wrap;"><span class="md-plain" md-inline="plain" style="box-sizing: border-box;">Como activamos el server</span></h5><p cid="n876" class="md-end-block md-p" mdtype="paragraph" style="background-color: white; box-sizing: border-box; caret-color: rgb(51, 51, 51); color: #333333; font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: inherit; margin: 0.8em 0px; orphans: 4; position: relative; white-space: pre-wrap;"><span class="md-plain" md-inline="plain" style="box-sizing: border-box;">Necesitas modificar el fichero del servicio de la configuración</span></p><pre cid="n877" class="md-fences md-end-block ty-contain-cm modeLoaded" lang="" mdtype="fences" spellcheck="false" style="background-attachment: inherit; background-clip: inherit; background-color: #f8f8f8; background-image: inherit; background-origin: inherit; background-size: inherit; border-radius: 3px; border: 1px solid rgb(231, 234, 237); box-sizing: border-box; break-inside: avoid; caret-color: rgb(51, 51, 51); color: #333333; font-family: var(--monospace); font-size: 0.9em; margin-bottom: 15px; margin-top: 15px; overflow: visible; padding: 8px 4px 6px; position: relative !important; text-size-adjust: auto; white-space: normal; width: inherit;"><span role="presentation" style="box-sizing: border-box; padding-right: 0.1px;">sudo vim /etc/docker/daemon.json</span></pre><p cid="n878" class="md-end-block md-p" mdtype="paragraph" style="background-color: white; box-sizing: border-box; caret-color: rgb(51, 51, 51); color: #333333; font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: inherit; margin: 0.8em 0px; orphans: 4; position: relative; white-space: pre-wrap;"><span class="md-plain" md-inline="plain" style="box-sizing: border-box;">Añadimos el siguiente texto ( ten en cuenta que puedes tener mas configuraciones, entonces respeta el formato json)</span></p><pre cid="n879" class="md-fences md-end-block ty-contain-cm modeLoaded" lang="" mdtype="fences" spellcheck="false" style="background-attachment: inherit; background-clip: inherit; background-color: #f8f8f8; background-image: inherit; background-origin: inherit; background-size: inherit; border-radius: 3px; border: 1px solid rgb(231, 234, 237); box-sizing: border-box; break-inside: avoid; caret-color: rgb(51, 51, 51); color: #333333; font-family: var(--monospace); font-size: 0.9em; margin-bottom: 15px; margin-top: 15px; overflow: visible; padding: 8px 4px 6px; position: relative !important; text-size-adjust: auto; white-space: normal; width: inherit;"><span role="presentation" style="box-sizing: border-box; padding-right: 0.1px;">{ </span><br /><span role="presentation" style="box-sizing: border-box; padding-right: 0.1px;"> "experimental": true </span><br /><span role="presentation" style="box-sizing: border-box; padding-right: 0.1px;">} </span></pre><p cid="n880" class="md-end-block md-p" mdtype="paragraph" style="background-color: white; box-sizing: border-box; caret-color: rgb(51, 51, 51); color: #333333; font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: inherit; margin: 0.8em 0px; orphans: 4; position: relative; white-space: pre-wrap;"><span class="md-plain" md-inline="plain" style="box-sizing: border-box;">Guarda los cambios y reinicia el servidor (depende del sistema operativo puede cambiar )</span></p><pre cid="n881" class="md-fences md-end-block ty-contain-cm modeLoaded" lang="" mdtype="fences" spellcheck="false" style="background-attachment: inherit; background-clip: inherit; background-color: #f8f8f8; background-image: inherit; background-origin: inherit; background-size: inherit; border-radius: 3px; border: 1px solid rgb(231, 234, 237); box-sizing: border-box; break-inside: avoid; caret-color: rgb(51, 51, 51); color: #333333; font-family: var(--monospace); font-size: 0.9em; margin-bottom: 15px; margin-top: 15px; overflow: visible; padding: 8px 4px 6px; position: relative !important; text-size-adjust: auto; white-space: normal; width: inherit;"><span role="presentation" style="box-sizing: border-box; padding-right: 0.1px;">sudo service docker restart</span></pre><p cid="n882" class="md-end-block md-p" mdtype="paragraph" style="background-color: white; box-sizing: border-box; caret-color: rgb(51, 51, 51); color: #333333; font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: inherit; margin: 0.8em 0px; orphans: 4; position: relative; white-space: pre-wrap;"><span class="md-plain" md-inline="plain" style="box-sizing: border-box;">ya puedes confirmar que esta activo usando el comando </span></p><pre cid="n883" class="md-fences md-end-block ty-contain-cm modeLoaded" lang="" mdtype="fences" spellcheck="false" style="background-attachment: inherit; background-clip: inherit; background-color: #f8f8f8; background-image: inherit; background-origin: inherit; background-size: inherit; border-radius: 3px; border: 1px solid rgb(231, 234, 237); box-sizing: border-box; break-inside: avoid; caret-color: rgb(51, 51, 51); color: #333333; font-family: var(--monospace); font-size: 0.9em; margin-bottom: 15px; margin-top: 15px; overflow: visible; padding: 8px 4px 6px; position: relative !important; text-size-adjust: auto; white-space: normal; width: inherit;"><span role="presentation" style="box-sizing: border-box; padding-right: 0.1px;">docker version</span></pre><p cid="n884" class="md-end-block md-p" mdtype="paragraph" style="background-color: white; box-sizing: border-box; caret-color: rgb(51, 51, 51); color: #333333; font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: inherit; margin: 0.8em 0px; orphans: 4; position: relative; white-space: pre-wrap;"><span class="md-plain" md-inline="plain" style="box-sizing: border-box;">En la parte de server tienes que encontrar </span><span class="md-pair-s" md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="background-color: #f3f4f4; border-radius: 3px; border: 1px solid rgb(231, 234, 237); box-sizing: border-box; font-family: var(--monospace); font-size: 0.9em; padding: 0px 2px;">Experimental: true</code></span></p><p cid="n885" class="md-end-block md-p" mdtype="paragraph" style="background-color: white; box-sizing: border-box; caret-color: rgb(51, 51, 51); color: #333333; font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: inherit; margin: 0.8em 0px; orphans: 4; position: relative; white-space: pre-wrap;"><span class="md-image md-img-loaded" data-src="docker-version-experimental.png" md-inline="image" style="box-sizing: border-box; display: inline-block; font-family: monospace; min-height: 10px; min-width: 10px; position: relative; vertical-align: top; width: 964px; word-break: break-all;"> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgyvto1T1FoSvyhcnYGsMSw_1DFdrz28V_f0QYoBrhaGJ5tjY4YPNqIFUg3bBUN2ZAvoknhe3thv-EUKzgJY1XPIM_07ofpi39GNh8POmUBEH_egnaSwP_JHMXDy3S1HeCK4wcqrancsCeZ/" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img alt="" data-original-height="515" data-original-width="472" height="507" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgyvto1T1FoSvyhcnYGsMSw_1DFdrz28V_f0QYoBrhaGJ5tjY4YPNqIFUg3bBUN2ZAvoknhe3thv-EUKzgJY1XPIM_07ofpi39GNh8POmUBEH_egnaSwP_JHMXDy3S1HeCK4wcqrancsCeZ/w465-h507/modo-temporal.png" width="465" /></a><br /><br /></span></p><p cid="n886" class="md-end-block md-p" mdtype="paragraph" style="background-color: white; box-sizing: border-box; caret-color: rgb(51, 51, 51); color: #333333; font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: inherit; margin: 0.8em 0px; orphans: 4; position: relative; white-space: pre-wrap;"></p><p cid="n887" class="md-end-block md-p" mdtype="paragraph" style="background-color: white; box-sizing: border-box; caret-color: rgb(51, 51, 51); color: #333333; font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: inherit; margin: 0.8em 0px; orphans: 4; position: relative; white-space: pre-wrap;"><span class="md-plain" md-inline="plain" style="box-sizing: border-box;">En mi mac se puede hacer editando desde preferencias:</span></p><p cid="n887" class="md-end-block md-p" mdtype="paragraph" style="background-color: white; box-sizing: border-box; caret-color: rgb(51, 51, 51); color: #333333; font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: inherit; margin: 0.8em 0px; orphans: 4; position: relative; white-space: pre-wrap;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtke2-alngyAKUhNvRa3lz50rcRp1H0Gxy9yZV1T7UdN3UbuiFVx6kPpEPjIqKWH3XTNpZ8zz7MpjJQHyDGs3Mr-7-C_ArPaaqWa9Cb0VjDFTutpoAWXw1MWrUdmWxLvYTTSsFrC0drerB/" style="font-family: monospace; margin-left: 1em; margin-right: 1em; text-align: center;"><img alt="" data-original-height="291" data-original-width="953" height="173" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtke2-alngyAKUhNvRa3lz50rcRp1H0Gxy9yZV1T7UdN3UbuiFVx6kPpEPjIqKWH3XTNpZ8zz7MpjJQHyDGs3Mr-7-C_ArPaaqWa9Cb0VjDFTutpoAWXw1MWrUdmWxLvYTTSsFrC0drerB/w565-h173/server-experimental.png" width="565" /></a></p><p cid="n888" class="md-end-block md-p" mdtype="paragraph" style="background-color: white; box-sizing: border-box; caret-color: rgb(51, 51, 51); color: #333333; font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: inherit; margin: 0.8em 0px; orphans: 4; position: relative; white-space: pre-wrap;"><span class="md-image md-img-loaded" data-src="server-experimental.png" md-inline="image" style="box-sizing: border-box; display: inline-block; font-family: monospace; min-height: 10px; min-width: 10px; position: relative; vertical-align: top; width: 964px; word-break: break-all;"><br /><br /></span></p><p cid="n889" class="md-end-block md-p" mdtype="paragraph" style="background-color: white; box-sizing: border-box; caret-color: rgb(51, 51, 51); color: #333333; font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: inherit; margin: 0.8em 0px; orphans: 4; position: relative; white-space: pre-wrap;"></p><h5 cid="n890" class="md-end-block md-heading" mdtype="heading" style="background-color: white; box-sizing: border-box; break-after: avoid-page; break-inside: avoid; caret-color: rgb(51, 51, 51); color: #333333; cursor: text; font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 1em; line-height: 1.4; margin-bottom: 1rem; margin-top: 1rem; orphans: 4; position: relative; white-space: pre-wrap;"><span class="md-plain" md-inline="plain" style="box-sizing: border-box;">Como activamos en el CLI</span></h5><p cid="n891" class="md-end-block md-p" mdtype="paragraph" style="background-color: white; box-sizing: border-box; caret-color: rgb(51, 51, 51); color: #333333; font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: inherit; margin: 0.8em 0px; orphans: 4; position: relative; white-space: pre-wrap;"><span class="md-plain" md-inline="plain" style="box-sizing: border-box;">Podemos activarlo de forma temporal para el cliente:</span></p><pre cid="n892" class="md-fences md-end-block ty-contain-cm modeLoaded" lang="" mdtype="fences" spellcheck="false" style="background-attachment: inherit; background-clip: inherit; background-color: #f8f8f8; background-image: inherit; background-origin: inherit; background-size: inherit; border-radius: 3px; border: 1px solid rgb(231, 234, 237); box-sizing: border-box; break-inside: avoid; caret-color: rgb(51, 51, 51); color: #333333; font-family: var(--monospace); font-size: 0.9em; margin-bottom: 15px; margin-top: 15px; overflow: visible; padding: 8px 4px 6px; position: relative !important; text-size-adjust: auto; white-space: normal; width: inherit;"><span role="presentation" style="box-sizing: border-box; padding-right: 0.1px;">$ docker version</span><br /><span role="presentation" style="box-sizing: border-box; padding-right: 0.1px;"> Experimental: false</span><br /><span role="presentation" style="box-sizing: border-box; padding-right: 0.1px;">$ export DOCKER_CLI_EXPERIMENTAL=enabled</span><br /><span role="presentation" style="box-sizing: border-box; padding-right: 0.1px;">$ docker version</span><br /><span role="presentation" style="box-sizing: border-box; padding-right: 0.1px;"> Experimental: true</span></pre><p cid="n893" class="md-end-block md-p" mdtype="paragraph" style="background-color: white; box-sizing: border-box; caret-color: rgb(51, 51, 51); color: #333333; font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: inherit; margin: 0.8em 0px; orphans: 4; position: relative; white-space: pre-wrap;"><span class="md-plain" md-inline="plain" style="box-sizing: border-box;">Si queremos que sea de forma permanente debemos añadir en el fichero config.json del CLI , en el server se llama igual el fichero ten cuidad es fácil equivocarse</span></p><p cid="n894" class="md-end-block md-p" mdtype="paragraph" style="background-color: white; box-sizing: border-box; caret-color: rgb(51, 51, 51); color: #333333; font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: inherit; margin: 0.8em 0px; orphans: 4; position: relative; white-space: pre-wrap;"><span class="md-plain" md-inline="plain" style="box-sizing: border-box;">En el fichero </span><span class="md-pair-s" md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="background-color: #f3f4f4; border-radius: 3px; border: 1px solid rgb(231, 234, 237); box-sizing: border-box; font-family: var(--monospace); font-size: 0.9em; padding: 0px 2px;">$ vim ~/.docker/config.json</code></span><span class="md-plain" md-inline="plain" style="box-sizing: border-box;"> </span></p><p cid="n895" class="md-end-block md-p" mdtype="paragraph" style="background-color: white; box-sizing: border-box; caret-color: rgb(51, 51, 51); color: #333333; font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: inherit; margin: 0.8em 0px; orphans: 4; position: relative; white-space: pre-wrap;"><span class="md-plain" md-inline="plain" style="box-sizing: border-box;">Añadimos</span><span class="md-pair-s" md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="background-color: #f3f4f4; border-radius: 3px; border: 1px solid rgb(231, 234, 237); box-sizing: border-box; font-family: var(--monospace); font-size: 0.9em; padding: 0px 2px;">"experimental" : "enabled"</code></span></p><p cid="n896" class="md-end-block md-p" mdtype="paragraph" style="background-color: white; box-sizing: border-box; caret-color: rgb(51, 51, 51); color: #333333; font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: inherit; margin: 0.8em 0px; orphans: 4; position: relative; white-space: pre-wrap;"><span class="md-plain" md-inline="plain" style="box-sizing: border-box;">Ten en cuenta que es un json puede ser que necesites añadir {} o comas respecta el formato.</span></p><p cid="n897" class="md-end-block md-p" mdtype="paragraph" style="background-color: white; box-sizing: border-box; caret-color: rgb(51, 51, 51); color: #333333; font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: inherit; margin: 0.8em 0px; orphans: 4; position: relative; white-space: pre-wrap;"></p><h5 cid="n898" class="md-end-block md-heading" mdtype="heading" style="background-color: white; box-sizing: border-box; break-after: avoid-page; break-inside: avoid; caret-color: rgb(51, 51, 51); color: #333333; cursor: text; font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 1em; line-height: 1.4; margin-bottom: 1rem; margin-top: 1rem; orphans: 4; position: relative; white-space: pre-wrap;"><span class="md-plain" md-inline="plain" style="box-sizing: border-box;">Con todas las dos opciones activadas.</span></h5><p cid="n899" class="md-end-block md-p" mdtype="paragraph" style="background-color: white; box-sizing: border-box; caret-color: rgb(51, 51, 51); color: #333333; font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: inherit; margin: 0.8em 0px; orphans: 4; position: relative; white-space: pre-wrap;"><span class="md-plain" md-inline="plain" style="box-sizing: border-box;">Podemos también usar </span><span class="md-pair-s" md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="background-color: #f3f4f4; border-radius: 3px; border: 1px solid rgb(231, 234, 237); box-sizing: border-box; font-family: var(--monospace); font-size: 0.9em; padding: 0px 2px;">docker version -f '{{.Server.Experimental}}'</code></span></p><p cid="n900" class="md-end-block md-p" mdtype="paragraph" style="background-color: white; box-sizing: border-box; caret-color: rgb(51, 51, 51); color: #333333; font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: inherit; margin: 0.8em 0px; orphans: 4; position: relative; white-space: pre-wrap;"><span class="md-plain" md-inline="plain" style="box-sizing: border-box;">En este caso la salida de </span><span class="md-pair-s" md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="background-color: #f3f4f4; border-radius: 3px; border: 1px solid rgb(231, 234, 237); box-sizing: border-box; font-family: var(--monospace); font-size: 0.9em; padding: 0px 2px;">docker version</code></span><span class="md-plain" md-inline="plain" style="box-sizing: border-box;"> marcado en rojo las características, se pueden ver como están activadas.</span></p><p cid="n900" class="md-end-block md-p" mdtype="paragraph" style="background-color: white; box-sizing: border-box; caret-color: rgb(51, 51, 51); color: #333333; font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: inherit; margin: 0.8em 0px; orphans: 4; position: relative; white-space: pre-wrap;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgU7EhyphenhyphenaYFdIWb9G54LueNsjEGDeiIVy8L74YsP8UP5-4_CVki6YqfbB9YQVzVOKJPBAQdAM_Ev-9-RHZmvXWiE0meAAXXLw399sTJchKi5uoENC-wkYeg5jn3E68FEwpdSjysyTQkWMGBE/" style="font-family: monospace; margin-left: 1em; margin-right: 1em; text-align: center;"><img alt="" data-original-height="459" data-original-width="467" height="323" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgU7EhyphenhyphenaYFdIWb9G54LueNsjEGDeiIVy8L74YsP8UP5-4_CVki6YqfbB9YQVzVOKJPBAQdAM_Ev-9-RHZmvXWiE0meAAXXLw399sTJchKi5uoENC-wkYeg5jn3E68FEwpdSjysyTQkWMGBE/w353-h323/docker-version-experimental.png" width="353" /></a></p><p cid="n901" class="md-end-block md-p" mdtype="paragraph" style="background-color: white; box-sizing: border-box; caret-color: rgb(51, 51, 51); color: #333333; font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: inherit; margin: 0.8em 0px; orphans: 4; position: relative; white-space: pre-wrap;"><span class="md-image md-img-loaded" data-src="/Users/wbug/Documents/repositorios/docker-formacion/formacion/09-Docker-Engine-SDKs-and-API/modo-temporal.png" md-inline="image" style="box-sizing: border-box; display: inline-block; font-family: monospace; min-height: 10px; min-width: 10px; position: relative; vertical-align: top; width: 964px; word-break: break-all;"><br /><br /></span></p><p cid="n902" class="md-end-block md-p" mdtype="paragraph" style="background-color: white; box-sizing: border-box; caret-color: rgb(51, 51, 51); color: #333333; font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: inherit; margin: 0.8em 0px; orphans: 4; position: relative; white-space: pre-wrap;"></p><p cid="n903" class="md-end-block md-p" mdtype="paragraph" style="background-color: white; box-sizing: border-box; caret-color: rgb(51, 51, 51); color: #333333; font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: inherit; margin: 0.8em 0px; orphans: 4; position: relative; white-space: pre-wrap;"></p><h1 cid="n904" class="md-end-block md-heading" mdtype="heading" style="background-color: white; border-bottom: 1px solid rgb(238, 238, 238); box-sizing: border-box; break-after: avoid-page; break-inside: avoid; caret-color: rgb(51, 51, 51); color: #333333; cursor: text; font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 2.25em; line-height: 1.2; margin-bottom: 1rem; margin-top: 1rem; orphans: 4; position: relative; white-space: pre-wrap;"><span class="md-plain" md-inline="plain" style="box-sizing: border-box;">Características experimentales actuales</span></h1><p cid="n905" class="md-end-block md-p" mdtype="paragraph" style="background-color: white; box-sizing: border-box; caret-color: rgb(51, 51, 51); color: #333333; font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: inherit; margin: 0.8em 0px; orphans: 4; position: relative; white-space: pre-wrap;"><span class="md-plain" md-inline="plain" style="box-sizing: border-box;">Hay que tener muy presente que las funciones experimentales experimentan cambios con las versiones. Estas características dan acceso anticipado a las funciones que pueden aparecer en versiones futuras. A veces, esas características se convierten en una versión final y, a veces, se desaparecen. </span></p><p cid="n906" class="md-end-block md-p" mdtype="paragraph" style="background-color: white; box-sizing: border-box; caret-color: rgb(51, 51, 51); color: #333333; font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: inherit; margin: 0.8em 0px; orphans: 4; position: relative; white-space: pre-wrap;"><span class="md-plain" md-inline="plain" style="box-sizing: border-box;">Una búsqueda rápida de la documentación actual de Docker revela que las siguientes características están incluidas en la lista experimental </span><span class="md-pair-s " md-inline="strong" style="box-sizing: border-box;"><strong style="box-sizing: border-box;"><span class="md-pair-s " md-inline="em" style="box-sizing: border-box;"><em style="box-sizing: border-box;">no están todas</em></span></strong></span><span class="md-plain" md-inline="plain" style="box-sizing: border-box;"> y por supuesto, esto podría cambiar en cualquier momento:</span></p><ul cid="n907" class="ul-list" data-mark="-" mdtype="list" style="background-color: white; box-sizing: border-box; caret-color: rgb(51, 51, 51); color: #333333; font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; margin: 0.8em 0px; padding-left: 30px; position: relative; text-size-adjust: auto;"><li cid="n908" class="md-list-item" mdtype="list_item" style="box-sizing: border-box; margin: 0px; position: relative;"><p cid="n909" class="md-end-block md-p" mdtype="paragraph" style="box-sizing: border-box; line-height: inherit; margin: 0px 0px 0.5rem; orphans: 4; position: relative; white-space: pre-wrap;"><span class="md-meta-i-c md-link" md-inline="link" style="box-sizing: border-box;"><a href="https://docs.docker.com/assemble/install/" spellcheck="false" style="-webkit-user-drag: none; box-sizing: border-box; color: #4183c4; cursor: pointer;"><span class="md-plain" md-inline="plain" style="box-sizing: border-box;">docker assemble</span></a></span><span class="md-plain" md-inline="plain" style="box-sizing: border-box;"> es un complemento que proporciona una herramienta compatible con el framework-aware para permitir a los usuarios crear una aplicación en un contenedor Docker optimizado. Con esta función, es posible crear rápidamente imágenes de Docker sin proporcionar información de configuración.</span></p></li><li cid="n910" class="md-list-item" mdtype="list_item" style="box-sizing: border-box; margin: 0px; position: relative;"><p cid="n911" class="md-end-block md-p" mdtype="paragraph" style="box-sizing: border-box; line-height: inherit; margin: 0px 0px 0.5rem; orphans: 4; position: relative; white-space: pre-wrap;"><span class="md-meta-i-c md-link" md-inline="link" style="box-sizing: border-box;"><a href="https://docs.docker.com/engine/reference/commandline/deploy/" spellcheck="false" style="-webkit-user-drag: none; box-sizing: border-box; color: #4183c4; cursor: pointer;"><span class="md-plain" md-inline="plain" style="box-sizing: border-box;">docker deploy</span></a></span><span class="md-plain" md-inline="plain" style="box-sizing: border-box;"> es un alias para stack deploy. Esta función es compatible con la versión de fichero "compose" 3.0 y superior.</span></p></li><li cid="n912" class="md-list-item" mdtype="list_item" style="box-sizing: border-box; margin: 0px; position: relative;"><p cid="n913" class="md-end-block md-p" mdtype="paragraph" style="box-sizing: border-box; line-height: inherit; margin: 0px 0px 0.5rem; orphans: 4; position: relative; white-space: pre-wrap;"><span class="md-meta-i-c md-link" md-inline="link" style="box-sizing: border-box;"><a href="https://docs.docker.com/engine/reference/commandline/manifest_inspect/" spellcheck="false" style="-webkit-user-drag: none; box-sizing: border-box; color: #4183c4; cursor: pointer;"><span class="md-plain" md-inline="plain" style="box-sizing: border-box;">docker manifest inspect</span></a></span><span class="md-plain" md-inline="plain" style="box-sizing: border-box;"> muestra un "manifest" de imagen o una lista de "manifiéstala".</span></p></li><li cid="n914" class="md-list-item" mdtype="list_item" style="box-sizing: border-box; margin: 0px; position: relative;"><p cid="n915" class="md-end-block md-p" mdtype="paragraph" style="box-sizing: border-box; line-height: inherit; margin: 0px 0px 0.5rem; orphans: 4; position: relative; white-space: pre-wrap;"><span class="md-meta-i-c md-link" md-inline="link" style="box-sizing: border-box;"><a href="https://docs.docker.com/engine/reference/commandline/checkpoint_create/" spellcheck="false" style="-webkit-user-drag: none; box-sizing: border-box; color: #4183c4; cursor: pointer;"><span class="md-plain" md-inline="plain" style="box-sizing: border-box;">docker checkpoint</span></a></span><span class="md-plain" md-inline="plain" style="box-sizing: border-box;"> create crea un punto de control desde un contenedor en ejecución.</span></p></li><li cid="n916" class="md-list-item" mdtype="list_item" style="box-sizing: border-box; margin: 0px; position: relative;"><p cid="n917" class="md-end-block md-p" mdtype="paragraph" style="box-sizing: border-box; line-height: inherit; margin: 0px 0px 0.5rem; orphans: 4; position: relative; white-space: pre-wrap;"><span class="md-meta-i-c md-link" md-inline="link" style="box-sizing: border-box;"><a href="https://docs.docker.com/buildx/working-with-buildx/" spellcheck="false" style="-webkit-user-drag: none; box-sizing: border-box; color: #4183c4; cursor: pointer;"><span class="md-plain" md-inline="plain" style="box-sizing: border-box;">docker buildx</span></a></span><span class="md-plain" md-inline="plain" style="box-sizing: border-box;"> es un complemento CLI que amplía el comando docker con las características (proporcionadas por </span><span class="md-meta-i-c md-link" md-inline="link" style="box-sizing: border-box;"><a href="https://github.com/moby/buildkit" spellcheck="false" style="-webkit-user-drag: none; box-sizing: border-box; color: #4183c4; cursor: pointer;"><span class="md-plain" md-inline="plain" style="box-sizing: border-box;">Moby BuildKit</span></a></span><span class="md-plain" md-inline="plain" style="box-sizing: border-box;"> ) como crear contenedores para distintas arquitecturas como ARM, compilar en varios nodos al mismo tiempo, recolección automática garaje, formatos frontend extensibles, importar / exportar caché de compilación y más.</span></p></li></ul><p cid="n918" class="md-end-block md-p" mdtype="paragraph" style="background-color: white; box-sizing: border-box; caret-color: rgb(51, 51, 51); color: #333333; font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: inherit; margin: 0.8em 0px; orphans: 4; position: relative; white-space: pre-wrap;"><span class="md-plain" md-inline="plain" style="box-sizing: border-box;">También debe tenerse en cuenta que algunos de los comandos experimentales están disponibles para el motor docker estándar, mientras que otros solo están disponibles para los motores docker-ce o docker-ee.</span></p><p cid="n919" class="md-end-block md-p" mdtype="paragraph" style="background-color: white; box-sizing: border-box; caret-color: rgb(51, 51, 51); color: #333333; font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: inherit; margin: 0.8em 0px; orphans: 4; position: relative; white-space: pre-wrap;"><span class="md-plain" md-inline="plain" style="box-sizing: border-box;">Y así es como puede acceder a las funciones experimentales de Docker.</span></p><p cid="n920" class="md-end-block md-p" mdtype="paragraph" style="background-color: white; box-sizing: border-box; caret-color: rgb(51, 51, 51); color: #333333; font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: inherit; margin: 0.8em 0px; orphans: 4; position: relative; white-space: pre-wrap;"></p><h1 cid="n921" class="md-end-block md-heading" mdtype="heading" style="background-color: white; border-bottom: 1px solid rgb(238, 238, 238); box-sizing: border-box; break-after: avoid-page; break-inside: avoid; caret-color: rgb(51, 51, 51); color: #333333; cursor: text; font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 2.25em; line-height: 1.2; margin-bottom: 1rem; margin-top: 1rem; orphans: 4; position: relative; white-space: pre-wrap;"><span class="md-plain" md-inline="plain" style="box-sizing: border-box;">Docker buildx </span></h1><p cid="n922" class="md-end-block md-p" mdtype="paragraph" style="background-color: white; box-sizing: border-box; caret-color: rgb(51, 51, 51); color: #333333; font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: inherit; margin: 0.8em 0px; orphans: 4; position: relative; white-space: pre-wrap;"><span class="md-plain" md-inline="plain" style="box-sizing: border-box;">[Crear images para distintas arquitecturas]</span></p><p cid="n922" class="md-end-block md-p" mdtype="paragraph" style="background-color: white; box-sizing: border-box; caret-color: rgb(51, 51, 51); color: #333333; font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: inherit; margin: 0.8em 0px; orphans: 4; position: relative; white-space: pre-wrap;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXwQEXxzxw-ePOg6vFqYehYBaJSNDbV83BdvBTs7Y0ppncIMweoOGS1ifjGc45L3B_apA0W8I_YrVXSVEaUtTJsetbj77YGB-5MNd-4s3CAa-kJA_cmjMwaV3yF4EICPDYEmn7CM9hmQ33/" style="font-family: monospace; margin-left: 1em; margin-right: 1em; text-align: center;"><img alt="" data-original-height="205" data-original-width="283" height="232" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXwQEXxzxw-ePOg6vFqYehYBaJSNDbV83BdvBTs7Y0ppncIMweoOGS1ifjGc45L3B_apA0W8I_YrVXSVEaUtTJsetbj77YGB-5MNd-4s3CAa-kJA_cmjMwaV3yF4EICPDYEmn7CM9hmQ33/" width="320" /></a></p><p cid="n924" class="md-end-block md-p" mdtype="paragraph" style="background-color: white; box-sizing: border-box; caret-color: rgb(51, 51, 51); color: #333333; font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: inherit; margin: 0.8em 0px; orphans: 4; position: relative; white-space: pre-wrap;"><span class="md-image md-img-loaded" data-src="compilacion-cruazada.png" md-inline="image" style="box-sizing: border-box; display: inline-block; font-family: monospace; min-height: 10px; min-width: 10px; position: relative; vertical-align: top; width: 964px; word-break: break-all;"><br /><br /></span></p><p cid="n925" class="md-end-block md-p" mdtype="paragraph" style="background-color: white; box-sizing: border-box; caret-color: rgb(51, 51, 51); color: #333333; font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: inherit; margin: 0.8em 0px; orphans: 4; position: relative; white-space: pre-wrap;"></p><p cid="n926" class="md-end-block md-p" mdtype="paragraph" style="background-color: white; box-sizing: border-box; caret-color: rgb(51, 51, 51); color: #333333; font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: inherit; margin: 0.8em 0px; orphans: 4; position: relative; white-space: pre-wrap;"><span class="md-plain" md-inline="plain" style="box-sizing: border-box;">Con la aparición de distintas arquitecturas Intel Arm y Darwin, podemos necesitar característica. </span></p><p cid="n927" class="md-end-block md-p" mdtype="paragraph" style="background-color: white; box-sizing: border-box; caret-color: rgb(51, 51, 51); color: #333333; font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: inherit; margin: 0.8em 0px; orphans: 4; position: relative; white-space: pre-wrap;"><span class="md-pair-s " md-inline="strong" style="box-sizing: border-box;"><strong style="box-sizing: border-box;">BuildKit</strong></span><span class="md-plain" md-inline="plain" style="box-sizing: border-box;"> está diseñado para crear contenedores para la construcción de múltiples plataformas y no solo para la arquitectura y el sistema operativo que el usuario que en la que se ejecuta la construcción.</span></p><p cid="n928" class="md-end-block md-p" mdtype="paragraph" style="background-color: white; box-sizing: border-box; caret-color: rgb(51, 51, 51); color: #333333; font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: inherit; margin: 0.8em 0px; orphans: 4; position: relative; white-space: pre-wrap;"><span class="md-plain" md-inline="plain" style="box-sizing: border-box;">En el momento de escribir este artículo (principios de 2021), buildx es una función experimental. Si intenta usarlo sin activar las funciones experimentales, fallará:</span></p><pre cid="n929" class="md-fences md-end-block ty-contain-cm modeLoaded" lang="shell" mdtype="fences" spellcheck="false" style="background-attachment: inherit; background-clip: inherit; background-color: #f8f8f8; background-image: inherit; background-origin: inherit; background-size: inherit; border-radius: 3px; border: 1px solid rgb(231, 234, 237); box-sizing: border-box; break-inside: avoid; caret-color: rgb(51, 51, 51); color: #333333; font-family: var(--monospace); font-size: 0.9em; margin-bottom: 15px; margin-top: 15px; overflow: visible; padding: 8px 4px 6px; position: relative !important; text-size-adjust: auto; white-space: normal; width: inherit;"><span role="presentation" style="box-sizing: border-box; padding-right: 0.1px;"><span class="cm-def" style="box-sizing: border-box; color: blue;">$ docker</span> buildx</span><br /><span role="presentation" style="box-sizing: border-box; padding-right: 0.1px;">docker: ‘buildx’ is not a docker command.</span><br /><span role="presentation" style="box-sizing: border-box; padding-right: 0.1px;">See ‘docker <span class="cm-attribute" style="box-sizing: border-box; color: #0000cc;">--help</span>’</span></pre><pre cid="n929" class="md-fences md-end-block ty-contain-cm modeLoaded" lang="shell" mdtype="fences" spellcheck="false" style="background-attachment: inherit; background-clip: inherit; background-color: #f8f8f8; background-image: inherit; background-origin: inherit; background-size: inherit; border-radius: 3px; border: 1px solid rgb(231, 234, 237); box-sizing: border-box; break-inside: avoid; caret-color: rgb(51, 51, 51); color: #333333; font-family: var(--monospace); font-size: 0.9em; margin-bottom: 15px; margin-top: 15px; overflow: visible; padding: 8px 4px 6px; position: relative !important; text-size-adjust: auto; white-space: normal; width: inherit;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSLNIImd4HwpzozErg_LpWLrf7mu2liwqlBnE7FsGjmtKKoBHDzrH20yWXQEuK402eE3ni9GKXyJ8ylD9nWudmuvDnVYwUfCsKRJi6gsYO3v7MkYyVcLcUmRat7d8jJw7CYAR4bjRgMxrJ/" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="515" data-original-width="472" height="607" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSLNIImd4HwpzozErg_LpWLrf7mu2liwqlBnE7FsGjmtKKoBHDzrH20yWXQEuK402eE3ni9GKXyJ8ylD9nWudmuvDnVYwUfCsKRJi6gsYO3v7MkYyVcLcUmRat7d8jJw7CYAR4bjRgMxrJ/w556-h607/modo-temporal.png" width="556" /></a></pre><p cid="n930" class="md-end-block md-p" mdtype="paragraph" style="background-color: white; box-sizing: border-box; caret-color: rgb(51, 51, 51); color: #333333; font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: inherit; margin: 0.8em 0px; orphans: 4; position: relative; white-space: pre-wrap;"><span class="md-image md-img-loaded" data-src="docker-buildx-ok.png" md-inline="image" style="box-sizing: border-box; display: inline-block; font-family: monospace; min-height: 10px; min-width: 10px; position: relative; vertical-align: top; width: 964px; word-break: break-all;"><br /><br /></span></p><p cid="n931" class="md-end-block md-p" mdtype="paragraph" style="background-color: white; box-sizing: border-box; caret-color: rgb(51, 51, 51); color: #333333; font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: inherit; margin: 0.8em 0px; orphans: 4; position: relative; white-space: pre-wrap;"><span class="md-plain" md-inline="plain" style="box-sizing: border-box;">Cuando ejecuta </span><span class="md-pair-s " md-inline="strong" style="box-sizing: border-box;"><strong style="box-sizing: border-box;">"buildx"</strong></span><span class="md-plain" md-inline="plain" style="box-sizing: border-box;">, puede establecer la marca </span><span class="md-pair-s" md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="background-color: #f3f4f4; border-radius: 3px; border: 1px solid rgb(231, 234, 237); box-sizing: border-box; font-family: var(--monospace); font-size: 0.9em; padding: 0px 2px;">--platfor</code></span><span class="md-plain" md-inline="plain" style="box-sizing: border-box;"> para especificar la plataforma de destino para la salida de compilación (por ejemplo, `linux/amd6 linux/arm64 o darwin/amd64´.</span></p><p cid="n932" class="md-end-block md-p" mdtype="paragraph" style="background-color: white; box-sizing: border-box; caret-color: rgb(51, 51, 51); color: #333333; font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: inherit; margin: 0.8em 0px; orphans: 4; position: relative; white-space: pre-wrap;"><span class="md-plain" md-inline="plain" style="box-sizing: border-box;">Puedes crear imágenes multiplataforma utilizando tres formas diferentes que son compatibles con Buildx y Dockerfiles:</span></p><p cid="n933" class="md-end-block md-p" mdtype="paragraph" style="background-color: white; box-sizing: border-box; caret-color: rgb(51, 51, 51); color: #333333; font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: inherit; margin: 0.8em 0px; orphans: 4; position: relative; white-space: pre-wrap;"><span class="md-plain" md-inline="plain" style="box-sizing: border-box;">Dependiendo del proyecto, y la tecnología de su lenguaje que utilice puede tener un soporte para la compilación cruzada. </span></p><p cid="n934" class="md-end-block md-p" mdtype="paragraph" style="background-color: white; box-sizing: border-box; caret-color: rgb(51, 51, 51); color: #333333; font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: inherit; margin: 0.8em 0px; orphans: 4; position: relative; white-space: pre-wrap;"><span class="md-plain" md-inline="plain" style="box-sizing: border-box;">Suponiendo que los contextos node-amd64 y node-arm64 existen en el</span></p><p cid="n935" class="md-end-block md-p" mdtype="paragraph" style="background-color: white; box-sizing: border-box; caret-color: rgb(51, 51, 51); color: #333333; font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: inherit; margin: 0.8em 0px; orphans: 4; position: relative; white-space: pre-wrap;"><span class="md-pair-s" md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="background-color: #f3f4f4; border-radius: 3px; border: 1px solid rgb(231, 234, 237); box-sizing: border-box; font-family: var(--monospace); font-size: 0.9em; padding: 0px 2px;">docker context ls</code></span></p><pre cid="n936" class="md-fences md-end-block ty-contain-cm modeLoaded" lang="shell" mdtype="fences" spellcheck="false" style="background-attachment: inherit; background-clip: inherit; background-color: #f8f8f8; background-image: inherit; background-origin: inherit; background-size: inherit; border-radius: 3px; border: 1px solid rgb(231, 234, 237); box-sizing: border-box; break-inside: avoid; caret-color: rgb(51, 51, 51); color: #333333; font-family: var(--monospace); font-size: 0.9em; margin-bottom: 15px; margin-top: 15px; overflow: visible; padding: 8px 4px 6px; position: relative !important; text-size-adjust: auto; white-space: normal; width: inherit;"><span role="presentation" style="box-sizing: border-box; padding-right: 0.1px;"> <span class="cm-def" style="box-sizing: border-box; color: blue;">$ docker</span> buildx create <span class="cm-attribute" style="box-sizing: border-box; color: #0000cc;">--use</span> <span class="cm-attribute" style="box-sizing: border-box; color: #0000cc;">--name</span> mybuild node-amd64</span><br /><span role="presentation" style="box-sizing: border-box; padding-right: 0.1px;"> <span class="cm-def" style="box-sizing: border-box; color: blue;">$ docker</span> buildx create <span class="cm-attribute" style="box-sizing: border-box; color: #0000cc;">--append</span> <span class="cm-attribute" style="box-sizing: border-box; color: #0000cc;">--name</span> mybuild node-arm64</span><br /><span role="presentation" style="box-sizing: border-box; padding-right: 0.1px;"> <span class="cm-def" style="box-sizing: border-box; color: blue;">$ docker</span> buildx build <span class="cm-attribute" style="box-sizing: border-box; color: #0000cc;">--platform</span> linux/amd64,linux/arm64 .</span></pre><p cid="n937" class="md-end-block md-p" mdtype="paragraph" style="background-color: white; box-sizing: border-box; caret-color: rgb(51, 51, 51); color: #333333; font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: inherit; margin: 0.8em 0px; orphans: 4; position: relative; white-space: pre-wrap;"><span class="md-plain" md-inline="plain" style="box-sizing: border-box;">En ese caso, las compilaciones de múltiples etapas en los ficheros para usar en la contruccion "Dockerfiles" se pueden usar de manera efectiva para compilar binarios para la plataforma especificada con --platfor utilizando la arquitectura nativa del nodo de compilación. Una lista de argumentos de compilación como BUILDPLATFOR y TARGETPLATFOR está disponible automáticamente dentro de su Dockerfile y puede ser aprovechada por los procesos que se ejecutan como parte de su compilación.</span></p><pre cid="n938" class="md-fences md-end-block ty-contain-cm modeLoaded" lang="" mdtype="fences" spellcheck="false" style="background-attachment: inherit; background-clip: inherit; background-color: #f8f8f8; background-image: inherit; background-origin: inherit; background-size: inherit; border-radius: 3px; border: 1px solid rgb(231, 234, 237); box-sizing: border-box; break-inside: avoid; caret-color: rgb(51, 51, 51); color: #333333; font-family: var(--monospace); font-size: 0.9em; margin-bottom: 15px; margin-top: 15px; overflow: visible; padding: 8px 4px 6px; position: relative !important; text-size-adjust: auto; white-space: normal; width: inherit;"><span role="presentation" style="box-sizing: border-box; padding-right: 0.1px;"># syntax=docker/dockerfile:syntax=docker/dockerfile:`1</span><br /><span role="presentation" style="box-sizing: border-box; padding-right: 0.1px;">FROM --platform=$BUILDPLATFORM golang:alpine AS build</span><br /><span role="presentation" style="box-sizing: border-box; padding-right: 0.1px;">ARG TARGETPLATFORM</span><br /><span role="presentation" style="box-sizing: border-box; padding-right: 0.1px;">ARG BUILDPLATFORM</span><br /><span role="presentation" style="box-sizing: border-box; padding-right: 0.1px;">RUN echo "I am running on $BUILDPLATFORM, building for $TARGETPLATFORM" > /log</span><br /><span role="presentation" style="box-sizing: border-box; padding-right: 0.1px;">FROM alpine</span><br /><span role="presentation" style="box-sizing: border-box; padding-right: 0.1px;">COPY --from=build /log /log</span></pre><p cid="n939" class="md-end-block md-p" mdtype="paragraph" style="background-color: white; box-sizing: border-box; caret-color: rgb(51, 51, 51); color: #333333; font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: inherit; margin: 0.8em 0px; orphans: 4; position: relative; white-space: pre-wrap;"></p><h3 cid="n940" class="md-end-block md-heading" mdtype="heading" style="background-color: white; box-sizing: border-box; break-after: avoid-page; break-inside: avoid; caret-color: rgb(51, 51, 51); color: #333333; cursor: text; font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 1.5em; line-height: 1.43; margin-bottom: 1rem; margin-top: 1rem; orphans: 4; position: relative; white-space: pre-wrap;"><span class="md-plain" md-inline="plain" style="box-sizing: border-box;">Creando un Build con Buildx</span></h3><p cid="n941" class="md-end-block md-p" mdtype="paragraph" style="background-color: white; box-sizing: border-box; caret-color: rgb(51, 51, 51); color: #333333; font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: inherit; margin: 0.8em 0px; orphans: 4; position: relative; white-space: pre-wrap;"><span class="md-plain" md-inline="plain" style="box-sizing: border-box;">Usando CLI con docker necesitamos crear una nueva instancia de constructor que buildx pueda usar:</span></p><pre cid="n942" class="md-fences mock-cm md-end-block" lang="shell" mdtype="fences" spellcheck="false" style="background-attachment: inherit; background-clip: inherit; background-color: #f8f8f8; background-image: inherit; background-origin: inherit; background-size: inherit; border-radius: 3px; border: 1px solid rgb(231, 234, 237); box-sizing: border-box; break-inside: avoid; caret-color: rgb(51, 51, 51); color: #333333; font-family: var(--monospace); font-size: 0.9em; margin-bottom: 15px; margin-top: 15px; overflow: visible; padding: 8px 4px 6px; position: relative !important; text-size-adjust: auto; white-space: pre-wrap; width: inherit;">$ docker buildx create --name mybuilder
mybuilder
$ docker buildx use mybuilder</pre><p cid="n944" class="md-end-block md-p" mdtype="paragraph" style="background-color: white; box-sizing: border-box; caret-color: rgb(51, 51, 51); color: #333333; font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: inherit; margin: 0.8em 0px; orphans: 4; position: relative; white-space: pre-wrap;"><span class="md-plain" md-inline="plain" style="box-sizing: border-box;">Podemos ver que esta funcionando perfectamente:</span></p><p cid="n945" class="md-end-block md-p" mdtype="paragraph" style="background-color: white; box-sizing: border-box; caret-color: rgb(51, 51, 51); color: #333333; font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: inherit; margin: 0.8em 0px; orphans: 4; position: relative; white-space: pre-wrap;"><span class="md-pair-s" md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="background-color: #f3f4f4; border-radius: 3px; border: 1px solid rgb(231, 234, 237); box-sizing: border-box; font-family: var(--monospace); font-size: 0.9em; padding: 0px 2px;">$ docker buildx inspect --bootstrap</code></span></p><p cid="n946" class="md-end-block md-p" mdtype="paragraph" style="background-color: white; box-sizing: border-box; caret-color: rgb(51, 51, 51); color: #333333; font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: inherit; margin: 0.8em 0px; orphans: 4; position: relative; white-space: pre-wrap;"><span class="md-plain" md-inline="plain" style="box-sizing: border-box;">Podemos ver en la salida.</span></p><p cid="n946" class="md-end-block md-p" mdtype="paragraph" style="background-color: white; box-sizing: border-box; caret-color: rgb(51, 51, 51); color: #333333; font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: inherit; margin: 0.8em 0px; orphans: 4; position: relative; white-space: pre-wrap;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpwBeD1P7TuC9IKjAeYEvSCGMpxz6fqiALelwqTCVdKtUPhaDpxBa6e-jhI8Gtvpn2fKbmESg7sdeu9deO_KG_gtJWyqJewUPptrteWKn9qQEDmXqooBRI1T8xFFqS2qhneHZBqoAApMJQ/" style="font-family: monospace; margin-left: 1em; margin-right: 1em; text-align: center;"><img alt="" data-original-height="361" data-original-width="1011" height="231" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpwBeD1P7TuC9IKjAeYEvSCGMpxz6fqiALelwqTCVdKtUPhaDpxBa6e-jhI8Gtvpn2fKbmESg7sdeu9deO_KG_gtJWyqJewUPptrteWKn9qQEDmXqooBRI1T8xFFqS2qhneHZBqoAApMJQ/w648-h231/buildx-inspect--bootstrap.png" width="648" /></a></p><p cid="n947" class="md-end-block md-p" mdtype="paragraph" style="background-color: white; box-sizing: border-box; caret-color: rgb(51, 51, 51); color: #333333; font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: inherit; margin: 0.8em 0px; orphans: 4; position: relative; white-space: pre-wrap;"><span class="md-image md-img-loaded" data-src="/Users/wbug/Documents/repositorios/docker-formacion/formacion/09-Docker-Engine-SDKs-and-API/buildx-inspect--bootstrap.png" md-inline="image" style="box-sizing: border-box; display: inline-block; font-family: monospace; min-height: 10px; min-width: 10px; position: relative; vertical-align: top; width: 964px; word-break: break-all;"><br /></span></p><p cid="n948" class="md-end-block md-p" mdtype="paragraph" style="background-color: white; box-sizing: border-box; caret-color: rgb(51, 51, 51); color: #333333; font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: inherit; margin: 0.8em 0px; orphans: 4; position: relative; white-space: pre-wrap;"><span class="md-plain" md-inline="plain" style="box-sizing: border-box;">Fijate en la ultima línea.</span></p><h5 cid="n949" class="md-end-block md-heading" mdtype="heading" style="background-color: white; box-sizing: border-box; break-after: avoid-page; break-inside: avoid; caret-color: rgb(51, 51, 51); color: #333333; cursor: text; font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 1em; line-height: 1.4; margin-bottom: 1rem; margin-top: 1rem; orphans: 4; position: relative; white-space: pre-wrap;"><span class="md-plain" md-inline="plain" style="box-sizing: border-box;">Usando build con buildx</span></h5><p cid="n950" class="md-end-block md-p" mdtype="paragraph" style="background-color: white; box-sizing: border-box; caret-color: rgb(51, 51, 51); color: #333333; font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: inherit; margin: 0.8em 0px; orphans: 4; position: relative; white-space: pre-wrap;"><span class="md-plain" md-inline="plain" style="box-sizing: border-box;">Ya podemos crear imágenes de Docker de arquitectura múltiple con buildx. Para tener algo concreto con lo que trabajar, usaremos el siguiente ejemplo de este Dockerfile:</span></p><pre cid="n951" class="md-fences md-end-block ty-contain-cm modeLoaded" lang="" mdtype="fences" spellcheck="false" style="background-attachment: inherit; background-clip: inherit; background-color: #f8f8f8; background-image: inherit; background-origin: inherit; background-size: inherit; border-radius: 3px; border: 1px solid rgb(231, 234, 237); box-sizing: border-box; break-inside: avoid; caret-color: rgb(51, 51, 51); color: #333333; font-family: var(--monospace); font-size: 0.9em; margin-bottom: 15px; margin-top: 15px; overflow: visible; padding: 8px 4px 6px; position: relative !important; text-size-adjust: auto; white-space: normal; width: inherit;"><span role="presentation" style="box-sizing: border-box; padding-right: 0.1px;">FROM alpine:latest</span><br /><span role="presentation" style="box-sizing: border-box; padding-right: 0.1px;">CMD echo “Running on $(uname -m)”</span></pre><p cid="n952" class="md-end-block md-p" mdtype="paragraph" style="background-color: white; box-sizing: border-box; caret-color: rgb(51, 51, 51); color: #333333; font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: inherit; margin: 0.8em 0px; orphans: 4; position: relative; white-space: pre-wrap;"><span class="md-plain" md-inline="plain" style="box-sizing: border-box;">Ahora autenticaremos para dejar las imágenes en nuestro repositorio, este caso usare Docker hub </span><span class="md-link md-pair-s" md-inline="url" spellcheck="false" style="box-sizing: border-box; word-break: break-all;"><a href="https://hub.docker.com/" style="-webkit-user-drag: none; box-sizing: border-box; color: #4183c4; cursor: pointer;">https://hub.docker.com/</a></span></p><p cid="n953" class="md-end-block md-p" mdtype="paragraph" style="background-color: white; box-sizing: border-box; caret-color: rgb(51, 51, 51); color: #333333; font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: inherit; margin: 0.8em 0px; orphans: 4; position: relative; white-space: pre-wrap;"><span class="md-plain" md-inline="plain" style="box-sizing: border-box;">´docker login -u marioezquerro´</span></p><p cid="n954" class="md-end-block md-p" mdtype="paragraph" style="background-color: white; box-sizing: border-box; caret-color: rgb(51, 51, 51); color: #333333; font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: inherit; margin: 0.8em 0px; orphans: 4; position: relative; white-space: pre-wrap;"><span class="md-plain" md-inline="plain" style="box-sizing: border-box;">Nos pedirá la contraseña, si todo es correcto tendremos un "Login Succeeded"</span></p><p cid="n955" class="md-end-block md-p" mdtype="paragraph" style="background-color: white; box-sizing: border-box; caret-color: rgb(51, 51, 51); color: #333333; font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: inherit; margin: 0.8em 0px; orphans: 4; position: relative; white-space: pre-wrap;"><span class="md-plain" md-inline="plain" style="box-sizing: border-box;">Ahora podemos crear las imágenes y subirlas al repositorio.</span></p><pre cid="n956" class="md-fences md-end-block ty-contain-cm modeLoaded" lang="shell" mdtype="fences" spellcheck="false" style="background-attachment: inherit; background-clip: inherit; background-color: #f8f8f8; background-image: inherit; background-origin: inherit; background-size: inherit; border-radius: 3px; border: 1px solid rgb(231, 234, 237); box-sizing: border-box; break-inside: avoid; caret-color: rgb(51, 51, 51); color: #333333; font-family: var(--monospace); font-size: 0.9em; margin-bottom: 15px; margin-top: 15px; overflow: visible; padding: 8px 4px 6px; position: relative !important; text-size-adjust: auto; white-space: normal; width: inherit;"><span role="presentation" style="box-sizing: border-box; padding-right: 0.1px;"><span class="cm-def" style="box-sizing: border-box; color: blue;">$ docker</span> buildx build <span class="cm-attribute" style="box-sizing: border-box; color: #0000cc;">-t</span> mario.ezquerro/buildx-test:latest <span class="cm-attribute" style="box-sizing: border-box; color: #0000cc;">--platform</span> linux/amd64,linux/arm64,linux/ppc64le <span class="cm-attribute" style="box-sizing: border-box; color: #0000cc;">--push</span> .</span></pre><p cid="n957" class="md-end-block md-p" mdtype="paragraph" style="background-color: white; box-sizing: border-box; caret-color: rgb(51, 51, 51); color: #333333; font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: inherit; margin: 0.8em 0px; orphans: 4; position: relative; white-space: pre-wrap;"><span class="md-plain" md-inline="plain" style="box-sizing: border-box;">Si todo es correcto veremos la salia y la subida en el repositorio.</span></p><p cid="n957" class="md-end-block md-p" mdtype="paragraph" style="background-color: white; box-sizing: border-box; caret-color: rgb(51, 51, 51); color: #333333; font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: inherit; margin: 0.8em 0px; orphans: 4; position: relative; white-space: pre-wrap;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhW1iDH7xHRmuHXdv1sgJuApDPrbuPx3AieaTYNEcs9c748izRr1fzIX5XI0ko5WLYdSU6MViUcxtnEtactvfxow9pe3jyDT3QAZvCNaK8oDTS48Q0VmtXrkz-XXjOyNCqqucLrRj-yS3k1/" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="565" data-original-width="1264" height="289" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhW1iDH7xHRmuHXdv1sgJuApDPrbuPx3AieaTYNEcs9c748izRr1fzIX5XI0ko5WLYdSU6MViUcxtnEtactvfxow9pe3jyDT3QAZvCNaK8oDTS48Q0VmtXrkz-XXjOyNCqqucLrRj-yS3k1/w646-h289/buildx-buid.png" width="646" /></a></p><p cid="n958" class="md-end-block md-p" mdtype="paragraph" style="background-color: white; box-sizing: border-box; caret-color: rgb(51, 51, 51); color: #333333; font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: inherit; margin: 0.8em 0px; orphans: 4; position: relative; white-space: pre-wrap;"><span class="md-image md-img-loaded" data-src="buildx-buid.png" md-inline="image" style="box-sizing: border-box; display: inline-block; font-family: monospace; min-height: 10px; min-width: 10px; position: relative; vertical-align: top; width: 964px; word-break: break-all;"><br /><br /></span></p><p cid="n959" class="md-end-block md-p" mdtype="paragraph" style="background-color: white; box-sizing: border-box; caret-color: rgb(51, 51, 51); color: #333333; font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: inherit; margin: 0.8em 0px; orphans: 4; position: relative; white-space: pre-wrap;"></p><p cid="n960" class="md-end-block md-p" mdtype="paragraph" style="background-color: white; box-sizing: border-box; caret-color: rgb(51, 51, 51); color: #333333; font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: inherit; margin: 0.8em 0px; orphans: 4; position: relative; white-space: pre-wrap;"><span class="md-plain" md-inline="plain" style="box-sizing: border-box;">Nos encontraremos las imágenes en el repositorio las imágenes para las distintas plataformas creadas.</span></p><p cid="n960" class="md-end-block md-p" mdtype="paragraph" style="background-color: white; box-sizing: border-box; caret-color: rgb(51, 51, 51); color: #333333; font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: inherit; margin: 0.8em 0px; orphans: 4; position: relative; white-space: pre-wrap;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgiiSu9GditaMHxHGPxX7nkdXjO_cO5-K0XA8K34yt25bUAVyFZ-Vb1dCg5GrJcHQIaOGSWvE3Zh3JwiCvReuT8_dX5SrSITF2J4rT3z9IaX1kOfz6K45BSN7GsAq-FAZfRjmNr4vhPa69o/" style="font-family: monospace; margin-left: 1em; margin-right: 1em; text-align: center;"><img alt="" data-original-height="658" data-original-width="1296" height="329" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgiiSu9GditaMHxHGPxX7nkdXjO_cO5-K0XA8K34yt25bUAVyFZ-Vb1dCg5GrJcHQIaOGSWvE3Zh3JwiCvReuT8_dX5SrSITF2J4rT3z9IaX1kOfz6K45BSN7GsAq-FAZfRjmNr4vhPa69o/w650-h329/imagenes-creadas.png" width="650" /></a></p><p cid="n961" class="md-end-block md-p" mdtype="paragraph" style="background-color: white; box-sizing: border-box; caret-color: rgb(51, 51, 51); color: #333333; font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: inherit; margin: 0.8em 0px; orphans: 4; position: relative; white-space: pre-wrap;"><span class="md-image md-img-loaded" data-src="imagenes-creadas.png" md-inline="image" style="box-sizing: border-box; display: inline-block; font-family: monospace; min-height: 10px; min-width: 10px; position: relative; vertical-align: top; width: 964px; word-break: break-all;"><br /><br /></span></p><p cid="n962" class="md-end-block md-p" mdtype="paragraph" style="background-color: white; box-sizing: border-box; caret-color: rgb(51, 51, 51); color: #333333; font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: inherit; margin: 0.8em 0px; orphans: 4; position: relative; white-space: pre-wrap;"></p><p cid="n963" class="md-end-block md-p" mdtype="paragraph" style="background-color: white; box-sizing: border-box; caret-color: rgb(51, 51, 51); color: #333333; font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: inherit; margin: 0.8em 0px; orphans: 4; position: relative; white-space: pre-wrap;"><span class="md-plain" md-inline="plain" style="box-sizing: border-box;">Bueno ya podemos usar esta imagen.</span></p><pre cid="n964" class="md-fences md-end-block ty-contain-cm modeLoaded" lang="shell" mdtype="fences" spellcheck="false" style="background-attachment: inherit; background-clip: inherit; background-color: #f8f8f8; background-image: inherit; background-origin: inherit; background-size: inherit; border-radius: 3px; border: 1px solid rgb(231, 234, 237); box-sizing: border-box; break-inside: avoid; caret-color: rgb(51, 51, 51); color: #333333; font-family: var(--monospace); font-size: 0.9em; margin-bottom: 15px; margin-top: 15px; overflow: visible; padding: 8px 4px 6px; position: relative !important; text-size-adjust: auto; white-space: normal; width: inherit;"><span role="presentation" style="box-sizing: border-box; padding-right: 0.1px;"><span class="cm-def" style="box-sizing: border-box; color: blue;">$ docker</span> run <span class="cm-attribute" style="box-sizing: border-box; color: #0000cc;">--rm</span> marioezquerro/buildx-test:latest</span><br /><span role="presentation" style="box-sizing: border-box; padding-right: 0.1px;">Unable to <span class="cm-builtin" style="box-sizing: border-box; color: #3300aa;">find</span> image <span class="cm-string" style="box-sizing: border-box; color: #aa1111;">'marioezquerro/buildx-test:latest'</span> locally</span><br /><span role="presentation" style="box-sizing: border-box; padding-right: 0.1px;">latest: Pulling from marioezquerro/buildx-test</span><br /><span role="presentation" style="box-sizing: border-box; padding-right: 0.1px;">540db60ca938: Already exists</span><br /><span role="presentation" style="box-sizing: border-box; padding-right: 0.1px;">Digest: sha256:02db0fb4ab93de95b50b31031e886f435e731af71b0cf297976fbde3ab073b1d</span><br /><span role="presentation" style="box-sizing: border-box; padding-right: 0.1px;">Status: Downloaded newer image <span class="cm-keyword" style="box-sizing: border-box; color: #770088;">for</span> marioezquerro/buildx-test:latest</span><br /><span role="presentation" style="box-sizing: border-box; padding-right: 0.1px;">“Running on x86_64”</span></pre><p cid="n965" class="md-end-block md-p" mdtype="paragraph" style="background-color: white; box-sizing: border-box; caret-color: rgb(51, 51, 51); color: #333333; font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: inherit; margin: 0.8em 0px; orphans: 4; position: relative; white-space: pre-wrap;"><span class="md-plain" md-inline="plain" style="box-sizing: border-box;">Tambien podemos analizar la arquetectura en mi caso es un Mac con i5</span></p><pre cid="n966" class="md-fences md-end-block ty-contain-cm modeLoaded" lang="shell" mdtype="fences" spellcheck="false" style="background-attachment: inherit; background-clip: inherit; background-color: #f8f8f8; background-image: inherit; background-origin: inherit; background-size: inherit; border-radius: 3px; border: 1px solid rgb(231, 234, 237); box-sizing: border-box; break-inside: avoid; caret-color: rgb(51, 51, 51); color: #333333; font-family: var(--monospace); font-size: 0.9em; margin-bottom: 15px; margin-top: 15px; overflow: visible; padding: 8px 4px 6px; position: relative !important; text-size-adjust: auto; white-space: normal; width: inherit;"><span role="presentation" style="box-sizing: border-box; padding-right: 0.1px;"><span class="cm-def" style="box-sizing: border-box; color: blue;">$ docker</span> inspect <span class="cm-attribute" style="box-sizing: border-box; color: #0000cc;">--format</span> “{{.Architecture}}” marioezquerro/buildx-test:latest</span><br /><span role="presentation" style="box-sizing: border-box; padding-right: 0.1px;"><span class="cm-string" style="box-sizing: border-box; color: #aa1111;">"amd64"</span></span><br /><span role="presentation" style="box-sizing: border-box; padding-right: 0.1px;"><span cm-text="" style="box-sizing: border-box;"></span></span><br /><span role="presentation" style="box-sizing: border-box; padding-right: 0.1px;"><span class="cm-def" style="box-sizing: border-box; color: blue;">$ docker</span> run <span class="cm-attribute" style="box-sizing: border-box; color: #0000cc;">--rm</span> <span class="cm-attribute" style="box-sizing: border-box; color: #0000cc;">--platform</span> linux/aarch64 marioezquerro/buildx-test:latest”</span><br /><span role="presentation" style="box-sizing: border-box; padding-right: 0.1px;">“Running on x86_64”</span></pre><div><span role="presentation" style="box-sizing: border-box; padding-right: 0.1px;"><br /></span></div>Mario Ezquerro Saenzhttp://www.blogger.com/profile/13268821028089033812noreply@blogger.com0tag:blogger.com,1999:blog-8533221626657735040.post-49744833523671468002021-03-17T20:30:00.003+00:002021-03-17T20:30:27.374+00:00Nuevo podcast T1-03<p>El viernes 19 de marzo a las 19:00 tendréis el nuevo podcast, (ya era hora).</p><p>Hablaremos de lo humano y divino, del los backups y de los incendios, y te recordamos que si estas preparado no debería ser un problema.</p><p><br /></p><div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen="" class="BLOG_video_class" height="266" src="https://www.youtube.com/embed/4HWdAwZ6IzM" width="486" youtube-src-id="4HWdAwZ6IzM"></iframe></div><p></p><p><br /></p><p>Esperamos que te guste.<br /></p>Mario Ezquerro Saenzhttp://www.blogger.com/profile/13268821028089033812noreply@blogger.com0