Saltar al contenido principal

Actualizar K3s

Si bien contamos con Rancher en los clusters, la actualización de K3s no se realiza automáticamente por razones de compatibilidad y estabilidad. Por lo tanto, es necesario realizar la actualización manualmente siguiendo los siguientes pasos:

precaución

No usar el script de actualización de K3s (https://get.k3s.io) para actualizar K3s; tenemos una configuración bastante custom que no es compatible con este script.

  1. Ingresar al nodo master del clúster mediante SSH.

  2. Situarse en algún directorio escribible, por ejemplo /home/ubuntu o /tmp.

  3. Descargar la última versión de K3s desde GitHub, en arqitectura arm64. Ejemplo:

    wget https://github.com/k3s-io/k3s/releases/download/v1.33.2%2Bk3s1/k3s-arm64
  4. Hacer backup del binario actual de K3s, y mover el nuevo binario descargado al directorio /usr/local/bin/:

    sudo mv /usr/local/bin/k3s /usr/local/bin/k3s.bak
    sudo mv ./k3s-arm64 /usr/local/bin/k3s
  5. Dar permisos de ejecución al nuevo binario:

    sudo chown root:root /usr/local/bin/k3s
    sudo chmod 755 /usr/local/bin/k3s
  6. Reiniciar el servicio de K3s:

    sudo systemctl restart k3s.service
  7. Verificar en los logs que el servicio haya levantado correctamente:

    sudo journalctl -u k3s.service -f

    Deberíamos ver mensajes como los siguientes:

    Jul 05 04:40:17 inst-ognc0-k3s-servers k3s[695344]: time="2025-07-05T04:40:17Z" level=info msg="Kube API server is now running"
    Jul 05 04:40:17 inst-ognc0-k3s-servers k3s[695344]: time="2025-07-05T04:40:17Z" level=info msg="k3s is up and running"
    Jul 05 04:40:17 inst-ognc0-k3s-servers systemd[1]: Started k3s.service - Lightweight Kubernetes.
  8. Verificar la versión del binario que se está ejecutando:

    k3s --version

    Debería mostrar la versión que acabamos de instalar, por ejemplo:

    k3s version v1.33.2+k3s1 (6e38c8b5)
    go version go1.24.4
  9. Verificar que el clúster esté funcionando correctamente:

    sudo k3s kubectl get nodes

    Deberíamos ver el nodo que acabamos de actualizar con el estado Ready y la versión actualizada, por ejemplo:

    NAME                     STATUS   ROLES                       AGE    VERSION
    inst-0cf4v-k3s-workers Ready <none> 101d v1.31.6+k3s1
    inst-h6qf6-k3s-workers Ready <none> 101d v1.31.6+k3s1
    inst-ognc0-k3s-servers Ready control-plane,etcd,master 101d v1.33.2+k3s1
  10. Repetir los pasos 1 a 9 en cada uno de los nodos worker del clúster.

  • En los workers, el servicio de K3s (para reiniciar y ver logs) se llama k3s-agent.service.

Volver a la versión anterior

Si por alguna razón la actualización falla o se desea volver a la versión anterior, hay dos alternativas:

  1. Restaurar el backup del binario de K3s que se hizo en el paso 4:

    sudo mv /usr/local/bin/k3s.bak /usr/local/bin/k3s
    sudo systemctl restart k3s.service
  2. Si la actualización fue reciente, se puede restaurar un snapshot de la instancia. Estas snapshots se toman cada 24 horas y se almacenan por 7 días. Esto se realiza desde Oracle Cloud, en la consola de VMs.