<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Nodes on KlustreFS</title><link>https://deploy-preview-14--fastidious-daifuku-4fed3d.netlify.app/docs/operations/nodes-and-volumes/nodes/</link><description>Recent content in Nodes on KlustreFS</description><generator>Hugo</generator><language>en</language><atom:link href="https://deploy-preview-14--fastidious-daifuku-4fed3d.netlify.app/docs/operations/nodes-and-volumes/nodes/index.xml" rel="self" type="application/rss+xml"/><item><title>Node preparation</title><link>https://deploy-preview-14--fastidious-daifuku-4fed3d.netlify.app/docs/operations/nodes-and-volumes/nodes/preparation/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-14--fastidious-daifuku-4fed3d.netlify.app/docs/operations/nodes-and-volumes/nodes/preparation/</guid><description>&lt;h2 id="install-the-lustre-client-stack"&gt;Install the Lustre client stack&lt;a class="td-heading-self-link" href="#install-the-lustre-client-stack" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Every node that runs Lustre-backed pods must have:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;mount.lustre&lt;/code&gt; and &lt;code&gt;umount.lustre&lt;/code&gt; binaries (via &lt;code&gt;lustre-client&lt;/code&gt; RPM/DEB).&lt;/li&gt;
&lt;li&gt;Kernel modules compatible with your Lustre servers.&lt;/li&gt;
&lt;li&gt;Network reachability to the Lustre MGS/MDS/OSS endpoints.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Verify installation:&lt;/p&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;mount.lustre --version
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;lsmod &lt;span style="color:#000;font-weight:bold"&gt;|&lt;/span&gt; grep lustre
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="label-nodes"&gt;Label nodes&lt;a class="td-heading-self-link" href="#label-nodes" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The default storage class and daemonset use the label &lt;code&gt;lustre.csi.klustrefs.io/lustre-client=true&lt;/code&gt;.&lt;/p&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 label nodes &amp;lt;node-name&amp;gt; lustre.csi.klustrefs.io/lustre-client&lt;span style="color:#ce5c00;font-weight:bold"&gt;=&lt;/span&gt;&lt;span style="color:#204a87"&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Remove the label when a node no longer has Lustre access:&lt;/p&gt;</description></item><item><title>Node integration flow</title><link>https://deploy-preview-14--fastidious-daifuku-4fed3d.netlify.app/docs/operations/nodes-and-volumes/nodes/integration/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-14--fastidious-daifuku-4fed3d.netlify.app/docs/operations/nodes-and-volumes/nodes/integration/</guid><description>&lt;h2 id="daemonset-host-mounts"&gt;Daemonset host mounts&lt;a class="td-heading-self-link" href="#daemonset-host-mounts" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;DaemonSet/klustre-csi-node&lt;/code&gt; mounts the following host paths:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;/var/lib/kubelet/plugins&lt;/code&gt; and &lt;code&gt;/var/lib/kubelet/pods&lt;/code&gt; – required for CSI socket registration and mount propagation.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/dev&lt;/code&gt; – ensures device files (if any) are accessible when mounting Lustre.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/sbin&lt;/code&gt;, &lt;code&gt;/usr/sbin&lt;/code&gt;, &lt;code&gt;/lib&lt;/code&gt;, &lt;code&gt;/lib64&lt;/code&gt; – expose the host’s Lustre client binaries and libraries to the container.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If your kubelet uses custom directories, update &lt;code&gt;pluginDir&lt;/code&gt; and &lt;code&gt;registrationDir&lt;/code&gt; in the &lt;a href="https://deploy-preview-14--fastidious-daifuku-4fed3d.netlify.app/docs/reference/settings-configmap/"&gt;settings ConfigMap&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="csi-socket-lifecycle"&gt;CSI socket lifecycle&lt;a class="td-heading-self-link" href="#csi-socket-lifecycle" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;The node plugin listens on &lt;code&gt;csiEndpoint&lt;/code&gt; (defaults to &lt;code&gt;/var/lib/kubelet/plugins/lustre.csi.klustrefs.io/csi.sock&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;The node-driver-registrar sidecar registers that socket with kubelet via &lt;code&gt;registrationDir&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Kubelet uses the UNIX socket to call &lt;code&gt;NodePublishVolume&lt;/code&gt; and &lt;code&gt;NodeUnpublishVolume&lt;/code&gt; when pods mount or unmount PVCs.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;If the daemonset does not come up or kubelet cannot reach the socket, run:&lt;/p&gt;</description></item></channel></rss>