Upgrade to Pro — share decks privately, control downloads, hide ads and more …

R&D Talk: Kubernetes for developers

R&D Talk: Kubernetes for developers

Charla introductiva de desarrolladores a kubernetes.

Manifiestos y Aplicación utilizada en la presentación

Avatar for Ezequiel Medina

Ezequiel Medina

May 04, 2023
Tweet

Other Decks in Technology

Transcript

  1. Ezequiel Medina  DevOps @ R&D Latam  Experiencia senior

    como DevOps  Experiencia en la nube en AWS y Azure  Experiencia de infraestructura en la nube y servicios de contenerización (ECS, EKS, AKS)  Administrador de nube 2 © Cognizant Softvision
  2. Agenda © Cognizant Softvision 3 1. Requerimientos 2. Introducción 3.

    Componentes a utilizar 4. Probando nuestro aplicativo 5. Q & A
  3. El siguiente sitio web https://microk8s.io/ podrá obtener los siguientes binarios

    y comandos necesarios para instalar la herramienta MicroK8S Requerimientos © Cognizant Softvision 5
  4. Instalación de complementos en el clúster  DNS microk8s enable

    dns Este comando instala el coreDNS en el clúster en el proveedor de la nube se instala de forma predeterminada.  Ingress microk8s enable ingress Este comando instala Ingress Nginx, este es el ingreso más utilizado para Kubernetes. Requerimientos © Cognizant Softvision 6
  5. Obtener conexión a la API de Kubernetes, esto es demasiado

    simple, estamos usando el archivo de configuración kubeconfig Obtener la configuración de microK8s microk8s config Este comando devuelve el kubeconfig que utiliza kubectl y necesita almacenamiento en la carpeta de usuario de inicio .kube con el nombre config Requerimientos © Cognizant Softvision 7
  6. Se necesita el kubectl para interactuar desde nuestra computadora a

    la API de kubernetes para descargar esta herramienta vaya al siguiente sitio https://kubernetes.io/docs/tasks/tools/#kubectl kubectl Kubectl © Cognizant Softvision 8
  7.  ¿Cómo funciona kubectl? El kubectl es el cliente para

    comunicarse con el servidor API desde nuestra instancia.  ¿Qué acciones se pueden realizar a la API? En esta práctica, tenemos el acceso raíz a la API en un entorno diferente, podemos obtener otro permiso que puede verificar con el siguiente comando kubectl auth can-i list secrets Kubectl © Cognizant Softvision 9
  8.  ¿Qué es Kubernetes? Kubernetes (también conocida como k8s o

    "kube") es una plataforma open source para la orquestación de contenedores que automatiza muchos de los procesos manuales involucrados en la implementación, la gestión y el ajuste de las aplicaciones.  ¿Qué problema resuelve Kubernetes? Kubernetes ejecuta verificaciones de estado de manera continua en los servicios, reinicia los contenedores con errores o que se detuvieron y solo pone los servicios a disposición de los usuarios una vez confirma que se están ejecutando.  ¿Qué vamos a aprender? En esta sesion vamos a explicar Kubernetes con ejemplos relacionados a la vida cotidiana para poder comprender el funcionamiento de la herramienta. Introducción © Cognizant Softvision 11
  9. Vamos a relacionar esto con una construcción en donde el

    master son los cimientos del edificio (Img. 1) y los nodos son las columnas para soportar la esctructura (Img. 2). Introducción © Cognizant Softvision 13 Img. 1 Img. 2
  10. Kubernetes soporta múltiples clústeres virtuales respaldados por el mismo clúster

    físico. Estos clústeres virtuales se denominan espacios de nombres (namespaces). Kinds – Namespace © Cognizant Softvision 15  ¿Como relacionamos esto con la construcción? Kubernetes al soportar cluster virtuales mejor llamados namespaceshace referencia a un piso de nuestra construcción, eso no quiere decir que nuestros cluster virtuales no significa que no tenga conexión entre ellos.
  11. Un Service es el objeto de la API de Kubernetes

    que describe cómo se accede a las aplicaciones, tal como un conjunto de Pods, y que puede describir puertos y balanceadores de carga. Con Kubernetes no necesitas modificar tu aplicación para que utilice un mecanismo de descubrimiento de servicios desconocido. Kubernetes le otorga a sus Pods su propia dirección IP y un nombre DNS para un conjunto de Pods, y puede balancear la carga entre ellos. Kinds – Services © Cognizant Softvision 16  ¿Como se relaciona el layout de una oficina con el servicio? Todo layout de una oficina una separación de por area en este caso el servicio nos dice en donde se encuentran nuestros pods para poder consumir los mismos
  12. Un configmap es un objeto de la API utilizado para

    almacenar datos no confidenciales en el formato clave-valor. Los Pods pueden utilizar los ConfigMaps como variables de entorno, argumentos de la linea de comandos o como ficheros de configuración en un Volumen. Un ConfigMap te permite desacoplar la configuración de un entorno específico de una imagen de contenedor, así las aplicaciones son fácilmente portables. Kinds – Config Map © Cognizant Softvision 17  ¿pero que relación tiene esta imagen con un Config Map? La relación que tenemos con los elementos de la imagen es nuestro entorno para que podamos realizar nuestras tareas Ej.: Notebook, Monitor, Impresora, Teclado, etc.
  13. Un secreto es un objeto que contiene una pequeña cantidad

    de datos confidenciales, como una contraseña, un token o una clave. De lo contrario, dicha información podría incluirse en una especificación de pod o en una imagen de contenedor. Usar un secreto significa que no necesita incluir datos confidenciales en el código de su aplicación. Los secretos son similares a ConfigMaps, pero están destinados específicamente a contener datos confidenciales. Kinds – Secrets © Cognizant Softvision 18 Los secretos en kubernetes de manera nativa codifica en base64, estos tipos de secretos se llaman opacos son los mas utlizados. Existen aplicativos que nos permiten obtener secretos de otras fuentes.
  14. Un controlador de Deployment proporciona actualizaciones declarativas para los Pods

    y los ReplicaSets. Cuando describes el estado deseado en un objeto Deployment, el controlador del Deployment se encarga de cambiar el estado actual al estado deseado de forma controlada. Puedes definir Deployments para crear nuevos ReplicaSets, o eliminar Deployments existentes y adoptar todos sus recursos con nuevos Deployments. Kinds – Deployment © Cognizant Softvision 19  ¿ Como el deployment se asemeja a un escritorio laboral? Los Deployment nos van a decir que elementos y espacio necesitamos en nuestro puestos de trabajos, en este caso nos otrogaria todo lo que necesitamos para trabajar desde nuestra silla hasta la notebook, esto conforman un pod una unidad minima de despliegue.
  15. El objetivo de un ReplicaSet es el de mantener un

    conjunto estable de réplicas de Pods ejecutándose en todo momento. Así, se usa en numerosas ocasiones para garantizar la disponibilidad de un número específico de Pods idénticos. Kinds – Replica Set © Cognizant Softvision 20  ¿como se relaciona el replicaset con los puestos de trabajo? En el deployment podemos ver las replicas en esta caso las replicas serian los puestos de trabajo con los elementos de su entorno
  16. Los Pods son las unidades de computación desplegables más pequeñas

    que se pueden crear y gestionar en Kubernetes. Un Pod es un grupo de uno o más contenedores, con almacenamiento compartido y recursos de red, y una especificación sobre cómo ejecutar los contenedores. Los contenidos de un Pod siempre se ubican y programan conjuntamente, y se ejecutan en un contexto compartido. Kinds – Pod © Cognizant Softvision 21
  17. Ingress expone las rutas HTTP y HTTPS desde fuera del

    clúster a los servicios dentro del clúster. El enrutamiento del tráfico está controlado por reglas definidas en el recurso Ingress. Se puede configurar un Ingress para brindar servicios de direcciones URL accesibles externamente, equilibrar la carga del tráfico, finalizar SSL/TLS y ofrecer alojamiento virtual basado en el nombre. Un controlador de Ingress es responsable de cumplir con el Ingress, generalmente con un balanceador de carga, aunque también puede configurar su enrutador perimetral o interfaces adicionales para ayudar a manejar el tráfico. Kinds – Ingress © Cognizant Softvision 22
  18. Pruebas del aplicativo © Cognizant Softvision 25 Ahora que pudimos

    terminar con nuestro edificio tenemos que problar que todo lo que armamos funciona, para eso ahora vamos a utilizar unas simples pruebas de cURL, para de esta manera realizar probar todos los componentes que creamos durante la charla