NodeD

操作步骤

  1. 以root用户登录各计算节点,并执行以下命令查看镜像和版本号是否正确。

    docker images | grep noded

    回显示例如下:

    noded                               v6.0.RC2              ef801847acd2        29 minutes ago      133MB

  2. MindCluster NodeD软件包解压目录下的yaml文件,拷贝到K8s管理节点上任意目录。
  3. 如不修改组件启动参数,可跳过本步骤。否则,请根据实际情况修改yaml文件中MindCluster NodeD的启动参数。启动参数请参见表1,可执行./noded -h查看参数说明。
  4. (可选)使用断点续训或者弹性训练时,需要配置心跳发送间隔时间。在MindCluster NodeD启动yaml文件的“args”行增加“-heartbeatInterval”参数,如下所示:

    ...
              env:
                - name: NODE_NAME
                  valueFrom:
                    fieldRef:
                      fieldPath: spec.nodeName
              imagePullPolicy: Never
              command: [ "/bin/bash", "-c", "--"]
              args: [ "/usr/local/bin/noded -logFile=/var/log/mindx-dl/noded/noded.log -logLevel=0 -heartbeatInterval=5" ]
              securityContext:
                readOnlyRootFilesystem: true
                allowPrivilegeEscalation: true
              volumeMounts:
                - name: log-noded
    ...
    • K8s默认40秒未收到节点响应时将该节点置为NotReady,如未修改K8s的该配置,MindCluster NodeD的“心跳发送间隔时间”使用默认值“5”即可,无需修改。
    • 当K8s APIServer请求压力变大时,可根据实际情况增大间隔时间,以减轻APIServer压力。
    • 使用弹性训练时,当MindCluster NodeD最近一次上报心跳之后一段时间内未再次上报心跳(大于两次心跳上报间隔的阈值)时,MindCluster Resilience ControllerMindCluster Volcano就会认为MindCluster NodeD所在节点故障,从而触发故障重调度。当后续MindCluster NodeD两次心跳上报间隔小于等于阈值时,则认为MindCluster NodeD所在节点恢复正常。计算公式:两次心跳上报间隔的阈值 = 心跳发送间隔配置 x 3,其中3表示MindCluster Resilience ControllerMindCluster Volcano会重试3次。

  5. 在管理节点的yaml所在路径,执行以下命令,启动MindCluster NodeD

    kubectl apply -f noded-v{version}.yaml

    启动示例如下:

    serviceaccount/noded created
    clusterrole.rbac.authorization.k8s.io/pods-noded-role created
    clusterrolebinding.rbac.authorization.k8s.io/pods-noded-rolebinding created
    daemonset.apps/noded created

  6. 执行以下命令,查看组件是否启动成功。

    kubectl get pod -n mindx-dl

    回显示例如下,出现Running表示组件启动成功。

    NAME                              READY   STATUS    RESTARTS   AGE
    ...
    noded-fd6t8                       1/1     Running   0          74s
    ...

参数说明

表1 MindCluster NodeD启动参数

参数

类型

默认值

说明

-heartbeatInterval

int

5

发送心跳的间隔时间,取值范围为1~300,单位为秒。该间隔时间会在MindCluster NodeD启动时写入节点的ConfigMap中,字段为HeartbeatInterval。当K8s APIServer请求压力变大时,可根据实际情况增大间隔时间,以减轻APIServer压力。

-monitorPeriod

int

60

节点硬件故障的轮循检测周期,取值范围为60~600,单位为秒。

-version

bool

false

是否查询当前MindCluster NodeD的版本号。

  • true:查询。
  • false:不查询。

-logLevel

int

0

日志级别:

  • -1:debug
  • 0:info
  • 1:warning
  • 2:error
  • 3:critical

-maxAge

int

7

日志备份时间,取值范围为7~700,单位为天。

-logFile

string

/var/log/mindx-dl/noded/noded.log

日志文件。

说明:

单个日志文件超过20 MB时会触发自动转储功能,文件大小上限不支持修改。转储后文件的命名格式为:noded-触发转储的时间.log,如:noded-2023-10-07T03-38-24.402.log。

-maxBackups

int

30

转储后日志文件保留个数上限,取值范围为1~30,单位为个。

-h或者-help

显示帮助信息。