mirror of
https://github.com/kubernetes-sigs/node-feature-discovery.git
synced 2025-03-14 20:56:42 +00:00
Node feature discovery for Kubernetes
Build a "minimal" variant of the nfd image based on gcr.io/distroless/base. The motivations behind the minimal image are image hardening (security) and reducing the image footprint (from ca. 108MB down to about 40MB). The practical effect of deploying the minimal image is that no runtimes for running worker hooks are present, not even a shell. This means that only statically linked linked hook binaries are supported. Also, because of the image hardening live debugging of the minimal image by attaching to the container is not possible, and, the "full" image needs to be used for that purpose. |
||
---|---|---|
.github | ||
cmd | ||
demo | ||
deployment/node-feature-discovery | ||
docs | ||
pkg | ||
scripts | ||
source | ||
test | ||
.dockerignore | ||
.gitignore | ||
cloudbuild.yaml | ||
code-of-conduct.md | ||
CONTRIBUTING.md | ||
Dockerfile | ||
go.mod | ||
go.sum | ||
LICENSE | ||
Makefile | ||
nfd-daemonset-combined.yaml.template | ||
nfd-master.yaml.template | ||
nfd-prune.yaml.template | ||
nfd-worker-daemonset.yaml.template | ||
nfd-worker-job.yaml.template | ||
nfd-worker.conf.example | ||
OWNERS | ||
README.md | ||
SECURITY_CONTACTS |
Node Feature Discovery
Welcome to Node Feature Discovery – a Kubernetes add-on for detecting hardware features and system configuration!
See our Documentation for detailed instructions and reference
Quick-start – the short-short version
$ kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/node-feature-discovery/v0.7.0/nfd-master.yaml.template
namespace/node-feature-discovery created
...
$ kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/node-feature-discovery/v0.7.0/nfd-worker-daemonset.yaml.template
daemonset.apps/nfd-worker created
$ kubectl -n node-feature-discovery get all
NAME READY STATUS RESTARTS AGE
pod/nfd-master-555458dbbc-sxg6w 1/1 Running 0 56s
pod/nfd-worker-mjg9f 1/1 Running 0 17s
...
$ kubectl get no -o json | jq .items[].metadata.labels
{
"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",
...