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

工作节点操作

将工作节点加入到集群中。

请参见视频流引擎获取DemoVideoEngine.tar.gz软件包,获取后将软件包上传至服务器的“/home/k8s”目录。

  1. 容器存储隔离和大小设置。该步骤服务器重启后需重新执行。
    1
    2
    3
    4
    5
    cd /home/k8s
    tar -xvf DemoVideoEngine.tar.gz k8s/
    cd /home/k8s/k8s/DevicesPlugin
    chmod +x storage_manager.sh
    ./storage_manager.sh $ACTION $STORAGE_START_INDEX $STORAGE_END_INDEX $STORAGE_SIZE_GB $IMG_BASE
    

    命令参数说明如表1所示。

    表1 容器存储隔离和大小设置参数说明

    参数

    说明

    ACTION

    参数值为create或delete,创建或者删除。

    STORAGE_START_INDEX

    数据卷删除或创建起始编号。

    STORAGE_END_INDEX

    数据卷删除或创建结束编号,结束编号必须大于或者等于起始编号。

    STORAGE_SIZE_GB

    存储大小,单位为GB。删除时可不传。

    IMG_BASE

    基础数据卷img文件,若无基础数据卷可不传,基础数据卷img文件制作请参考制作基础数据卷。删除时可不传。参数STORAGE_SIZE_GB和IMG_BASE只传其中一个。

    例如:

    • 创建100个存储大小为32GB的存储隔离数据卷,名称为video1~video100。
      1
      ./storage_manager.sh create 1 100 32
      
    • 如果在此基础上,要增加20个存储大小为32GB的存储隔离数据卷,名称为video101~video120。
      1
      ./storage_manager.sh create 101 120 32
      
    • 删除名称为video1~video100数据卷。
      1
      ./storage_manager.sh delete 1 100
      
    • 如果在此基础上,要删除名称为video101~video120这剩余20个数据卷。
      1
      ./storage_manager.sh delete 101 120
      
    • 通过videobase.img为基础制作名为video1~video100的数据卷。
      1
      ./storage_manager.sh create 1 100 /home/mount/img/videobase.img
      

    若已执行该步骤命令,重新修改某个编号的数据卷存储大小时需先删除对应编号的数据卷再重新创建。

  2. 执行在master初始化成功时保存的图1红框中加入集群的token命令。

    例如:

    1
    2
    kubeadm join xx.xx.xx.xx:xxxx --token 7h0hpd.1av4cdcb4fb0on5x \
    --discovery-token-ca-cert-hash sha256:357c6d1dbefe6f7adf3c80987a90d3765965b1c43e1757b655ea8586c8ade10a
    
    • 工作节点重启后,重新加入集群时,需保证此工作节点可运行视频流云手机。
    • xx.xx.xx.xx为IP地址,xxxx为映射端口号。
    • 加入集群的token命令若失效可重新在master节点执行如下命令重新生成。
      1
      kubeadm token create --print-join-command
      
  3. 查看集群状态。
    1. 需在master节点查看状态。
      1
      kubectl get nodes -A -o wide
      

      期望是此工作节点的状态(STATUS)列是Ready,运行时(CONTAINER-RUNTIME)列是containerd://x.x.x。

    2. 需在master节点查看pod状态。
      1
      kubectl get pod -A -o wide
      

      期望是此工作节点上的pod的状态(STATUS)列都是Running。

    3. 在此工作节点查看容器状态。
      1
      crictl ps
      

      期望是所有的容器状态(STATE)列都是Running。

  4. (可选)配置NUMA亲和。为保证性能,需保证CPU和道客设备NUMA亲和。
    1. 停止kubelet。
      1
      systemctl stop kubelet
      
    2. 删除旧的CPU管理状态文件,该文件的路径默认为“/var/lib/kubelet/cpu_manager_state”
      1
      rm -rf /var/lib/kubelet/cpu_manager_state
      
    3. 修改kubelet的配置文件config.yaml。
      vi /var/lib/kubelet/config.yaml
    4. “i”键进入编辑模式,在文件末尾添加如下配置。配置参数说明如表2所示。
      cpuManagerPolicy: "static"
      topologyManagerPolicy: "single-numa-node"
      reservedSystemCPUs: "0,1,32,33,64,65,96,97"
      表2 kubelet的配置文件参数说明

      参数

      说明

      cpuManagerPolicy

      可配置为“none”和“static”。

      • none为默认选项,容器将不会绑核。
      • static容器将绑核,可以保证容器使用的CPU独占。

      topologyManagerPolicy

      设置拓扑管理器策略,建议使用“single-numa-node”,可保证不存在跨NUMA的情况。

      reservedSystemCPUs

      设置空余的CPU,这些空余的CPU可以用来绑系统进程,比如网络中断绑核,防止系统进程影响业务,可按照实际需求配置空余CPU。

    5. “Esc”键,输入:wq!并按“Enter”键保存并退出编辑。
    6. 重新启动kubelet并查看kubelet状态。
      1
      2
      systemctl start kubelet
      systemctl status kubelet