部署插件
在目标计算节点部署Kunpeng TAP,并且验证插件的运行状态。
前提条件
Kunpeng TAP的运行依赖于K8s集群,当前支持使用Dockershim通信方式的Docker和Containerd。在部署该插件之前,需确保K8s集群已完成正确的网络配置,并且能够顺利部署和运行容器实例。
操作步骤
- 在目标计算节点导入Kunpeng TAP的可执行文件。
- 启动Kunpeng TAP。启动方式一:systemd启动。可直接进入源代码目录下,通过make命令安装和启动。
- 进入源代码目录。
cd /path/to/topology-affinity-plugin
其中“/path/to/topology-affinity-plugin”为Kunpeng TAP源码的实际路径,请根据实际情况修改。
- 安装插件,默认以Docker模式启动。
make install-service
- 指定运行时为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
- 安装完毕后,借助如下命令启动插件,并且自动查看启动后的服务状态。
1
make start-service
- 查看日志信息。
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 参数说明 参数名称
参数描述
默认值
配置原则
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
等级越高,日志输出越详细
- 进入源代码目录。
- 在计算节点配置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
- 在Docker场景下,在Kubelet启动参数中添加或修改对应参数项如下所示: