<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>k3s on inetshell</title><link>https://inet.sh/es/posts/k3s/</link><description>Recent content in k3s on inetshell</description><generator>Hugo</generator><language>es</language><lastBuildDate>Thu, 20 Aug 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://inet.sh/es/posts/k3s/index.xml" rel="self" type="application/rss+xml"/><item><title>Mover los datos de k3s a otro disco</title><link>https://inet.sh/es/posts/k3s/migrar-datos/</link><pubDate>Thu, 20 Aug 2026 00:00:00 +0000</pubDate><guid>https://inet.sh/es/posts/k3s/migrar-datos/</guid><description>Cómo mover /var/lib/rancher, los pods de kubelet y /run/k3s a otro disco o partición: stop, mv, symlink, start. Trampas de /run (tmpfs) y alternativa --data-dir.</description><content:encoded><![CDATA[<h2 id="en-corto">En corto</h2>
<p>Stop k3s → <code>mv</code> <code>/run/k3s</code>, <code>/var/lib/kubelet/pods</code>, <code>/var/lib/rancher</code> → symlinks al disco nuevo → start. Cuidado: <code>/run</code> es tmpfs.</p>
<p>k3s deja estado en el disco del sistema. Si se llena <code>/</code> o quieres un disco más rápido, el procedimiento corto es: <strong>parar → <code>mv</code> → symlink → arrancar</strong>.</p>
<p>El destino (<code>/datadrive</code> aquí) tiene que existir y estar montado <strong>antes</strong>. Root o sudo.</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">sudo systemctl stop k3s
</span></span><span class="line"><span class="cl">sudo systemctl stop k3s-agent   <span class="c1"># solo si este nodo es agent</span>
</span></span><span class="line"><span class="cl">sudo /usr/local/bin/k3s-killall.sh
</span></span></code></pre></td></tr></table>
</div>
</div><div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">sudo mv /run/k3s/ /datadrive/k3s/
</span></span><span class="line"><span class="cl">sudo mv /var/lib/kubelet/pods/ /datadrive/k3s-pods/
</span></span><span class="line"><span class="cl">sudo mv /var/lib/rancher/ /datadrive/k3s-rancher/
</span></span></code></pre></td></tr></table>
</div>
</div><div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">sudo ln -s /datadrive/k3s/ /run/k3s
</span></span><span class="line"><span class="cl">sudo ln -s /datadrive/k3s-pods/ /var/lib/kubelet/pods
</span></span><span class="line"><span class="cl">sudo ln -s /datadrive/k3s-rancher/ /var/lib/rancher
</span></span></code></pre></td></tr></table>
</div>
</div><div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">sudo systemctl start k3s
</span></span><span class="line"><span class="cl">sudo systemctl start k3s-agent   <span class="c1"># solo en agents</span>
</span></span></code></pre></td></tr></table>
</div>
</div><div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">kubectl get nodes
</span></span><span class="line"><span class="cl">kubectl get pods -A
</span></span></code></pre></td></tr></table>
</div>
</div><h2 id="qué-se-mueve">Qué se mueve</h2>
<table>
  <thead>
      <tr>
          <th>Origen</th>
          <th>Destino de ejemplo</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td><code>/run/k3s/</code></td>
          <td><code>/datadrive/k3s/</code></td>
      </tr>
      <tr>
          <td><code>/var/lib/kubelet/pods/</code></td>
          <td><code>/datadrive/k3s-pods/</code></td>
      </tr>
      <tr>
          <td><code>/var/lib/rancher/</code></td>
          <td><code>/datadrive/k3s-rancher/</code></td>
      </tr>
  </tbody>
</table>
<p>Ahí vive el estado de trabajo: containerd, manifests, pods. Un <code>mv</code> a medias o un start con las rutas vacías rompe el cluster.</p>
<h2 id="trampas">Trampas</h2>
<p><strong><code>/run</code> es tmpfs.</strong> Tras un reboot el symlink <code>/run/k3s</code> desaparece. Recréalo en un unit <code>After=local-fs.target</code> o no muevas <code>/run/k3s</code> y deja el runtime en RAM.</p>
<p><strong><code>k3s-agent</code> no existe en un server-only.</strong> <code>systemctl stop k3s-agent</code> falla; no es un error de la migración.</p>
<p><strong>Crea el padre de los destinos</strong> (<code>mkdir -p /datadrive</code>) y confirma el mount (<code>findmnt /datadrive</code>) <strong>antes</strong> del <code>mv</code>. Un <code>mv</code> a un path que no está montado deja los datos en el disco viejo con otro nombre.</p>
<p><strong>containerd y kubelet a veces no quieren symlink.</strong> Si el node no vuelve Ready, cambia a bind mount en <code>/etc/fstab</code>:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-gdscript3" data-lang="gdscript3"><span class="line"><span class="cl"><span class="o">/</span><span class="n">datadrive</span><span class="o">/</span><span class="n">k3s</span><span class="o">-</span><span class="n">rancher</span>  <span class="o">/</span><span class="k">var</span><span class="o">/</span><span class="n">lib</span><span class="o">/</span><span class="n">rancher</span>  <span class="n">none</span>  <span class="n">bind</span>  <span class="mi">0</span>  <span class="mi">0</span>
</span></span></code></pre></td></tr></table>
</div>
</div><h2 id="alternativa-más-limpia---data-dir">Alternativa más limpia: <code>--data-dir</code></h2>
<p>El path “oficial” de k3s es <code>--data-dir</code> (<code>/var/lib/rancher/k3s</code> por defecto). En un nodo <strong>nuevo</strong>, instala con el data-dir ya en el disco grande. En uno <strong>existente</strong>, el <code>mv</code> + symlink (o bind) de <code>/var/lib/rancher</code> es el atajo; no reescribas el unit a ciegas a mitad de un cluster.</p>
<p>Guía que documenta este <code>mv</code> + symlink: <a href="https://devopskit.tech/en/posts/migrate-k3s-data/">How to Move K3s Data to a New Location</a>.</p>
]]></content:encoded></item></channel></rss>