<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Maintenance and Upgrade on KlustreFS</title><link>https://deploy-preview-14--fastidious-daifuku-4fed3d.netlify.app/docs/operations/maintenance/</link><description>Recent content in Maintenance and Upgrade on KlustreFS</description><generator>Hugo</generator><language>en</language><atom:link href="https://deploy-preview-14--fastidious-daifuku-4fed3d.netlify.app/docs/operations/maintenance/index.xml" rel="self" type="application/rss+xml"/><item><title>Node maintenance checklist</title><link>https://deploy-preview-14--fastidious-daifuku-4fed3d.netlify.app/docs/operations/maintenance/node-maintenance/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-14--fastidious-daifuku-4fed3d.netlify.app/docs/operations/maintenance/node-maintenance/</guid><description>&lt;h2 id="1-cordon-and-drain"&gt;1. Cordon and drain&lt;a class="td-heading-self-link" href="#1-cordon-and-drain" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;kubectl cordon &amp;lt;node&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;kubectl drain &amp;lt;node&amp;gt; --ignore-daemonsets --delete-emptydir-data
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Because the Klustre CSI daemonset is a DaemonSet, it is unaffected by &lt;code&gt;--ignore-daemonsets&lt;/code&gt;, but draining ensures your workloads move off the node before reboot.&lt;/p&gt;
&lt;h2 id="2-verify-daemonset-status"&gt;2. Verify daemonset status&lt;a class="td-heading-self-link" href="#2-verify-daemonset-status" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;kubectl get pods -n klustre-system -o wide &lt;span style="color:#000;font-weight:bold"&gt;|&lt;/span&gt; grep &amp;lt;node&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Expect the daemonset pod to terminate when the node drains and recreate once the node returns.&lt;/p&gt;
&lt;h2 id="3-patch-or-reboot-the-node"&gt;3. Patch or reboot the node&lt;a class="td-heading-self-link" href="#3-patch-or-reboot-the-node" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Apply OS updates, reboot, or swap hardware as needed.&lt;/li&gt;
&lt;li&gt;Ensure the Lustre client packages remain installed (validate with &lt;code&gt;mount.lustre --version&lt;/code&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="4-uncordon-and-relabel-if-necessary"&gt;4. Uncordon and relabel if necessary&lt;a class="td-heading-self-link" href="#4-uncordon-and-relabel-if-necessary" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;kubectl uncordon &amp;lt;node&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;If the node lost the &lt;code&gt;lustre.csi.klustrefs.io/lustre-client=true&lt;/code&gt; label, reapply it after verifying Lustre connectivity.&lt;/p&gt;</description></item><item><title>Upgrade guide</title><link>https://deploy-preview-14--fastidious-daifuku-4fed3d.netlify.app/docs/operations/maintenance/upgrade-guide/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-14--fastidious-daifuku-4fed3d.netlify.app/docs/operations/maintenance/upgrade-guide/</guid><description>&lt;h2 id="1-review-release-notes"&gt;1. Review release notes&lt;a class="td-heading-self-link" href="#1-review-release-notes" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Check the &lt;a href="https://github.com/klustrefs/klustre-csi-plugin/releases"&gt;klustre-csi-plugin GitHub releases&lt;/a&gt; for breaking changes, minimum Kubernetes versions, and image tags.&lt;/p&gt;
&lt;h2 id="2-update-the-image-reference"&gt;2. Update the image reference&lt;a class="td-heading-self-link" href="#2-update-the-image-reference" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Helm users: bump &lt;code&gt;image.tag&lt;/code&gt; and &lt;code&gt;nodePlugin.registrar.image.tag&lt;/code&gt; in your values file, then run &lt;code&gt;helm upgrade&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Manifest users: edit &lt;code&gt;manifests/configmap-klustre-csi-settings.yaml&lt;/code&gt; (&lt;code&gt;nodeImage&lt;/code&gt;, &lt;code&gt;registrarImage&lt;/code&gt;) and reapply the manifests.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;See &lt;a href="https://deploy-preview-14--fastidious-daifuku-4fed3d.netlify.app/docs/operations/update-daemonset-image/"&gt;Update the node daemonset image&lt;/a&gt; for detailed steps.&lt;/p&gt;
&lt;h2 id="3-roll-out-sequentially"&gt;3. Roll out sequentially&lt;a class="td-heading-self-link" href="#3-roll-out-sequentially" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;kubectl rollout restart daemonset/klustre-csi-node -n klustre-system
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;kubectl rollout status daemonset/klustre-csi-node -n klustre-system
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The daemonset restarts one node at a time, keeping existing mounts available.&lt;/p&gt;</description></item></channel></rss>