- Docker + WSL
- Minikube
- kubectl
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
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
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.
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?