Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Administración Docker Setiembre 2019 Josua Castro V. CURSO DOCKER Setiembre 2019 ADMINISTRACIÓN DE DOCKERS Y KUBERNETES Josua Castro Servicios Gestión de Monitoreo APM de Aplicaciones Gestión del ciclo de Vida y Automatización de Plataforma Consolidación y Virtualización de Servidores Clustering de Aplicaciones Web y BD Gestión de Plataforma de Aplicaciones con OpenShift Integración y Entrega Continua con Jenkins Gestión de Contenedores y Orquestación Monitoreo de Infraestructura y Aplicaciones con ELK Servicios de Soporte Presencial y Remoto Introducción a Contenedores Docker Trabajando con Docker Creación y Administración de Imágenes con Docker Creación y Administración de Volúmenes Introducción a Kubernetes Instalación de Kubernetes Clúster y Orquestación de Contenedores Despliegue, Actualización y Seguridad en Kubernetes Monitoreo y Supervisión Kubernetes sobre AWS Agenda Introducción a Contenedores Docker Trabajando con Docker Creación y Administración de Imágenes con Docker Creación y Administración de Volúmenes Introducción a Kubernetes Instalación de Kubernetes Clúster y Orquestación de Contenedores Despliegue, Actualización y Seguridad en Kubernetes Monitoreo y Supervisión Kubernetes sobre AWS Agenda Introducción a Contenedores Docker es sin duda la tecnología más popular en estos días en el mundo de las Tecnologías de la Información. Es una plataforma de código abierto Fundada por Solomon Hykes. Comenzó como PaaS Llamada dotCloud dotCloud internamente construía contenedores en Linux y esa práctica fue llamada docker En el 2013 fue el termino de dotCloud e inicio de Docker Inc. Docker es una plataforma que permite desplegar aplicaciones en contenedores, de forma rápida y portable Qué es Docker? Aplicación de bolsillo. Desplegar y escalar aplicaciones. Destruir y recrear. Docker es una plataforma de software que le permite crear, probar e implementar aplicaciones rápidamente Qué es Docker? La idea detrás de Docker es crear contenedores ligeros y portables para las aplicaciones software que puedan ejecutarse en cualquier máquina con Docker instalado, independientemente del sistema operativo que la máquina tenga por debajo, facilitando así también los despliegues. Docker nos ayuda a no malgastar nuestro tiempo configurando el entorno y las dependencias del sistema, porque lo vamos a poder desplegar fácilmente. Algo muy útil tanto para grandes empresas, como Red Hat o Google, como para las pequeñas startups que empiezan a desarrollar su aplicación. Docker está transformando la forma en que se desarrolla, distribuye y ejecuta el software Características y Componentes? Docker es un proyecto de código abierto con el que fácilmente podremos crear "contenedores". Estos contenedores de Docker podríamos definirlos como máquinas virtuales ligeras. Las características principales de estos contenedores son: Portabilidad: Desplegable en cualquier otro sistema que soporte esta tecnología. Ligereza: El tamaño de este sistema no tiene comparación con cualquier otro sistema. Autosuficiencia: El contenedor Docker contiene librerías, archivos y configuraciones necesarias para desplegar las funcionalidades que contenga. Fiabilidad Multitud de Despliegue Liviano Docker permite la creación de contenedores livianos Características y Componentes? Docker, se compone de tres elementos fundamentales: Docker Container: Contiene todo lo necesario para que un aplicación pueda funcionar. Docker Images: Podemos entenderlo como un sistema operativo con aplicaciones instaladas. Docker Registry: Contienen imágenes creadas que están disponibles en repositorios públicos Docker permite la creación de contenedores livianos Arquitectura Docker Docker Host Arquitectura Docker En la capa inferior se tiene el sistema operativo Linux (NameSpaces processID, Network, Cgroups) En la capa media se tiene el “Container Runtime”. Containerd, runc, encargado de todo el ciclo de vida del contenedor. En la capa superior el Docker Engine. Proporciona la capacidad de integrarse y soporte a nuevos plugins, bibliotecas de red y una interfaz REST, para automatizar todas las operaciones del contenedor. Diagrama de arquitectura de Docker Engine Arquitectura Docker Donde el cliente Docker, le pide al Docker daemon vía Sockets o RESTful que construya, ejecute y distribuya los contenedores Docker Docker BUILD, PULL and RUN Arquitectura Docker Docker Images, se crean a partir de dockerfiles, unión de FileSystem y otras capas, Docker Registries, Almacena imágenes de docker. Docker Containers, entornos de aplicaciones virtualizadas que se ejecutan en un Host Docker aislado. Dockerfiles, instrucciones para la creación de una imagen. Docker Host, Host Linux server físico o virtual. Docker Client, utilidad de línea de comandos. Docker Beneficios e Importancia de Docker Docker permite ahorrar y acelerar el proceso de desarrollo Beneficios: Retorno de la inversión y ahorro de costos. Estandarización y productividad. Eficiencia de CI. Compatibilidad y mantenibilidad. Simplicidad y configuraciones más rápidas. Despliegue rápido. Despliegue continuo y pruebas. Plataformas multi-nube Automatización. Beneficios e Importancia de Docker Importancia: En estos días, el tiempo entre las nuevas versiones de una aplicación se vuelven cada vez más cortas, sin embargo, el software en sí no se simplifica. Por el contrario, los proyectos de software aumentan en complejidad. Los operadores finalmente pueden concentrarse en aquello en lo que son realmente buenos, aprovisionar infraestructura, ejecutar y monitorear aplicaciones en producción. Los contenedores facilitan la simulación de un entorno similar a la producción. Beneficios e Importancia de Docker Seguridad: Los proyectos de software aumentan en complejidad, Por lo tanto, necesitamos una forma de acelerar y simplificar la cadena de suministro de software. También escuchamos todos los días cuánto aumentan los delitos cibernéticos. Muchas empresas son afectadas por violaciones de seguridad, datos de clientes altamente confidenciales son robados, como números de seguridad social, información de tarjetas de crédito y más. Pero no solo se comprometen los datos de los clientes, también se roban los secretos confidenciales de la empresa. Gartner ha encontrado en un informe reciente que las aplicaciones que se ejecutan en un contenedor son más seguras que sus contrapartes. Beneficios e Importancia de Docker Seguridad: El Kernel de Linux, permite utilizar Cgroups, ya que permite asignar recursos en sus servidores de una manera muy detallada, Ecosistema Docker Containerization vs Virtualization Los contenedores no usan un hipervisor para proporcionar el aislamiento. Docker utiliza capacidades de aislamiento de procesos y filesystem del kernel Linux. Los contenedores no requieren disco para el sistema operativo. Tiempos de inicio significativamente bajos. Velocidad con la que el contenedor puede desarrollar, componer y empaquetar aplicaciones. Ahorro notable de recurso de TI, ya que consumen menos espacio de memoria. Containerization vs Virtualization No hay necesidad de sistema operativo. Tamaño de imágenes mínimos. Containerization Configuración de Ambiente Public/Private/Hybrid Cloud Bare Metal Containers Virtualization Productos Docker Docker Community Edition (CE) que es de código cerrado pero completamente gratuita, son productos como Docker Toolbox, Docker para Mac y Docker para Windows. Todos estos tres productos están dirigidos principalmente a desarrolladores. Ideal para desarrolladores y pequeños equipos que buscan comenzar con Docker y experimentar con aplicaciones basadas en contenedores. Docker CE disponible para múltiples plataformas. Docker actualmente separa sus líneas en dos segmentos LaboratorioPráctico Instalación de Docker Productos Docker Docker Enterprise Edition ( EE ) que también es una fuente cerrada y necesita una licencia anual. Docker EE comprende dos productos: Universal Control Plane (UCP) y Docker Trusted Registry (DTR) que se ejecutan encima de Docker Swarm. Los productos empresariales tienen un soporte 24x7, y son compatibles con correcciones de errores por mucho más tiempo que su contraparte de CE. Diseñado para equipos de TI y desarrollo empresarial que crean, envían y ejecutan aplicaciones críticas para el negocio en producción a escala. Docker EE está integrado, certificado y respaldado para proporcionar a las empresas la plataforma de contenedores más segura de la industria para modernizar todas las aplicaciones. Docker actualmente separa sus líneas en dos segmentos Productos Docker Productos Docker Trabajando con Docker Docker, anuncio un nuevo modelo de nomenclatura para sus productos, simplificando su estructura: El conocido como Docker Engine pasa a llamarse Docker Community Edition (CE). Además se simplifica creando 3 niveles de soporte. Edge: De liberación mensual y en la que solo se proporcionará soporte a bugs y fallos de seguridad durante el mes en curso. Stable: De liberación trimestral con cuatro meses de soporte. ¿Qué versión necesito? Trabajando con Docker Docker Datacenter /Docker engine CS (Commercial Supported) pasa a llamarse Docker Enterprise Edition (EE). Por su parte Docker EE lleva el mismo ritmo de liberación que la versión Stable pero el soporte se garantiza durante un año. Esta versión está dirigida a aplicaciones críticas en la que necesitemos una garantía de soporte. Para simplificar todo esto se han acometido tres planes: Reducción de los planes de soporte a 3: Básico, estándar o avanzado. Creación de un programa de certificación a nivel de infraestructuras y plugins. Centralización de toda la oferta e información en Docker store, con todos los planes de precio, información y elementos certificados. Incluye además contenedores certificados validados por la propia Docker Inc. ¿Qué versión necesito? https://store.docker.com/ Trabajando con Docker Docker Enterprise Edition (EE). Docker Machine Docker Machine es una herramienta que nos ayuda a crear, configurar y manejar máquinas (virtuales o físicas) con Docker Engine. Con Docker Machine podemos iniciar, parar o reiniciar los nodos docker, actualizar el cliente o el demonio docker y configurar el cliente docker para acceder a los distintos Docker Engine. El propósito principal del uso de esta herramienta es la de crear máquinas con Docker Engine en sistemas remotos y centralizar su gestión. Docker Machine utiliza distintos drivers que nos permiten crear y configurar Docker Engine en distintos entornos y proveedores, por ejemplo virtualbox, AWS, VMWare, OpenStack. Las tareas fundamentales que realiza Docker Machine, son las siguientes: Crea una máquina en el entorno que hayamos indicado (virtualbox, openstack,…) donde va a instalar y configurar Docker Engine. Genera los certificados TLS para la comunicación segura. Docker Compose Facilita enormemente la administración de aplicaciones compuestas por varios contenedores relacionados si. Docker Compose, gestiona los contenedores de tal forma que puede iniciarlos, pararlos, eliminarlos o ver su estado como si de una unidad se tratara. Docker compose utiliza la tecnología de contenedores para desplegar imágenes. Estas imágenes suelen contener un servicio concreto, por ejemplo un sistema de bases de datos, un servidor web, etc. La propuesta de Docker Compose resuelve la comunicación entre contenedores que están en diversas imágenes. Docker SWARM Las funcionalidades de Docker Swarm están incorporadas en Docker para gestionar clusters de nodos con contenedores de los servicios que deseemos. En un clúster de Swarm existen dos tipos de nodo, Manager y Worker. Los nodos Manager son los encargados de gestionar el clúster. Entre todos los Manager se elige automáticamente un líder y éste es el encargado de mantener el estado del clúster. Los Manager son también los encargados de distribuir las tareas o tasks (unidades básicas de trabajo) entre todos los nodos Worker, los cuales reciben estas tareas y las ejecutan. Los nodos Manager por defecto también actúan como nodos Worker aunque se puede cambiar su configuración para que sólo asuman tareas de Manager. Gracias
Compartir