了解预检检查

在 GKE on Bare Metal 中,您可以针对不同的情况运行预检检查:

  • 当您使用 bmctl 创建或更新管理员集群、混合集群、独立集群或用户集群和节点池资源时,GKE on Bare Metal 会运行预检检查。如果检查失败,则不进行任何更改。您也可以绕过这些检查。
  • 当您将 Kubernetes 资源从管理员集群或混合集群应用到用户集群时,GKE on Bare Metal 也会运行内部预检检查。这些检查会在将更改实际应用于受影响的用户集群之前运行。如果检查失败,则不进行任何更改。您也可以绕过这些检查,或者明确运行这些检查。

使用 bmctl 创建集群的预检检查

当您使用 bmctl 命令创建admin集群、混合集群、独立集群或用户集群时,GKE on Bare Metal 会在进行任何更改之前自动运行预检检查。

检查通过后,GKE on Bare Metal 将创建集群。

忽略自动预检检查的结果

如果要绕过这些自动预检检查,可以在命令中使用可选的 --force 标志。

独立运行预检检查

您还可以在创建集群之前运行预检检查。这有助于确保机器和节点资源通过检查,从而节省时间。

  • 以下命令验证指定的集群配置文件,但不会尝试创建集群本身:

    bmctl check config --cluster CLUSTER_NAME
    

    CLUSTER_NAME 替换为您要检查其配置文件的集群的名称。

  • 以下命令检查机器和网络是否已准备好创建集群:

    bmctl check preflight --cluster CLUSTER_NAME
    

    CLUSTER_NAME 替换为您要检查的集群的名称。

运行最新的预检检查和健康检查

您可以对系统执行预检检查。预检检查可确保您的机器和网络已准备好创建集群。以下命令会使用最新的检查列表检查机器和网络,以确保它们已准备好创建集群:

bmctl check preflight --cluster CLUSTER_NAME --check-image-version latest

CLUSTER_NAME 替换为您要检查的集群的名称。

您还可以对活跃集群执行健康检查,以确定集群健康状况是否良好。如需对活跃集群执行最新的健康检查,请运行以下命令:

bmctl check cluster --cluster CLUSTER_NAME --check-image-version latest

CLUSTER_NAME 替换为您要检查的集群的名称。

升级的预检检查

您可以使用 bmctl check preflight 命令在升级集群之前运行预检检查。您可以在开始升级之前运行以下预检检查命令来检查集群是否已准备好进行升级:

  1. 更新集群配置文件中的集群版本 (anthosBareMetalVersion)。
  2. 以下命令可让您检查集群是否已准备好进行升级并运行预检检查:

    bmctl check preflight --kubeconfig ADMIN_CLUSTER_KUBECONFIG_PATH
     -c CLUSTER_NAME
    

    替换以下内容:

    • CLUSTER_NAME:要升级的集群的名称。
    • ADMIN_CLUSTER_KUBECONFIG_PATH:管理员集群 kubeconfig 文件的路径。

    请注意,当原始集群为 1.13.1 或更高版本时,用于升级的 bmctl check preflight 才有效。

    使用此命令创建预检检查以测试管理员或用户集群升级时,系统会在管理员集群中创建 PreflightCheck 自定义资源。

为用户集群创建进行预检检查

用户集群从现有管理员集群或混合集群创建。GKE on Bare Metal 会在进行任何更改之前自动运行预检检查。您还可以在创建集群之前使用 bmctl 运行预检检查。

  • 以下命令验证指定的集群配置文件,但不会尝试创建集群本身:

    bmctl check config --cluster CLUSTER_NAME --admin-kubeconfig ADMIN_KUBECONFIG_PATH
    

    CLUSTER_NAME 替换为您要检查的用户集群的名称,并将 ADMIN_KUBECONFIG_PATH 替换为关联的管理员集群 kubeconfig 文件的路径。

  • 以下命令检查机器和网络是否已准备好创建集群:

    bmctl check preflight --cluster CLUSTER_NAME --admin-kubeconfig ADMIN_KUBECONFIG_PATH
    

bmctl 支持使用 --kubeconfig 作为 --admin-kubeconfig 标志的别名。

对现有集群进行内部预检检查

您将 Kubernetes 资源应用于现有集群时,GKE on Bare Metal 也会执行内部预检检查。如果任何检查失败,GKE on Bare Metal 将不会对相关节点进行任何更改,除非您已明确绕过检查

应用 Kubernetes 资源时绕过预检检查

如需在将资源应用于现有集群时忽略内部预检检查,您需要在集群 YAML 文件中将 BypassPreflightCheck 字段设置为 true

以下是集群配置 YAML 文件的片段,其中 bypassPreflightCheck 字段设置为 true

# Sample cluster config to bypass preflight check errors:

apiVersion: v1
kind: Namespace
metadata:
  name: cluster-user1
---
apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
  name: user1
  namespace: cluster-user1
spec:
  type: user
  bypassPreflightCheck: true
  # Anthos cluster version.
  anthosBareMetalVersion: 1.14.11
....

安装预检检查详情

在运行预检检查时,GKE on Bare Metal 会检查各种操作系统、软件和机器前提条件。

如需了解详情,请参阅安装前提条件概览