Giter Club home page Giter Club logo

curso_kubernetes_cep's Introduction

Curso Kubernetes

Título del curso

Introducción a Kubernetes

Descripción

En los últimos años se ha ido extendiendo el uso de contenedores como elementos esenciales para el uso de aplicaciones en entornos en producción, tanto más cuanto más variable sea la demanda, la frecuencia con la que se actualizan o la necesidad de que funcionen de forma ininterrumpida.

Gestionar una aplicación sobre contenedores, que pueda actualizarse rápidamente, que sea escalable o tolerante a fallos, es una tarea compleja que se realiza mediante un software específico que recibe el nombre de orquestador de contenedores.

Kubernetes es un software de orquestación de contenedores desarrollado inicialmente por Google, pero que hoy en día es un proyecto libre independiente utilizado en gran cantidad de entornos diferentes y que se ha convertido en muchos casos en la solución preferida para orquestar aplicaciones basadas en contenedores en entornos en producción.

En este curso conoceremos las principales características de Kubernetes y de las aplicaciones más adecuadas para poner en este entorno y comprobaremos de forma práctica la tolerancia a fallos, la escalabilidad de una aplicación o la gestión del versionado y los diferentes enfoques a la hora de hacerlo en entornos en producción, con o sin interrupciones.

Destinatarios

El curso va dirigido a docentes que impartan docencia en ciclos pertenecientes a la familia profesional de informática y que tengan conocimientos previos sobre el manejo de aplicaciones en contenedores.

Requisitos

Este curso es la continuación del curso "Iniciación a los contenedores Docker para el Desarrollo" por lo que en caso de no haber cursado dicho curso, es necesario tener conocimiento de la herramienta docker y comprender las principales características del uso de aplicaciones en contenedores.

Objetivos

El principal objetivo de este curso es conocer la herramienta Kubernetes, el software más extendido actualmente para la puesta en producción de aplicaciones sobre contenedores, haciendo énfasis en la arquitectura de la aplicación, la actualización de versiones, la escalabilidad, etc.

De forma más concreta estos objetivos se pueden enumerar en:

  • Conocer las diferencias entre aplicaciones en función de su arquitectura
  • Conocer Kubernetes y los elementos principales que nos permiten gestionar una aplicación en un entorno en producción
  • Realizar despliegues de aplicaciones sobre Kubernetes utilizando la herramienta kubectl

Contenidos

  1. Introducción a Kubernetes
  2. Instalación de Kubernetes
  3. Contenedores en Kubernetes: Pods
  4. Tolerancia y escalabilidad: ReplicaSets
  5. Despliegues
  6. Acceso a las aplicaciones
  7. Despliegues parametrizados
  8. Almacenamiento en Kubernetes
  9. Otras cargas de trabajo
  10. Instalación de aplicaciones en Kubernetes con Helm

Agenda

Con objeto que los participantes en el curso puedan planificar sus sesiones de trabajo, a modo orientativo se elabora la siguiente Agenda. En la columna “Actividad” se indicará el nombre de la misma. Además, si dicha actividad necesita la revisión del tutor o tutora, se pondrá (T). Bajo la columna "Horas" encontrará el tiempo aproximado que estimamos le llevará realizar cada actividad. La columna "Semana" indica la semana del curso en que debería estar trabajando en la actividad, teniendo en cuenta que se valoran aproximadamente 5-6 horas por semana.

