Coder Social home page Coder Social logo

devops-course's Introduction

Cosas del curso

Docker: trabajar con contenedores e imagenes

Con docker info se puede ver toda la informacion de docker

Cargar una imagen directamente ya hecha

Se trabaja con una imagen ya creada para el entendimiento de esta seccion

docker run -p 8080:80 -p 7080:7080 --name conBilling sotobotero/billingapp

Buildear el docker file de billingApp

docker build -t billingapp --no-cache --build-arg JAR_FILE=target/*.jar .

# Run image
docker run -d -p 80:80 -p 7080:7080 --name localbillingApp billingapp

Subir imagen a un repositorio de docker

docker tag billingapp ketbome/image-billingapp

# Tambien se puede agregar una version
docker tag billingapp ketbome/image-billingapp:v1

# Push al repositorio (Loguearse anteriormente)
docker push ketbome/image-billingapp

Ver los datos de un contenedor

docker inspect localbillingApp

Acceder al terminal de un contenedor

docker exec -it {nombre_contenedor} sh

Docker Compose: Orquestacion simple y buenas practicas

Note

La version de Docker Compose no puede ser superior a la del Docker engine Docker versioning

Para inicializar la billingapp con Compose

docker compose -f {nombre_archivo} up -d

Pausar y eliminar contenedor creado

# Pausar
docker compose -f .\stack-billing.yml stop

# Remover
docker compose -f .\stack-billing.yml rm

Docker Swarm: Orquestador Avanzado para escalar contenedores y limitar recursos

Para ver las estadisticas de los recursos de forma basica se puede hacer:

docker stats

Inicializar dicker swarm

docker swarm init

Desplegar y probar stack

Desplegar

docker stack deploy -c .\stack-billing.yml billing

docker stack ps billing

Para poder acceder a la aplicacion hay que acceder por la IP de swarm del nodo que se puede ver en docker info

Desactivar cluster

docker stack rm billing

Kubernetes

  • Pods: Unidades básicas de despliegue y gestión, que agrupan uno o más contenedores con almacenamiento y red compartidos.
  • Deployments: Describen el estado deseado de una implementación, gestionando las réplicas de la aplicación.
  • Services: Definen cómo exponer una aplicación ejecutada en un conjunto de pods, actuando como balanceador de carga.
  • ConfigMaps: Permiten desacoplar la configuración de las imágenes, almacenando variables de entorno, argumentos de línea de comandos y configuración de volúmenes.
  • Labels: Pares clave-valor utilizados para organizar, seleccionar, consultar y monitorear objetos de manera eficiente.
  • Selectores: Mecanismos para realizar consultas basadas en etiquetas y filtrar objetos según criterios específicos.

Uso de minikube para simular

Los comandos basicos:

minikube start

minikube pause

minikube unpause

minikube stop

minikube config set memory 16384

minikube addons list

minikube start -p aged --kubernetes-version=v1.16.1

minikube delete --all

Tambien se tiene un dashboard:

minikube dashboard --url

Kubetcl

Iniciar una imagen ya creada en un pod

kubectl run kbillingapp --image=sotobotero/udemy-devops:0.0.1 --port=80 80

Ver los pod

kubectl get pod

Ver la descripcion del pod

kubectl describe pod kbillingapp

Exponer el puerto para que lo vea el cliente

kubectl expose pod kbillingapp --type=LoadBalancer --port=8080 --target-port=80

Eliminar el pod

kubectl delete -n default pod kbillingapp

Crear los objetos de un cluster

Para hacerlo poner todos los archivos uno por uno despues de la -f, Ejemplo:

kubectl apply -f .\secret-dev.yaml

Idealmente en este orden

  • Variables de entorno
  • ConfigMap
  • Almacenamiento/Volumes
  • Deployments
  • Services

Para eliminar:

kubectl delete -f .\

Integracion continua(CI) y Despliegue continuo(CD)

Jenkins

Crear la imagen con jenkins y maven

docker build -t jenkins-cicd --no-cache .

Correr la imagen con sus respectivos puertos

docker run -d -p 8080:8080 -p 50000:50000 --name jenkins jenkins-cicd

devops-course's People

Contributors

ketbome avatar

Watchers

 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.