# Actualizando nodos Linux

LLMS index: [llms.txt](/llms.txt)

---

<!-- overview -->

Esta página explica cómo actualizar nodos de trabajo Linux creados con kubeadm.

## Antes de empezar

<p>Necesitas tener acceso a la terminal en todos los nodos, y la herramienta de línea de comandos
kubectl debe estar configurada para comunicarse con tu clúster. Se recomienda seguir este
tutorial en un clúster con al menos dos nodos que no actúen como nodos controladores.</p>
 
  <p>Para verificar la versión, ingresa  <code>kubectl version</code>.</p>

* Familiarízate con [el proceso para actualizar el clúster de
kubeadm](/es/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade). Conviene actualizar
los nodos controladores antes de actualizar los nodos de trabajo Linux.

<!-- steps -->

## Cambiando el repositorio de paquetes

Si usas los repositorios de paquetes gestionados por la comunidad (`pkgs.k8s.io`), necesitas
habilitar el repositorio de paquetes de la versión menor de Kubernetes deseada. Esto se explica en el documento
[cambiando el repositorio de paquetes de Kubernetes](/docs/tasks/administer-cluster/kubeadm/change-package-repository/).

<div class="alert alert-secondary callout note" role="note">
  <strong>Nota:</strong> Los repositorios de paquetes heredados (<code>apt.kubernetes.io</code> y <code>yum.kubernetes.io</code>) han sido <a href="/blog/2023/08/31/legacy-package-repository-deprecation/">declarados obsoletos y congelados a partir del 13 de septiembre de 2023</a>. <strong>Se recomienda encarecidamente y se requiere el uso de los <a href="/blog/2023/08/15/pkgs-k8s-io-introduction/">nuevos repositorios de paquetes alojados en <code>pkgs.k8s.io</code></a> para poder instalar las versiones de Kubernetes lanzadas después del 13 de septiembre de 2023.</strong> Los repositorios heredados obsoletos y sus contenidos podrían ser eliminados en cualquier momento en el futuro y sin previo aviso. Los nuevos repositorios de paquetes ofrecen descargas para las versiones de Kubernetes a partir de la v1.24.0.
</div>


## Actualizando los nodos de trabajo

### Actualiza kubeadm

Actualiza kubeadm:

<ul class="nav nav-tabs" id="tabs-k8s-install-kubeadm-worker-nodes" role="tablist"><li class="nav-item"><a data-bs-toggle="tab" class="nav-link active" href="#tabs-k8s-install-kubeadm-worker-nodes-0" role="tab" aria-controls="tabs-k8s-install-kubeadm-worker-nodes-0" aria-selected="true">Ubuntu, Debian o HypriotOS</a></li>
	  
		<li class="nav-item"><a data-bs-toggle="tab" class="nav-link" href="#tabs-k8s-install-kubeadm-worker-nodes-1" role="tab" aria-controls="tabs-k8s-install-kubeadm-worker-nodes-1">CentOS, RHEL o Fedora</a></li></ul>

<div class="tab-content" id="tabs-k8s-install-kubeadm-worker-nodes-content"><div class="tab-body tab-pane fadeshow active"
        id="tabs-k8s-install-kubeadm-worker-nodes-0" role="tabpanel" aria-labelledby="tabs-k8s-install-kubeadm-worker-nodes-0-tab" tabindex="k8s-install-kubeadm-worker-nodes"><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl"><span class="c1"># sustituye x en 1.36.x-* por la última versión de parche</span>
</span></span><span class="line"><span class="cl">sudo apt-mark unhold kubeadm <span class="o">&amp;&amp;</span> <span class="se">\
</span></span></span><span class="line"><span class="cl">sudo apt-get update <span class="o">&amp;&amp;</span> sudo apt-get install -y <span class="nv">kubeadm</span><span class="o">=</span><span class="s1">&#39;1.36.x-*&#39;</span> <span class="o">&amp;&amp;</span> <span class="se">\
</span></span></span><span class="line"><span class="cl">sudo apt-mark hold kubeadm
</span></span></code></pre></div></div><div class="tab-body tab-pane fade"
        id="tabs-k8s-install-kubeadm-worker-nodes-1" role="tabpanel" aria-labelledby="tabs-k8s-install-kubeadm-worker-nodes-1-tab" tabindex="k8s-install-kubeadm-worker-nodes"><p>Para sistemas con DNF:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl"><span class="c1"># sustituye x en 1.36.x-* por la última versión de parche</span>
