3.6. 使用 NFD Topology Updater
Node Feature Discovery(NFD)Topology Updater 是一个守护进程,负责检查 worker 节点上分配的资源。它考虑可以为每个区分配给新 pod 的资源,其中区域可以是 Non-Uniform Memory Access(NUMA)节点。NFD Topology Updater 将信息发送到 nfd-master,它会创建一个与集群中的所有 worker 节点对应的 NodeResourceTopology
自定义资源(CR)。NFD Topology Updater 其中一个实例在集群的每个节点上运行。
要在 NFD 中启用 Topology Updater worker,将 NodeFeatureDiscovery
CR 中的 topologyupdater
变量设置为 true
,如使用 Node Feature Discovery Operator 一节中所述。
3.6.1. NodeResourceTopology CR
使用 NFD Topology Updater 时,NFD 会创建与节点资源硬件拓扑对应的自定义资源实例,例如:
apiVersion: topology.node.k8s.io/v1alpha1 kind: NodeResourceTopology metadata: name: node1 topologyPolicies: ["SingleNUMANodeContainerLevel"] zones: - name: node-0 type: Node resources: - name: cpu capacity: 20 allocatable: 16 available: 10 - name: vendor/nic1 capacity: 3 allocatable: 3 available: 3 - name: node-1 type: Node resources: - name: cpu capacity: 30 allocatable: 30 available: 15 - name: vendor/nic2 capacity: 6 allocatable: 6 available: 6 - name: node-2 type: Node resources: - name: cpu capacity: 30 allocatable: 30 available: 15 - name: vendor/nic1 capacity: 3 allocatable: 3 available: 3
3.6.2. NFD Topology Updater 命令行标志
要查看可用的命令行标志,请运行 nfd-topology-updater -help
命令。例如,在 podman 容器中,运行以下命令:
$ podman run gcr.io/k8s-staging-nfd/node-feature-discovery:master nfd-topology-updater -help
-ca-file
-ca-file
标志是用于控制 NFD Topology Updater 上的 mutual TLS 身份验证的三个标记之一,其他两个是 -cert-file
和 '-key-file'。此标志指定用于验证 nfd-master 真实性的 TLS root 证书。
默认: 空
-ca-file
标志必须与 -cert-file
和 -key-file
标志一起指定。
Example
$ nfd-topology-updater -ca-file=/opt/nfd/ca.crt -cert-file=/opt/nfd/updater.crt -key-file=/opt/nfd/updater.key
-cert-file
-cert-file
标志是在 NFD Topology Updater 上控制 mutual TLS 身份验证的三个标记之一,其他两个与 -ca-file
和 -key-file flags
。此标志指定为身份验证传出请求的 TLS 证书。
默认: 空
-cert-file
标志必须与 -ca-file
和 -key-file
标志一起指定。
Example
$ nfd-topology-updater -cert-file=/opt/nfd/updater.crt -key-file=/opt/nfd/updater.key -ca-file=/opt/nfd/ca.crt
-h, -help
打印使用方法并退出.
-key-file
key-file
标志是控制 NFD Topology Updater 上的 mutual TLS 身份验证的三个标记之一,其他两个是 -ca-file
和 -cert-file
。此标志指定与给定证书文件或 -cert-file
对应的私钥,用于验证传出请求。
默认: 空
key-file
标志必须与 -ca-file
和 -cert-file
标志一起指定。
Example
$ nfd-topology-updater -key-file=/opt/nfd/updater.key -cert-file=/opt/nfd/updater.crt -ca-file=/opt/nfd/ca.crt
-kubelet-config-file
-kubelet-config-file
指定到 Kubelet 配置文件的路径。
默认:/host-var/lib/kubelet/config.yaml
Example
$ nfd-topology-updater -kubelet-config-file=/var/lib/kubelet/config.yaml
-no-publish
-no-publish
标志禁用与 nfd-master 的所有通信,使其成为 nfd-topology-updater 的空运行标记。NFD Topology Updater 会正常运行资源硬件拓扑检测,但不会将 CR 请求发送到 nfd-master。
默认:false
Example
$ nfd-topology-updater -no-publish
3.6.2.1. -oneshot
-oneshot
标志会导致 NFD Topology Updater 在传递资源硬件拓扑检测后退出。
默认:false
Example
$ nfd-topology-updater -oneshot -no-publish
-podresources-socket
-podresources-socket
标志指定 Unix 套接字的路径,其中 kubelet 会导出 gRPC 服务来启用使用中的 CPU 和设备的发现,并为它们提供元数据。
默认:/host-var/liblib/kubelet/pod-resources/kubelet.sock
Example
$ nfd-topology-updater -podresources-socket=/var/lib/kubelet/pod-resources/kubelet.sock
-server
-server
标志指定要连接到的 nfd-master 端点的地址。
默认:localhost:8080
Example
$ nfd-topology-updater -server=nfd-master.nfd.svc.cluster.local:443
-server-name-override
-server-name-override
标志指定从 nfd-master TLS 证书期望的通用名称(CN)。这个标志主要用于开发和调试目的。
默认: 空
Example
$ nfd-topology-updater -server-name-override=localhost
-sleep-interval
-sleep-interval
标志指定资源硬件拓扑重新检查和自定义资源更新之间的间隔。非正数值意味着睡眠间隔无限,不会进行重新检测。
默认:60s
Example
$ nfd-topology-updater -sleep-interval=1h
-version
打印版本并退出。
-watch-namespace
watch-namespace
标志指定命名空间,以确保仅在指定命名空间中运行的容器集发生资源硬件拓扑考试。在资源核算过程中不考虑在指定命名空间中运行的 Pod。这对于测试和调试目的特别有用。*
值表示所有命名空间中的所有 pod 在计数过程中都会考虑。
默认:*
Example
$ nfd-topology-updater -watch-namespace=rte