User Tools

Site Tools


informatica:linux:docker:kubernetes

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
informatica:linux:docker:kubernetes [2022/07/09 17:41] – [NodePort (usar este)] javiinformatica:linux:docker:kubernetes [2022/07/09 17:52] – [Nginx NodePort daemonset (usar este)] javi
Line 1269: Line 1269:
  
   * IPs privadas de los workers del clúster   * IPs privadas de los workers del clúster
-  * Puertos en los que escuchan los Nodeport tanto HTTP como HTTPS. Ver paso 8 de [[informatica:linux:docker:kubernetes#nginx_nodeport_daemonset_usar_este|Nginx ingress Nodeport con affinity]]+  * Puertos en los que escuchan los Nodeport tanto HTTP como HTTPS. Ver paso 8 de [[informatica:linux:docker:kubernetes#nginx_nodeport_daemonset_usar_este|Nginx ingress Nodeport daemonset]]
   * [[https://docs.docker.com/engine/install/debian|Docker]]   * [[https://docs.docker.com/engine/install/debian|Docker]]
  
Line 1811: Line 1811:
   * HTTPS => 30893   * HTTPS => 30893
  
-8. [[informatica:linux:docker:kubernetes#editar_configmaps_para_habilitar_use-proxy-protocol|Editar ConfigMaps para habilitar 'use-proxy-protocol']]+8. **AVISO** Este paso está deprecated. Solo hay que hacerlo si se va a usar un edge router con balanceador capa 7. NO hay que hacerlo, eso lo hice en un primer intento. El balanceador que hay que poner en el edge router tiene que ser capa 4, por tanto NO hay que habilitar proxy protocol.
  
 +[[informatica:linux:docker:kubernetes#editar_configmaps_para_habilitar_use-proxy-protocol|Editar ConfigMaps para habilitar 'use-proxy-protocol']]
 +
 +==== Actualizar nginx ingress controller ====
 +
 +1. Comprobar si es posible una actualización
 +
 +1.1. Obtemer la versión actual del nginx ingress controller
 +
 +  kubectl describe daemonsets.apps -n ingress-nginx ingress-nginx-controller  | grep vers
 +
 +Resultado esperado similar a:
 +
 +<code>
 +                        app.kubernetes.io/version=1.2.0
 +</code>
 +
 +Por tanto la versión actual es "1.2.0"
 +
 +1.2. Determinar si hay una nueva versión:
 +
 +https://github.com/kubernetes/ingress-nginx#changelog
 +
 +La hay, "v1.2.1", compatible con las siguientes versiones de kubectl:
 +
 +<code
 +1.23, 1.22, 1.21, 1.20, 1.19
 +</code>
 +
 +1.3. Determinar la versión actual de kubectl:
 +
 +  kubectl version --short
 +
 +Resultado esperado similar a:
 +
 +<code>
 +Client Version: v1.24.2
 +Kustomize Version: v4.5.4
 +Server Version: v1.24.2
 +</code>
 +
 +Tenemos kubectl versión "1.24.x", que está por encima de "1.23", asumo que podemos ir hacia delante.
 +
 +2. Actualizar la versión de la imagen del daemonset (recordad que cambiamos el "Deployment" por "Daemonset")
 +
 +2.1. Comprobar que la imagen de docker (tag) existe, y obtener el SHA256, todo esto desde la máquina local
 +
 +  docker pull registry.k8s.io/ingress-nginx/controller:v1.2.1
 +
 +Resultado esperado similar a:
 +
 +<code>
 +v1.2.1: Pulling from ingress-nginx/controller
 +8663204ce13b: Pull complete 
 +897a18b2d257: Pull complete 
 +3cb02f360cf3: Pull complete 
 +2b63816a7692: Pull complete 
 +d61ce16aa3b6: Pull complete 
 +4391833fbf2c: Pull complete 
 +4f4fb700ef54: Pull complete 
 +bb397308bcd5: Pull complete 
 +803395581751: Pull complete 
 +153d402a7263: Pull complete 
 +c815f058cf7b: Pull complete 
 +a872540e4aca: Pull complete 
 +4972574251d0: Pull complete 
 +30197fe775a6: Pull complete 
 +b059831ea274: Pull complete 
 +Digest: sha256:5516d103a9c2ecc4f026efbd4b40662ce22dc1f824fb129ed121460aaa5c47f8
 +Status: Downloaded newer image for registry.k8s.io/ingress-nginx/controller:v1.2.1
 +registry.k8s.io/ingress-nginx/controller:v1.2.1
 +</code>
 +
 +La imagen existe, y el SHA256 es:
 +
 +  sha256:5516d103a9c2ecc4f026efbd4b40662ce22dc1f824fb129ed121460aaa5c47f8
 +
 +2.2. Limpieza
 +
 +  docker image rm registry.k8s.io/ingress-nginx/controller:v1.2.1
 +
 +3. (k8s server) Actualizar la versión de la imagen del daemonset (paso 1.2.) y el SHA256 (paso 2.1.)
 +
 +3.1. Actualizar el daemonset:
 +
 +<code>
 +kubectl set image daemonsets/ingress-nginx-controller \
 +  controller=registry.k8s.io/ingress-nginx/controller:v1.2.1@sha256:5516d103a9c2ecc4f026efbd4b40662ce22dc1f824fb129ed121460aaa5c47f8 \
 +  -n ingress-nginx
 +</code>
 +
 +3.2. Verificar:
 +
 +  kubectl get pods -n ingress-nginx -o wide
 +
 +ETA: 3'
 +
 +Resultado esperado similar a:
 +
 +<code>
 +NAME                                   READY   STATUS      RESTARTS   AGE    IP            NODE
 +   NOMINATED NODE   READINESS GATES
 +ingress-nginx-admission-create-zxqvn   0/    Completed            139m   10.244.0.75   k8s1
 +   <none>           <none>
 +ingress-nginx-admission-patch-c9t4w    0/1     Completed            139m   10.244.0.74   k8s1
 +   <none>           <none>
 +ingress-nginx-controller-6thbj         1/    Running              2m8s   10.244.0.77   k8s1
 +   <none>           <none>
 +ingress-nginx-controller-tv9zd         1/    Running              63s    10.244.1.16   k8s3
 +   <none>           <none>
 +ingress-nginx-controller-zgfw5         1/    Running              95s    10.244.2.21   k8s2
 +   <none>           <none>
 +</code>
 ==== Nginx LoadBalancer ==== ==== Nginx LoadBalancer ====