Skip to content

Latest commit

 

History

History
133 lines (100 loc) · 2.55 KB

Readme.md

File metadata and controls

133 lines (100 loc) · 2.55 KB

Requisitos

  • Docker + WSL
  • Minikube
  • kubectl

Como connstruir las imagenes

Desde directorio nodejs

docker build . -t {repo}/{name-image}:1.0 && docker push {repo}/{name-image}:1.0

Desde el directorio dotnet

docker build -f .\TheWeather\Dockerfile . -t {repo}/{name-image}:1.0 && docker push {repo}/{name-image}:1.0

Pasos

minikube start --nodes 2 --kubernetes-version=v1.23.3 Abrir directorio $HOME.kube Mostrar fichero configuracion, explicar clusters, users y contextos k get nodes k get nodes -o wide

minikube ssh su root docker ps ps -aux cd /etc/kubernetes/

exit exit minikube ssh -n minikube-m02

k get pods -A

Pods

k create ns mydemo k run --image=nginx pod -n mydemo k get pods

Estados del pod:

  • Pending
  • Running
  • Succeeded
  • Failed
  • Unknown

Estados de un contenedor:

  • Waiting
  • Running
  • Terminated

k get pods -o wide k logs mypod -n mydemo

k run mypod --image=nginx -o yaml --dry-run=client k run mypod --image=nginx -o json --dry-run=client

k run mypod --image=nginx -o yaml --port 80 --dry-run=client > pod.yaml

Abrir fichero, explicar

  • apiVersion: v1 (pod => v1, deployment => v1, deployment => apps/v1)
  • kind: type of object (Pod, ReplicaSet, etc)
  • metadata (dict)
    • name: name of the object
    • labels: app: name of the app version: version of the app
  • spec:

Probes

El contenedor puede aceptar trafico readinessProbe: tcpSocket: port: 80 initialDelaySeconds: 5 periodSeconds: 10

El container está alive livenessProbe: httpGet: path: /healthz port: 8080 initialDelaySeconds: 3 periodSeconds: 3

Añadir resources: resources: limits: memory: 512Mi cpu: 1000 requests: memory: 256Mi cpu: 500

El pod es imutable, no se pueden realizar ningún tipo de cambio sin eliminar y recrearlo.

Deployments

k create deploy mydeploy --image nginx --replicas 3 -n mydemo k get rs,deploy,pods -n mydemo

port-forward

k create deploy mydeploy --image nginx --replicas 3 -n mydemo -o yaml --dry-run=client

Dos tipos de estrategias para realizar una actualización:

strategy: type: recreate

se crea un nuevo replicaset, se escalan a cero lo de la replica 1 y se arrancan los de las replcas 2

strategy: type: RollingUpdate rollingUpdate: maxUnavailable: 1 (accept %) maxSurge: 1 (accept %) - new could be created

k apply -f mydeploy.yaml -n mydemo

Cambio imagen:

  • edit yaml
  • edit k edit
  • k set image deploy mydeploy nginx=nginx:1.9.1
  • k rollout history deploy mydeploy

sidecards?