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

部署插件

在目标计算节点部署Kunpeng TAP,并且验证插件的运行状态。

前提条件

Kunpeng TAP的运行依赖于K8s集群,当前支持使用Dockershim通信方式的Docker和Containerd。在部署该插件之前,需确保K8s集群已完成正确的网络配置,并且能够顺利部署和运行容器实例。

操作步骤

  1. 在目标计算节点导入Kunpeng TAP的可执行文件。
  2. 启动Kunpeng TAP。
    启动方式一:systemd启动。可直接进入源代码目录下,通过make命令安装和启动。
    1. 进入源代码目录。
      cd /path/to/topology-affinity-plugin

      其中“/path/to/topology-affinity-plugin”为Kunpeng TAP源码的实际路径,请根据实际情况修改。

    2. 安装插件,默认以Docker模式启动。
      make install-service
    3. 指定运行时为Docker,运行如下安装命令。
      make install-service-docker

      如果需要修改启动参数,则在源代码目录下的“hack/kunpeng-tap.service.docker”文件的“ExecStart=”下进行修改:

      [Unit]
      Description=Kunpeng Topology-Affinity Plugin Service
      After=network.target
      
      [Service]
      ExecStart=/usr/local/bin/kunpeng-tap --runtime-proxy-endpoint="/var/run/kunpeng/tap-runtime-proxy.sock" \
          --container-runtime-service-endpoint="/var/run/docker.sock" --container-runtime-mode="Docker" \
          --resource-policy="numa-aware"
      Restart=always
      RestartSec=5
      
      [Install]
      WantedBy=multi-user.target

      指定运行时为Containerd,运行如下安装命令,参数配置可在源代码目录下的“hack/kunpeng-tap.service.containerd”文件中修改。

      make install-service-containerd
    4. 安装完毕后,借助如下命令启动插件,并且自动查看启动后的服务状态。
      1
      make start-service
      
    5. 查看日志信息。
      1
      journalctl -u kunpeng-tap
      
    启动方式二:直接启动。
    • Docker运行时下的启动命令,示例如下:
      kunpeng-tap --runtime-proxy-endpoint="/var/run/kunpeng/tap-runtime-proxy.sock" \
          --container-runtime-service-endpoint="/var/run/docker.sock" --container-runtime-mode="Docker" \
          --resource-policy="numa-aware"
    • Containerd运行时下的启动命令,示例如下:
      kunpeng-tap --runtime-proxy-endpoint="/var/run/kunpeng/tap-runtime-proxy.sock" \
          --container-runtime-service-endpoint="/var/run/containerd/containerd.sock" --container-runtime-mode="Containerd" \
          --resource-policy="numa-aware"

    用户可根据需求修改相关参数后启动。参数说明见表1

    表1 参数说明

    参数名称

    参数描述

    默认值

    配置原则

    container-runtime-mode

    插件对接的容器运行时,对应集群运行时设置Docker或Containerd。

    Docker

    依照K8s集群使用的容器运行时决定

    resource-policy

    容器资源的优化策略,目前支持numa-aware和topology-aware。

    • numa-aware策略支持Burstable类型容器进行CPU的NUMA亲和。
    • topology-aware策略提供Socket、Die、NUMA等拓扑层次的CPU亲和,额外支持内存、GPU资源的优化

    numa-aware

    依照需求进行选择

    enable-memory-topology

    启用topology-aware策略后(设置“--resource-policy=topology-aware”),内存资源的NUMA优化功能默认关闭,如需开启容器内存的NUMA亲和功能,则设置“--enable-memory-topology=true”

    false

    暂处于Alpha阶段

    v

    日志信息等级,调整范围2至5。

    2

    等级越高,日志输出越详细

  3. 在计算节点配置Kubelet参数。
    为了让Kunpeng TAP成功代理Kubelet的请求,需要在Kubelet的命令行配置中增加如下参数。
    • 在Docker场景下,在Kubelet启动参数中添加或修改对应参数项如下所示:
      1
      --docker-endpoint=unix:///var/run/kunpeng/tap-runtime-proxy.sock
      

      以使用kubeadm安装集群为例,可以在“/var/lib/kubelet/kubeadm-flags.env”添加参数。

      KUBELET_KUBEADM_ARGS="--network-plugin=cni --pod-infra-container-image=k8s.gcr.io/pause:3.6 --docker-endpoint=unix:///var/run/kunpeng/tap-runtime-proxy.sock"

      注意,修改Kubelet参数后,须运行如下命令重新启动kubelet。

      systemctl daemon-reload
      systemctl restart kubelet
    • 在Containerd场景下,修改Kubelet的启动参数。
      --container-runtime=remote --container-runtime-endpoint=unix:///var/run/kunpeng/tap-runtime-proxy.sock

      此时,“/var/lib/kubelet/kubeadm-flags.env”的参数示例可能是:

      KUBELET_KUBEADM_ARGS="--network-plugin=cni --pod-infra-container-image=k8s.gcr.io/pause:3.6 --container-runtime=remote --container-runtime-endpoint=unix:///var/run/kunpeng/tap-runtime-proxy.sock"

      注意,修改Kubelet参数后,须运行如下命令重新启动kubelet。

      systemctl daemon-reload
      systemctl restart kubelet