MÓDULO ACTIVIDAD HORAS SEMANA
INICIO 0.1. Guía del curso 30'
INICIO 0.2. Ayuda para conocer el Aula Virtual 1 h
INICIO 0.3. Nos presentamos (T) 30'
MÓD 1 1.1. Teoría. Introducción a kubernetes
MÓD 2 2.1. Teoría. Instalación de kubernetes
MÓD 2 2.2. Tarea. Instalación y configuración de minikube y kubectl
MÓD 3 3.1. Teoría. Contenedores en Kubernetes: Pods
MÓD 3 3.2. Tarea. Trabajando con Pods
MÓD 3 3.3. Tarea. Trabajando con un Pod multicontenedor (VOLUNTARIA) ---
MÓD 4 4.1. Teoría. Tolerancia y escalabilidad: ReplicaSets
MÓD 4 4.2. Tarea. Trabajando con ReplicaSet
MÓD 5 5.1. Teoría. Despliegues: Deployments
MÓD 5 5.2. Tarea. Trabajando con Deployments
MÓD 5 5.3. Tarea. Actualización y desactualización de nuestra aplicación
MÓD 5 5.4. Tarea. Despliegue de la aplicación GuestBook
MÓD 6 6.1. Teoría. Acceso a las aplicaciones: Services
MÓD 6 6.2. Tarea. Acceso de la aplicación GuestBook
MÓD 6 6.3. Tarea. Despliegue y acceso de la Aplicación Lets-Chat (VOLUNTARIA) ---
MÓD 7 7.1. Teoría. Despliegues parametrizados
MÓD 7 7.2. Tarea. Configurando nuestra aplicación Temperaturas
MÓD 7 7.3. Tarea. Despliegue y acceso de la aplicación Nextcloud (VOLUNTARIA) ---
MÓD 8 8.1. Teoría. Almacenamiento en Kubernetes
MÓD 8 8.2. Tarea. Desplegando un servidor web persistente
MÓD 8 8.3. Tarea. Haciendo persistente la aplicación GuestBook
MÓD 8 8.4. Tarea. Haciendo persistente la aplicación Nextcloud (VOLUNTARIA) ---
MÓD 9 9.1. Teoría. Otras cargas de trabajo
MÓD 9 9.2. Tarea. Creando un cluster de MySQL (VOLUNTARIA) ---
MÓD 10 10.1. Teoría. Despliegue de aplicaciones con Helm
MÓD 10 10.2. Tarea. Instalación de un CMS con Helm

El RESTO DE LAS HORAS HASTA LAS 45 HORAS DEL CURSO DEBEN DEDICARSE A LA LECTURA DE LOS MATERIALES Y AL VISIONADO DE LOS VIDEOTUTORIALES INCLUIDOS.

Metodología

El curso está pensado como una secuencia de complejidad creciente, en la que se irán introduciendo los diferentes elementos de Kubernetes, hasta llegar a poder gestionar completamente el ciclo de vida de una aplicación en un entorno en producción.

En la sesión inicial se realizará la introducción del curso en una sesión de asistencia obligatoria y se explicarán los contenidos del primer módulo, que es más conceptual.

El resto de módulos contarán con al menos los siguiente materiales:

  • Materiales en HTML con explicaciones detalladas y directas sobre las distintas operaciones que estemos llevando a cabo.
  • Una colección de vídeos donde los autores mostrarán las distintas operaciones funcionando.
  • Enlaces a materiales adicionales.

Podemos distinguir las siguientes partes en el curso:

  1. Una primera parte más conceptual en la que veremos las características de la arquitectura de una aplicación y por qué es necesario un software como Kubernetes. También veremos las características principales de este software y lo instalaremos en una máquina virtual para poder realizar el curso.
  2. En la segunda parte del curso, que está formado por la mayor parte de módulos, iremos viendo de forma progresiva los diferentes elementos de Kubernetes y como nos ayudan a gestionar el despliegue y puesta en producción de una aplicación.
  3. Finalmente veremos en el último módulo la aplicación Helm, que es un sistema de empaquetado para Kubernetes

En todo momento contarás con la ayuda de un tutor o tutora que te facilitará tu paso por la actividad formativa y se fomentará la participación a través de los foros para compartir dudas y cualquier otra cuestión.

Licencia

Materiales desarrollados por Alberto Molina Coballes y José Domingo Muñoz Rodríguez para el curso "Introducción a Kubernetes" organizado por la Consejería de Educación y Deporte de la Junta de Andalucía y dirigido a profesorado de secundaria de Andalucía.

Toda la documentación es libre y puede compartirse y modificarse bajo las limitaciones de la licencia Creative Commons BY-NC-SA.

curso_kubernetes_cep's People

Contributors

albertomolina avatar josedom24 avatar mftienda avatar pekechis avatar santos-pardos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.