</span></span><span class="line"><span class="cl">sudo yum install -y kubeadm-<span class="s1">&#39;1.36.x-*&#39;</span> --disableexcludes<span class="o">=</span>kubernetes
</span></span></code></pre></div><p>Para sistemas con DNF5:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl"><span class="c1"># sustituye x en 1.36.x-* por la última versión de parche</span>
</span></span><span class="line"><span class="cl">sudo yum install -y kubeadm-<span class="s1">&#39;1.36.x-*&#39;</span> --setopt<span class="o">=</span><span class="nv">disable_excludes</span><span class="o">=</span>kubernetes
</span></span></code></pre></div></div></div>


### Ejecuta "kubeadm upgrade"

Para los nodos de trabajo, este comando actualiza la configuración local del kubelet:

```shell
sudo kubeadm upgrade node
```

### Drena el nodo

Prepara el nodo para el mantenimiento marcándolo como no programable y desalojando las cargas de trabajo:

```shell
# ejecuta este comando en un nodo controlador
# sustituye <nodo-a-drenar> por el nombre del nodo que estás drenando
kubectl drain <nodo-a-drenar> --ignore-daemonsets
```

### Actualiza kubelet y kubectl

1. Actualiza el kubelet y kubectl:

   <ul class="nav nav-tabs" id="tabs-k8s-kubelet-and-kubectl" role="tablist"><li class="nav-item"><a data-bs-toggle="tab" class="nav-link active" href="#tabs-k8s-kubelet-and-kubectl-0" role="tab" aria-controls="tabs-k8s-kubelet-and-kubectl-0" aria-selected="true">Ubuntu, Debian o HypriotOS</a></li>
	  
		<li class="nav-item"><a data-bs-toggle="tab" class="nav-link" href="#tabs-k8s-kubelet-and-kubectl-1" role="tab" aria-controls="tabs-k8s-kubelet-and-kubectl-1">CentOS, RHEL o Fedora</a></li></ul>

<div class="tab-content" id="tabs-k8s-kubelet-and-kubectl-content"><div class="tab-body tab-pane fadeshow active"
        id="tabs-k8s-kubelet-and-kubectl-0" role="tabpanel" aria-labelledby="tabs-k8s-kubelet-and-kubectl-0-tab" tabindex="k8s-kubelet-and-kubectl"><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl"><span class="c1"># sustituye x en 1.36.x-* por la última versión de parche</span>
</span></span><span class="line"><span class="cl">sudo apt-mark unhold kubelet kubectl <span class="o">&amp;&amp;</span> <span class="se">\
</span></span></span><span class="line"><span class="cl">sudo apt-get update <span class="o">&amp;&amp;</span> sudo apt-get install -y <span class="nv">kubelet</span><span class="o">=</span><span class="s1">&#39;1.36.x-*&#39;</span> <span class="nv">kubectl</span><span class="o">=</span><span class="s1">&#39;1.36.x-*&#39;</span> <span class="o">&amp;&amp;</span> <span class="se">\
</span></span></span><span class="line"><span class="cl">sudo apt-mark hold kubelet kubectl
</span></span></code></pre></div></div><div class="tab-body tab-pane fade"
        id="tabs-k8s-kubelet-and-kubectl-1" role="tabpanel" aria-labelledby="tabs-k8s-kubelet-and-kubectl-1-tab" tabindex="k8s-kubelet-and-kubectl"><p>Para sistemas con DNF:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl"><span class="c1"># sustituye x en 1.36.x-* por la última versión de parche</span>
</span></span><span class="line"><span class="cl">sudo yum install -y kubelet-<span class="s1">&#39;1.36.x-*&#39;</span> kubectl-<span class="s1">&#39;1.36.x-*&#39;</span> --disableexcludes<span class="o">=</span>kubernetes
</span></span></code></pre></div><p>Para sistemas con DNF5:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl"><span class="c1"># sustituye x en 1.36.x-* por la última versión de parche</span>
</span></span><span class="line"><span class="cl">sudo yum install -y kubelet-<span class="s1">&#39;1.36.x-*&#39;</span> kubectl-<span class="s1">&#39;1.36.x-*&#39;</span> --setopt<span class="o">=</span><span class="nv">disable_excludes</span><span class="o">=</span>kubernetes
</span></span></code></pre></div></div></div>


1. Reinicia el kubelet:

   ```shell
   sudo systemctl daemon-reload
   sudo systemctl restart kubelet
   ```

### Reincorpora el nodo

Vuelve a poner el nodo disponible marcándolo como programable:

```shell
# ejecuta este comando en un nodo controlador
# sustituye <nodo-a-reincorporar> por el nombre de tu nodo
kubectl uncordon <nodo-a-reincorporar>
```

## ¿Qué sigue?

* Consulta cómo [actualizar nodos Windows](/docs/tasks/administer-cluster/kubeadm/upgrading-windows-nodes/).
