鲲鹏社区首页
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

使用

K8s NUMA亲和性调度插件允许在部署Pod时指定CPU资源需求,系统将自动按NUMA亲和性分配资源。通过编写YAML文件并指定节点选择器,可以将Pod部署到特定节点上。

成功部署插件后,只需在部署其他Pod时指定CPU资源的request和limit值,系统将自动按照NUMA亲和性原则进行资源分配。

以下为部署一个单容器Pod的YAML文件示例,供用户参考。该Pod请求的CPU资源最小值为4核,最大值为8核,内存固定为4Gi。容器使用名为openeuler:loop的测试镜像,该镜像可以通过执行loop N命令启动N个循环线程,最多占用N个CPU核。

  1. 创建YAML文件,例如example.yaml,并在YAML文件中写入以下配置。
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    apiVersion: v1
    kind: Pod
    metadata:
      name: nri-test
      annotations:
    spec:
      containers:
      - name: nri-1
        image: openeuler:loop
        imagePullPolicy: IfNotPresent
        command: ["loop"]
        args: ["10"]
        resources:
          requests:
            cpu: "4"
            memory: "4Gi"
          limits:
            cpu: "8"
            memory: "4Gi"
    
  2. 在多工作节点的K8s集群中,Pod可能会被调度到不同节点的NUMA内。如果希望Pod在指定的节点上运行,只需在YAML文件的spec部分加入nodeSelector字段,并指定kubernetes.io/hostname为目标节点的名称。
    以指定Pod在compute01节点上运行为例,需要在YAML文件中的spec部分加入以下内容。
    1
    2
      nodeSelector:
        kubernetes.io/hostname: compute01
    
  3. 编写好YAML文件之后,只需要管理节点应用该YAML文件即可完成Pod的部署。
    kubectl apply -f example.yaml