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

部署插件

在所有工作节点导入K8s NUMA亲和性调度插件容器镜像,在管理节点安装并验证插件的部署状态。

前提条件

K8s NUMA亲和性调度插件的运行依赖于K8s集群以及Containerd容器运行时。在部署该插件之前,需确保K8s集群已完成正确的网络配置,并且能够顺利部署和运行容器实例。

运行环境准备完成后,在计算节点的Containerd配置文件(默认为“/etc/containerd/config.toml”)当中打开NRI功能。如果不存在上述配置文件,则可运行如下命令创建:

containerd config default > /etc/containerd/config.toml

在配置文件中,打开NRI功能,如果不存在则进行添加:

[plugins]
  ...
  [plugins."io.containerd.nri.v1.nri"]
    disable = false  # 打开NRI
    disable_connections = false
    plugin_config_path = "/etc/nri/conf.d"
    plugin_path = "/opt/nri/plugins"
    plugin_registration_timeout = "5s"
    plugin_request_timeout = "2s"
    socket_path = "/var/run/nri/nri.sock"

配置修改后,重启Containerd,并检查是否重启成功。

systemctl daemon-reload
systemctl restart containerd
systemctl status containerd

更多详细内容,可查询Containerd官方文档

工作节点

需要在所有工作节点导入K8s NUMA亲和性调度插件的容器镜像。

在工作节点上,导入通过编译插件编译获得的插件容器镜像numadj-nriplugin.tar
ctr -n k8s.io images import /path/to/numadj-nriplugin.tar

其中“/path/to/numadj-nriplugin.tar”为插件容器镜像的实际路径,请根据实际情况修改。

管理节点

  1. 在管理节点上,进入k8s-scheduling-tuning-plugin源码目录,并执行安装插件的命令。
    cd /path/to/k8s-scheduling-tuning-plugin
    make plugin_install

    其中“/path/to/k8s-scheduling-tuning-plugin”为K8s NUMA亲和性调度插件源码的实际路径,请根据实际情况修改。

  2. 验证插件的部署状态。

    查看插件的Pod是否已成功部署。

    kubectl get pods -A | grep numaadj

    如果部署成功,将看到输出中包含numaadj开头的Pod处于Running状态。

    1
    2
    3
    4
    NAME                     READY   STATUS              RESTARTS   AGE
    numaadj-db62k            1/1     Running             0          4m55s
    numaadj-kmp9p            1/1     Running             0          4m55s
    numaadj-pqdsx            1/1     Running             0          4m55s
    

    如果无法启动Pod,可以检查插件的日志信息:

    kubectl logs numaadj-db62k

    出现错误信息:"failed to start with initial configuration: failed to start NRI plugin ....."时,请检查是否开启Containerd的NRI功能。

  3. 可选:当不再需要使用该插件时,可以卸载插件。

    请在管理节点卸载插件。当前步骤仅供需要卸载插件时参考,不属于部署插件的必要操作步骤。

    1. 在管理节点上,进入k8s-scheduling-tuning-plugin源码目录,并执行插件卸载命令。
      cd /path/to/k8s-scheduling-tuning-plugin
      make plugin_uninstall

      其中“/path/to/k8s-scheduling-tuning-plugin”为K8s NUMA亲和性调度插件源码的实际路径,请根据实际情况修改。

    2. 验证插件的Pod的删除状态。

      查看插件的Pod是否已成功删除。

      kubectl get pods -A | grep numaadj

      如果卸载成功,将看到输出中不再包含numaadj开头的Pod。

      1
      NAME                     READY   STATUS              RESTARTS   AGE