1
0
Fork 0
mirror of https://github.com/kubernetes-sigs/node-feature-discovery.git synced 2025-03-10 02:37:11 +00:00
node-feature-discovery/master/deployment/helm.html

44 lines
65 KiB
HTML
Raw Normal View History

<!DOCTYPE html> <html lang="en" dir="auto"> <head><meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=5, user-scalable=no"> <meta name="description" content="Deployment with Helm Table of contents Deployment with Helm Prerequisites Deployment Configuration Upgrading the chart From v0.7 and older From v0...."> <meta name="revised" content=""> <meta name="author" content="Kubernetes SIGs"> <meta name="generator" content="jekyll-rtd-theme v2.0.10"><meta name="theme-color" content="#2980b9"> <title>Helm · Node Feature Discovery</title> <meta name="twitter:title" content="Helm · Node Feature Discovery"> <meta name="twitter:description" content="Deployment with Helm Table of contents Deployment with Helm Prerequisites Deployment Configuration Upgrading the chart From v0.7 and older From v0...."> <meta name="twitter:card" content="summary"> <meta name="twitter:site" content="@Kubernetes SIGs"> <meta name="twitter:url" content="https://kubernetes-sigs.github.com/node-feature-discovery/master/deployment/helm.html"> <meta name="twitter:creator" content="@jekyll-rtd-theme v2.0.10"> <meta property="og:title" content="Helm · Node Feature Discovery"> <meta property="og:description" content="Deployment with Helm Table of contents Deployment with Helm Prerequisites Deployment Configuration Upgrading the chart From v0.7 and older From v0...."> <meta property="og:locale" content="en"> <meta property="og:url" content="https://kubernetes-sigs.github.com/node-feature-discovery/master/deployment/helm.html"> <meta property="og:type" content="article"> <meta property="article:author" content="Kubernetes SIGs"> <meta property="article:published_time" content="2016-07-23T05:07:52+00:00"> <meta property="article:modified_time" content="2024-11-27T09:53:51+00:00"> <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "Article", "mainEntityOfPage": { "@type": "WebPage", "@id": "https://kubernetes-sigs.github.com/node-feature-discovery/master/deployment/helm.html" }, "headline": "Helm · Node Feature Discovery", "image": [], "author": { "@type": "Person", "name": "Kubernetes SIGs" }, "datePublished": "2016-07-23T05:07:52+00:00", "dateModified": "2024-11-27T09:53:51+00:00", "publisher": { "@type": "Organization", "name": "Kubernetes SIGs", "logo": { "@type": "ImageObject", "url": "https://avatars.githubusercontent.com/u/36015203?v=4" } }, "description": "Deployment with Helm Table of contents Deployment with Helm Prerequisites Deployment Configuration Upgrading the chart From v0.7 and older From v0...." } </script> <link rel="dns-prefetch" href="https://cdn.jsdelivr.net"><link rel="prev" href="https://kubernetes-sigs.github.com/node-feature-discovery/master/deployment/kustomize.html"><link rel="next" href="https://kubernetes-sigs.github.com/node-feature-discovery/master/deployment/operator.html"><link rel="canonical" href="https://kubernetes-sigs.github.com/node-feature-discovery/master/deployment/helm.html"><link rel="icon" type="image/svg+xml" href="/node-feature-discovery/master/assets/images/favicon.svg"><link rel="icon" type="image/png" href="/node-feature-discovery/master/assets/images/favicon-16x16.png" sizes="16x16"> <link rel="icon" type="image/png" href="/node-feature-discovery/master/assets/images/favicon-32x32.png" sizes="32x32"> <link rel="icon" type="image/png" href="/node-feature-discovery/master/assets/images/favicon-96x96.png" sizes="96x96"><link rel="mask-icon" href="/node-feature-discovery/master/assets/images/favicon.svg" color="#2980b9"><link rel="apple-touch-icon" href="/node-feature-discovery/master/assets/images/apple-touch-icon-300x300.jpg"> <link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/rundocs/jekyll-rtd-theme@2.0.10/assets/css/theme.min.css"><style>@media (min-width: 1280px){.content-wrap{max-width:1200px}}</style><script> window.ui = { title: "Node Feature Discovery", baseurl: "/node-feature-discovery/master", i18n: { search_results: "Search Results", search_results_found: "Search finished, found # page(s) matching the search quer
helm repo add nfd https://kubernetes-sigs.github.io/node-feature-discovery/charts
helm repo update
helm <span class="nb">install </span>nfd/node-feature-discovery <span class="nt">--namespace</span> <span class="nv">$NFD_NS</span> <span class="nt">--create-namespace</span> <span class="nt">--generate-name</span>
</code></pre> </div></div> <p>To install the latest development version you need to clone the NFD Git repository and install from there.</p> <div class="language-bash highlighter-rouge notranslate"><div class="highlight"><pre class="highlight"><code>git clone https://github.com/kubernetes-sigs/node-feature-discovery/
<span class="nb">cd </span>node-feature-discovery/deployment/helm
<span class="nb">export </span><span class="nv">NFD_NS</span><span class="o">=</span>node-feature-discovery
helm <span class="nb">install </span>node-feature-discovery ./node-feature-discovery/ <span class="nt">--namespace</span> <span class="nv">$NFD_NS</span> <span class="nt">--create-namespace</span>
</code></pre> </div></div> <p>See the <a href="#configuration">configuration</a> section below for instructions how to alter the deployment parameters.</p> <h2 id="configuration">Configuration</h2> <p>You can override values from <code class="language-plaintext highlighter-rouge notranslate">values.yaml</code> and provide a file with custom values:</p> <div class="language-bash highlighter-rouge notranslate"><div class="highlight"><pre class="highlight"><code><span class="nb">export </span><span class="nv">NFD_NS</span><span class="o">=</span>node-feature-discovery
helm <span class="nb">install </span>nfd/node-feature-discovery <span class="nt">-f</span> &lt;path/to/custom/values.yaml&gt; <span class="nt">--namespace</span> <span class="nv">$NFD_NS</span> <span class="nt">--create-namespace</span>
</code></pre> </div></div> <p>To specify each parameter separately you can provide them to helm install command:</p> <div class="language-bash highlighter-rouge notranslate"><div class="highlight"><pre class="highlight"><code><span class="nb">export </span><span class="nv">NFD_NS</span><span class="o">=</span>node-feature-discovery
helm <span class="nb">install </span>nfd/node-feature-discovery <span class="nt">--set</span> <span class="nv">nameOverride</span><span class="o">=</span>NFDinstance <span class="nt">--set</span> master.replicaCount<span class="o">=</span>2 <span class="nt">--namespace</span> <span class="nv">$NFD_NS</span> <span class="nt">--create-namespace</span>
</code></pre> </div></div> <h2 id="upgrading-the-chart">Upgrading the chart</h2> <p>To upgrade the <code class="language-plaintext highlighter-rouge notranslate">node-feature-discovery</code> deployment to master via Helm.</p> <h3 id="from-v07-and-older">From v0.7 and older</h3> <p>Please see the <a href="https://kubernetes-sigs.github.io/node-feature-discovery/v0.7/get-started/deployment-and-usage.html#uninstallation">uninstallation guide</a>. And then follow the standard <a href="#deployment">deployment instructions</a>.</p> <h3 id="from-v08---v011">From v0.8 - v0.11</h3> <p>Helm deployment of NFD was introduced in v0.8.0.</p> <div class="language-bash highlighter-rouge notranslate"><div class="highlight"><pre class="highlight"><code><span class="nb">export </span><span class="nv">NFD_NS</span><span class="o">=</span>node-feature-discovery
<span class="c"># Uninstall the old NFD deployment</span>
helm uninstall node-feature-discovery <span class="nt">--namespace</span> <span class="nv">$NFD_NS</span>
<span class="c"># Update Helm repository</span>
helm repo update
<span class="c"># Install the new NFD deployment</span>
helm upgrade <span class="nt">--install</span> node-feature-discovery nfd/node-feature-discovery <span class="nt">--namespace</span> <span class="nv">$NFD_NS</span> <span class="nt">--set</span> master.enable<span class="o">=</span><span class="nb">false</span>
<span class="c"># Wait for NFD Worker to be ready</span>
kubectl <span class="nb">wait</span> <span class="nt">--timeout</span><span class="o">=</span><span class="nt">-1s</span> <span class="nt">--for</span><span class="o">=</span><span class="nv">condition</span><span class="o">=</span>ready pod <span class="nt">-l</span> app.kubernetes.io/name<span class="o">=</span>node-feature-discovery <span class="nt">--namespace</span> <span class="nv">$NFD_NS</span>
<span class="c"># Enable the NFD Master</span>
helm upgrade <span class="nt">--install</span> node-feature-discovery nfd/node-feature-discovery <span class="nt">--namespace</span> <span class="nv">$NFD_NS</span> <span class="nt">--set</span> master.enable<span class="o">=</span><span class="nb">true</span>
</code></pre> </div></div> <h3 id="from-v012---v013">From v0.12 - v0.13</h3> <p>In v0.12 the <code class="language-plaintext highlighter-rouge notranslate">NodeFeature</code> CRD was introduced as experimental. The API was not enabled by default.</p> <div class="language-bash highlighter-rouge notranslate"><div class="highlight"><pre class="highlight"><code><span class="nb">export </span><span class="nv">NFD_NS</span><span class="o">=</span>node-feature-discovery
<span class="c"># Update Helm repository</span>
helm repo update
<span class="c"># Install and upgrade CRD's</span>
kubectl apply <span class="nt">-f</span> https://raw.githubusercontent.com/kubernetes-sigs/node-feature-discovery/master/deployment/base/nfd-crds/nfd-api-crds.yaml
<span class="c"># Install the new NFD deployment</span>
helm upgrade node-feature-discovery nfd/node-feature-discovery <span class="nt">--namespace</span> <span class="nv">$NFD_NS</span> <span class="nt">--set</span> master.enable<span class="o">=</span><span class="nb">false</span>
<span class="c"># Wait for NFD Worker to be ready</span>
kubectl <span class="nb">wait</span> <span class="nt">--timeout</span><span class="o">=</span><span class="nt">-1s</span> <span class="nt">--for</span><span class="o">=</span><span class="nv">condition</span><span class="o">=</span>ready pod <span class="nt">-l</span> app.kubernetes.io/name<span class="o">=</span>node-feature-discovery <span class="nt">--namespace</span> <span class="nv">$NFD_NS</span>
<span class="c"># Enable the NFD Master</span>
helm upgrade node-feature-discovery nfd/node-feature-discovery <span class="nt">--namespace</span> <span class="nv">$NFD_NS</span> <span class="nt">--set</span> master.enable<span class="o">=</span><span class="nb">true</span>
</code></pre> </div></div> <h3 id="from-v014">From v0.14+</h3> <p>As of version v0.14 the Helm chart is the primary deployment method for NFD, and the CRD <code class="language-plaintext highlighter-rouge notranslate">NodeFeature</code> is enabled by default.</p> <div class="language-bash highlighter-rouge notranslate"><div class="highlight"><pre class="highlight"><code><span class="nb">export </span><span class="nv">NFD_NS</span><span class="o">=</span>node-feature-discovery
<span class="c"># Update Helm repository</span>
helm repo update
<span class="c"># Install and upgrade CRD's</span>
kubectl apply <span class="nt">-f</span> https://raw.githubusercontent.com/kubernetes-sigs/node-feature-discovery/master/deployment/base/nfd-crds/nfd-api-crds.yaml
<span class="c"># Install the new NFD deployment</span>
helm upgrade node-feature-discovery nfd/node-feature-discovery <span class="nt">--namespace</span> <span class="nv">$NFD_NS</span>
</code></pre> </div></div> <h2 id="uninstalling-the-chart">Uninstalling the chart</h2> <p>To uninstall the <code class="language-plaintext highlighter-rouge notranslate">node-feature-discovery</code> deployment:</p> <div class="language-bash highlighter-rouge notranslate"><div class="highlight"><pre class="highlight"><code><span class="nb">export </span><span class="nv">NFD_NS</span><span class="o">=</span>node-feature-discovery
helm uninstall node-feature-discovery <span class="nt">--namespace</span> <span class="nv">$NFD_NS</span>
</code></pre> </div></div> <p>The command removes all the Kubernetes components associated with the chart and deletes the release. It also runs a post-delete hook that cleans up the nodes of all labels, annotations, taints and extended resources that were created by NFD.</p> <h2 id="chart-parameters">Chart parameters</h2> <p>To tailor the deployment of the Node Feature Discovery to your needs following Chart parameters are available.</p> <h3 id="general-parameters">General parameters</h3> <table> <thead> <tr> <th>Name</th> <th>Type</th> <th>Default</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">image.repository</code></td> <td>string</td> <td><code class="language-plaintext highlighter-rouge notranslate">gcr.io/k8s-staging-nfd/node-feature-discovery</code></td> <td>NFD image repository</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">image.tag</code></td> <td>string</td> <td><code class="language-plaintext highlighter-rouge notranslate">master</code></td> <td>NFD image tag</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">image.pullPolicy</code></td> <td>string</td> <td><code class="language-plaintext highlighter-rouge notranslate">Always</code></td> <td>Image pull policy</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">imagePullSecrets</code></td> <td>array</td> <td>[]</td> <td>ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. <a href="https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod">More info</a>.</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">nameOverride</code></td> <td>string</td> <td> </td> <td>Override the name of the chart</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">fullnameOverride</code></td> <td>string</td> <td> </td> <td>Override a default fully qualified app name</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">featureGates.NodeFeatureAPI</code></td> <td>bool</td> <td>true</td> <td>Enable the <a href="/node-feature-discovery/master/usage/custom-resources.html#nodefeature">NodeFeature</a> CRD API for communicating node features. This will automatically disable the gRPC communication.</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">featureGates.NodeFeatureGroupAPI</code></td> <td>bool</td> <td>false</td> <td>Enable the <a href="/node-feature-discovery/master/usage/custom-resources.html#nodefeaturegroup">NodeFeatureGroup</a> CRD API.</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">featureGates.DisableAutoPrefix</code></td> <td>bool</td> <td>false</td> <td>Enable <a href="/node-feature-discovery/master/reference/feature-gates.html#disableautoprefix">DisableAutoPrefix</a> feature gate. Disables automatic prefixing of unprefixed labels, annotations and extended resources.</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">prometheus.enable</code></td> <td>bool</td> <td>false</td> <td>Specifies whether to expose metrics using prometheus operator</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">prometheus.labels</code></td> <td>dict</td> <td>{}</td> <td>Specifies labels for use with the prometheus operator to control how it is selected</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">prometheus.scrapeInterval</code></td> <td>string</td> <td>10s</td> <td>Specifies the interval by which metrics are scraped</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">priorityClassName</code></td> <td>string</td> <td> </td> <td>The name of the PriorityClass to be used for the NFD pods.</td> </tr> </tbody> </table> <p>Metrics are configured to be exposed using prometheus operator API's by default. If you want to exp