调整作业超时值

如果作业超时并且您认为超时并不是安装的根本问题导致的,您可以增加超时间隔。本文档介绍如何使用配置规范的注释调整机器作业和批量作业的超时间隔。

用于裸金属命令和例程的 GDCV 分为两类:机器作业和批量作业。有很多因素会影响作业完成所需的时间,如硬件配置、网络配置和集群配置。GKE on Bare Metal 具有默认超时,旨在满足典型安装的需求。

以下是作业超时错误消息所在位置的示例:

  • 预检日志中机器作业超时的错误消息(为便于阅读进行了换行),例如 bmctl-workspace/cluster1/logs/preflight-20210501-000426/172.18.0.4

    Pod:172.18.0.4-machine-preflf3a32c8a2f7a2449545c7e8ff954c961-652st
    Result:Failed Reason:DeadlineExceeded Time:Wed Feb  3 16:59:56 2021
    
  • 失败的 pod 的 kubectl logs 输出可能显示类似的 DeadlineExceeded 消息(已换行):

    cluster-cluster1
    172.18.0.4-machine-preflf3a32c8a2f7a2449545c7e8ff954c961-652st  ●  0/1
    0 DeadlineExceeded  192.168.122.180  bmctl-control-plane  7m12
    

调整机器作业超时间隔

机器作业是仅在一个机器上运行的例程,例如仅限于单个机器的预检检查。GKE on Bare Metal 机器作业的默认超时为 900 秒(即 15 分钟)。机器作业超时间隔使用集群配置文件中的 baremetal.cluster.gke.io/machine-job-deadline-seconds 注解进行调整。

以下示例将机器作业超时间隔设置为 1800 秒或 30 分钟:

   apiVersion: baremetal.cluster.gke.io/v1
   kind: Cluster
   metadata:
     name: cluster1
     namespace: cluster-cluster1
     annotations:
       baremetal.cluster.gke.io/machine-job-deadline-seconds: "1800"
   spec:
   ...

当您使用 bmctl create cluster 创建新集群或使用 bmctl upgrade cluster 升级现有集群时,系统会应用您的超时间隔值。新时间间隔将用于所有单机器作业,包括 bmctl check preflightbmctl check -c <cluster-name> 等。

调整批量作业超时间隔

批量作业是在多台机器上运行的例程,例如网络预检检查。GKE on Bare Metal 批量作业的默认超时间隔取决于网络中的机器数量。默认超时间隔为 900 秒,然后每个机器加 20 秒。因此,如果批量作业在 60 个机器上运行,则默认超时间隔为 2100 秒 (900 + 20 * 60 = 2100) 或 35 分钟。批量作业超时间隔使用集群配置文件中的 baremetal.cluster.gke.io/batch-job-deadline-seconds 注解进行调整。

以下示例将批量作业超时间隔设置为 10800 秒或 3 小时:

   apiVersion: baremetal.cluster.gke.io/v1
   kind: Cluster
   metadata:
     name: cluster1
     namespace: cluster-cluster1
     annotations:
       baremetal.cluster.gke.io/batch-job-deadline-seconds: "10800"
   spec:
   ...

当您使用 bmctl create cluster 创建新集群或使用 bmctl upgrade cluster 升级现有集群时,系统会应用您的超时间隔值。