如果作业超时并且您认为超时并不是安装的根本问题导致的,您可以增加超时间隔。本文档介绍如何使用配置规范的注释调整机器作业和批量作业的超时间隔。
用于裸金属命令和例程的 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 preflight
、bmctl 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
升级现有集群时,系统会应用您的超时间隔值。