Skip to content
Due to upgrade issues with the Envoy gateway and the offline installation environments, upgrading to MKE 4k 4.1.3 is not recommended. These issues are fixed in the 4.1.4 release. For version 4.1.3, Mirantis only supports fresh installations.

Node Feature Discovery (NFD)#

Node Feature Discovery (NFD) software detects the hardware features that are available on each node in a Kubernetes cluster, and advertises the detected features through node labels. NFD shares this information with kube-scheduler, which uses the information in its work.

Configuration#

MKE 4k supports the deployment of NFD as an add-on. Enabled by default, the NFD add-on deploys as a helm chart, version 0.16.1 in the mke namespace.

Info

The mke4.yaml configuration file does not expose parameters for the NFD add-on.

  1. Obtain the default configuration file:

    mkectl init
    
  2. Apply the configuration:

    mkectl apply -f [config-file]
    
  3. Verify the successful deployment of NFD in the cluster:

    kubectl get pods,services,deployments -n mke -l app.kubernetes.io/name=node-feature-discovery
    

    Sample output:

    NAME                                                 READY   STATUS    RESTARTS   AGE
    pod/node-feature-discovery-gc-5477c88f99-dltjp       1/1     Running   0          24h
    pod/node-feature-discovery-master-665757d679-g8kt9   1/1     Running   0          24h
    pod/node-feature-discovery-worker-vv28z              1/1     Running   0          24h
    pod/node-feature-discovery-worker-zlb5s              1/1     Running   0          24h
    NAME                                            READY   UP-TO-DATE   AVAILABLE   AGE
    deployment.apps/node-feature-discovery-gc       1/1     1            1           24h
    deployment.apps/node-feature-discovery-master   1/1     1            1           24h
    
  4. Verify the labels on the nodes:

    kubectl get nodes -o json | jq '.items[].metadata.labels'
    

    Sample output:

    {
    "beta.kubernetes.io/arch": "amd64",
    "beta.kubernetes.io/os": "linux",
    "feature.node.kubernetes.io/cpu-cpuid.ADX": "true",
    "feature.node.kubernetes.io/cpu-cpuid.AESNI": "true",
    "feature.node.kubernetes.io/cpu-cpuid.AVX": "true",
    "feature.node.kubernetes.io/cpu-cpuid.AVX2": "true",
    "feature.node.kubernetes.io/cpu-cpuid.AVX512BW": "true",
    "feature.node.kubernetes.io/cpu-cpuid.AVX512CD": "true",
    "feature.node.kubernetes.io/cpu-cpuid.AVX512DQ": "true",
    "feature.node.kubernetes.io/cpu-cpuid.AVX512F": "true",
    "feature.node.kubernetes.io/cpu-cpuid.AVX512VL": "true",
    "feature.node.kubernetes.io/cpu-cpuid.CMPXCHG8": "true",
    "feature.node.kubernetes.io/cpu-cpuid.FMA3": "true",
    "feature.node.kubernetes.io/cpu-cpuid.FXSR": "true",
    "feature.node.kubernetes.io/cpu-cpuid.FXSROPT": "true",
    "feature.node.kubernetes.io/cpu-cpuid.HYPERVISOR": "true",
    "feature.node.kubernetes.io/cpu-cpuid.LAHF": "true",
    "feature.node.kubernetes.io/cpu-cpuid.MOVBE": "true",
    "feature.node.kubernetes.io/cpu-cpuid.MPX": "true",
    "feature.node.kubernetes.io/cpu-cpuid.OSXSAVE": "true",
    "feature.node.kubernetes.io/cpu-cpuid.SYSCALL": "true",
    "feature.node.kubernetes.io/cpu-cpuid.SYSEE": "true",
    "feature.node.kubernetes.io/cpu-cpuid.X87": "true",
    "feature.node.kubernetes.io/cpu-cpuid.XGETBV1": "true",
    "feature.node.kubernetes.io/cpu-cpuid.XSAVE": "true",
    "feature.node.kubernetes.io/cpu-cpuid.XSAVEC": "true",
    "feature.node.kubernetes.io/cpu-cpuid.XSAVEOPT": "true",
    "feature.node.kubernetes.io/cpu-cpuid.XSAVES": "true",
    "feature.node.kubernetes.io/cpu-hardware_multithreading": "true",
    "feature.node.kubernetes.io/cpu-model.family": "6",
    "feature.node.kubernetes.io/cpu-model.id": "85",
    "feature.node.kubernetes.io/cpu-model.vendor_id": "Intel",
    "feature.node.kubernetes.io/kernel-config.NO_HZ": "true",
    "feature.node.kubernetes.io/kernel-config.NO_HZ_IDLE": "true",
    "feature.node.kubernetes.io/kernel-version.full": "5.15.0-1070-aws",
    "feature.node.kubernetes.io/kernel-version.major": "5",
    "feature.node.kubernetes.io/kernel-version.minor": "15",
    "feature.node.kubernetes.io/kernel-version.revision": "0",
    "feature.node.kubernetes.io/memory-swap": "true",
    "feature.node.kubernetes.io/pci-0300_1d0f.present": "true",
    "feature.node.kubernetes.io/storage-nonrotationaldisk": "true",
    "feature.node.kubernetes.io/system-os_release.ID": "ubuntu",
    "feature.node.kubernetes.io/system-os_release.VERSION_ID": "20.04",
    "feature.node.kubernetes.io/system-os_release.VERSION_ID.major": "20",
    "feature.node.kubernetes.io/system-os_release.VERSION_ID.minor": "04",
    "kubernetes.io/arch": "amd64",
    "kubernetes.io/hostname": "ip-172-31-87-104.us-west-2.compute.internal",
    "kubernetes.io/os": "linux",
    "node-role.kubernetes.io/control-plane": "true",
    "node.k0sproject.io/role": "control-plane"
    }
    {
    "beta.kubernetes.io/arch": "amd64",
    "beta.kubernetes.io/os": "linux",
    "feature.node.kubernetes.io/cpu-cpuid.ADX": "true",
    "feature.node.kubernetes.io/cpu-cpuid.AESNI": "true",
    "feature.node.kubernetes.io/cpu-cpuid.AVX": "true",
    "feature.node.kubernetes.io/cpu-cpuid.AVX2": "true",
    "feature.node.kubernetes.io/cpu-cpuid.AVX512BW": "true",
    "feature.node.kubernetes.io/cpu-cpuid.AVX512CD": "true",
    "feature.node.kubernetes.io/cpu-cpuid.AVX512DQ": "true",
    "feature.node.kubernetes.io/cpu-cpuid.AVX512F": "true",
    "feature.node.kubernetes.io/cpu-cpuid.AVX512VL": "true",
    "feature.node.kubernetes.io/cpu-cpuid.CMPXCHG8": "true",
    "feature.node.kubernetes.io/cpu-cpuid.FMA3": "true",
    "feature.node.kubernetes.io/cpu-cpuid.FXSR": "true",
    "feature.node.kubernetes.io/cpu-cpuid.FXSROPT": "true",
    "feature.node.kubernetes.io/cpu-cpuid.HYPERVISOR": "true",
    "feature.node.kubernetes.io/cpu-cpuid.LAHF": "true",
    "feature.node.kubernetes.io/cpu-cpuid.MOVBE": "true",
    "feature.node.kubernetes.io/cpu-cpuid.MPX": "true",
    "feature.node.kubernetes.io/cpu-cpuid.OSXSAVE": "true",
    "feature.node.kubernetes.io/cpu-cpuid.SYSCALL": "true",
    "feature.node.kubernetes.io/cpu-cpuid.SYSEE": "true",
    "feature.node.kubernetes.io/cpu-cpuid.X87": "true",
    "feature.node.kubernetes.io/cpu-cpuid.XGETBV1": "true",
    "feature.node.kubernetes.io/cpu-cpuid.XSAVE": "true",
    "feature.node.kubernetes.io/cpu-cpuid.XSAVEC": "true",
    "feature.node.kubernetes.io/cpu-cpuid.XSAVEOPT": "true",
    "feature.node.kubernetes.io/cpu-cpuid.XSAVES": "true",
    "feature.node.kubernetes.io/cpu-hardware_multithreading": "true",
    "feature.node.kubernetes.io/cpu-model.family": "6",
    "feature.node.kubernetes.io/cpu-model.id": "85",
    "feature.node.kubernetes.io/cpu-model.vendor_id": "Intel",
    "feature.node.kubernetes.io/kernel-config.NO_HZ": "true",
    "feature.node.kubernetes.io/kernel-config.NO_HZ_IDLE": "true",
    "feature.node.kubernetes.io/kernel-version.full": "5.15.0-1070-aws",
    "feature.node.kubernetes.io/kernel-version.major": "5",
    "feature.node.kubernetes.io/kernel-version.minor": "15",
    "feature.node.kubernetes.io/kernel-version.revision": "0",
    "feature.node.kubernetes.io/memory-swap": "true",
    "feature.node.kubernetes.io/pci-0300_1d0f.present": "true",
    "feature.node.kubernetes.io/storage-nonrotationaldisk": "true",
    "feature.node.kubernetes.io/system-os_release.ID": "ubuntu",
    "feature.node.kubernetes.io/system-os_release.VERSION_ID": "20.04",
    "feature.node.kubernetes.io/system-os_release.VERSION_ID.major": "20",
    "feature.node.kubernetes.io/system-os_release.VERSION_ID.minor": "04",
    "kubernetes.io/arch": "amd64",
    "kubernetes.io/hostname": "ip-172-31-87-179.us-west-2.compute.internal",
    "kubernetes.io/os": "linux"