<!DOCTYPE html><htmllang="en"dir="auto"><head><metacharset="utf-8"><metaname="viewport"content="width=device-width, initial-scale=1, maximum-scale=5, user-scalable=no"><metaname="description"content="NFD-Master NFD-Master is responsible for connecting to the Kubernetes API server and updating node objects. More specifically, it modifies node lab..."><metaname="revised"content=""><metaname="author"content="Kubernetes SIGs"><metaname="generator"content="rundocs/jekyll-rtd-theme v2.0.10"><metaname="theme-color"content="#2980b9"><title>NFD-Master · Node Feature Discovery</title><metaname="twitter:title"content="NFD-Master · Node Feature Discovery"><metaname="twitter:description"content="NFD-Master NFD-Master is responsible for connecting to the Kubernetes API server and updating node objects. More specifically, it modifies node lab..."><metaname="twitter:card"content="summary"><metaname="twitter:site"content="@Kubernetes SIGs"><metaname="twitter:url"content="https://kubernetes-sigs.github.com/node-feature-discovery/v0.13/usage/nfd-master.html"><metaname="twitter:creator"content="@rundocs/jekyll-rtd-theme v2.0.10"><metaproperty="og:title"content="NFD-Master · Node Feature Discovery"><metaproperty="og:description"content="NFD-Master NFD-Master is responsible for connecting to the Kubernetes API server and updating node objects. More specifically, it modifies node lab..."><metaproperty="og:locale"content="en"><metaproperty="og:url"content="https://kubernetes-sigs.github.com/node-feature-discovery/v0.13/usage/nfd-master.html"><metaproperty="og:type"content="article"><metaproperty="article:author"content="Kubernetes SIGs"><metaproperty="article:published_time"content="2016-07-23T00:07:52-05:00"><metaproperty="article:modified_time"content="2024-01-16T03:59:43-06:00"><scripttype="application/ld+json">{"@context":"https://schema.org","@type":"Article","mainEntityOfPage":{"@type":"WebPage","@id":"https://kubernetes-sigs.github.com/node-feature-discovery/v0.13/usage/nfd-master.html"},"headline":"NFD-Master · Node Feature Discovery","image":[],"author":{"@type":"Person","name":"Kubernetes SIGs"},"datePublished":"2016-07-23T00:07:52-05:00","dateModified":"2024-01-16T03:59:43-06:00","publisher":{"@type":"Organization","name":"Kubernetes SIGs","logo":{"@type":"ImageObject","url":"https://avatars.githubusercontent.com/u/36015203?v=4"}},"description":"NFD-Master NFD-Master is responsible for connecting to the Kubernetes API server and updating node objects. More specifically, it modifies node lab..."}</script><linkrel="dns-prefetch"href="https://cdn.jsdelivr.net"><linkrel="prev"href="https://kubernetes-sigs.github.com/node-feature-discovery/v0.13/usage/using-labels.html"><linkrel="next"href="https://kubernetes-sigs.github.com/node-feature-discovery/v0.13/usage/nfd-worker.html"><linkrel="canonical"href="https://kubernetes-sigs.github.com/node-feature-discovery/v0.13/usage/nfd-master.html"><linkrel="icon"type="image/svg+xml"href="/node-feature-discovery/v0.13/assets/images/favicon.svg"><linkrel="icon"type="image/png"href="/node-feature-discovery/v0.13/assets/images/favicon-16x16.png"sizes="16x16"><linkrel="icon"type="image/png"href="/node-feature-discovery/v0.13/assets/images/favicon-32x32.png"sizes="32x32"><linkrel="icon"type="image/png"href="/node-feature-discovery/v0.13/assets/images/favicon-96x96.png"sizes="96x96"><linkrel="mask-icon"href="/node-feature-discovery/v0.13/assets/images/favicon.svg"color="#2980b9"><linkrel="apple-touch-icon"href="/node-feature-discovery/v0.13/assets/images/apple-touch-icon-300x300.jpg"><linkrel="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:"NodeFeatureDiscovery",baseurl:"/node-feature-discovery/v0.13",i18n:{search_results:"SearchResults",search_results_found:"Searchfinished,found#page(s
</code></pre></div></div><p>In Helm deployments, <ahref="/node-feature-discovery/v0.13/deployment/helm.html#master-pod-parameters">Master pod parameter</a><codeclass="language-plaintext highlighter-rouge notranslate">master.config</code> can be used to edit the respective configuration.</p><p>See <ahref="/node-feature-discovery/v0.13/reference/master-configuration-reference.html">nfd-master configuration file reference</a> for more details. The (empty-by-default) <ahref="https://github.com/kubernetes-sigs/node-feature-discovery/blob/v0.13.6/deployment/components/master-config/nfd-master.conf.example">example config</a> contains all available configuration options and can be used as a reference for creating a configuration.</p><h2id="deployment-notes">Deployment notes</h2><p>NFD-Master runs as a deployment, by default it prefers running on the cluster's master nodes but will run on worker nodes if no master nodes are found.</p><p>For High Availability, you should simply increase the replica count of the deployment object. You should also look into adding <ahref="https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity">inter-pod</a> affinity to prevent masters from running on the same node. However note that inter-pod affinity is costly and is not recommended in bigger clusters.</p><blockquote><p>NOTE: If the <ahref="#nodefeature-controller">NodeFeature controller</a> is enabled the replica count should be 1.</p></blockquote><p>If you have RBAC authorization enabled (as is the default e.g. with clusters initialized with kubeadm) you need to configure the appropriate ClusterRoles, ClusterRoleBindings and a ServiceAccount in order for NFD to create node labels. The provided template will configure these for you.</p></div></div><divclass="navigation-bottom d-flex flex-justify-between py-3"role="navigation"aria-label="footer navigation"><divclass="prev"><ahref="/node-feature-discovery/v0.13/usage/using-labels.html"class="btn"title="Using node labels"accesskey="p"rel="prev"><iclass="fa fa-arrow-circle-left"></i> Previous </a></div><divclass="next"><ahref="/node-feature-discovery/v0.13/usage/nfd-worker.html"class="btn"title="NFD-Worker"accesskey="n"rel="next"> Next <iclass="fa fa-arrow-circle-right"></i></a></div></div><hr><divclass="copyright text-center text-gray"role="contentinfo"><iclass="fa fa-copyright"></i><spanclass="time">2016-2024,</span><aclass="text-gray"href="https://github.com/kubernetes-sigs"rel="noreferrer"target="_blank">Kubernetes SIGs</a> Revision <aclass="text-gray"href="https://github.com/kubernetes-sigs/node-feature-discovery/commit/"title=""rel="noreferrer"target="_blank"></a><br><divclass="generator"> Built with <ahref="https://pages.github.com"rel="noreferrer"target="_blank"title="github-pages v227">GitHub Pages</a> using a <ahref="https://github.com/rundocs/jekyll-rtd-theme"rel="noreferrer"target="_blank"title="rundocs/jekyll-rtd-theme v2.0.10">theme</a> provided by <ahref="https://rundocs.io"rel="noreferrer"target="_blank">RunDocs</a>. </div></div></div></div><divclass="addons-wrap d-flex flex-column overflow-y-auto"><divclass="status d-flex flex-justify-between p-2"><divclass="title p-1"><iclass="fa fa-book"></i> Node Feature Discovery </div><divclass="branch p-1"><spanclass="name"> v0.13 </span><iclass="fa fa-caret-down"></i></div></div><divclass="addons d-flex flex-column height-full p-2 d-none"><dlid="versions"><dt>Versions</dt><scriptsrc="/node-feature-discovery/versions.js"></script><script>vardt=document.getElementById('versions');varitems=getVersionListItems();for(vari=0;i<items.length;i++){vardd=document.createElement('dd');vara=dd.appendChild(document.createElement('a'));a.appendChild(document.createTextNode(items[i].name));a.href=items[i].url;dt.appendChild(dd);}</script></dl><dl><dt>GitHub</dt><dd><ahref="https://github.com/kubernetes-sigs/node-feature-discovery"title="Stars: 654"><iclass="fa fa-github"></i> Home