在集群中添加或移除节点池

在 Anthos clusters on Bare Metal 中,您可以通过添加或删除节点池自定义资源来添加或移除集群中的节点池。您可以使用 kubectl 更改节点池。

您只能为现有集群添加或删除工作器节点池。集群创建期间添加的控制层面和负载均衡器节点池对集群的功能至关重要,因此无法删除。

检查节点状态

在添加或移除节点池之前,请使用 kubectl get 检查节点及其各自的节点池的状态。如需了解详情(包括示例命令和响应),请参阅查看节点状态

添加新节点池

您可以通过在管理员集群中创建新的 nodepools.baremetal.cluster.gke.io 资源来添加新节点池。例如,指定以下配置以添加一个名为“nodepool-new”的新节点池,该节电池 IP 地址为 10.200.0.710.200.0.8

  apiVersion: baremetal.cluster.gke.io/v1
  kind: NodePool
  metadata:
    name: node-pool-new
    namespace: cluster-my-cluster
  spec:
    clusterName: my-cluster
    nodes:
    - address: 10.200.0.7
    - address: 10.200.0.8
    taints:
    - key: <key1>
      value: <value1>
      effect: NoSchedule
    labels:
      key1: <value1>
      key2: <value2>

在 Anthos clusters on Bare Metal 1.7.0 及更高版本中,NodePool.spec.taintsNodePool.spec.labels 配置与节点协调。在 1.7.0 中,所有直接添加的污点和标签都将被移除。从 Anthos clusters on Bare Metal 1.7.1 及更高版本开始,控制层面将不再移除您在同步过程中直接添加的污点和标签。

如需绕过此协调步骤,您可以使用 baremetal.cluster.gke.io/label-taint-no-sync 为该节点添加注释。

必须在关联的集群所在的命名空间中创建节点池资源,并在 spec.clusterName 字段中引用集群名称。

将配置存储在名为 node-pool-new.yaml 的文件中。使用以下命令将配置应用于管理员集群。如果需要,请使用 --kubeconfig 标志来明确指定管理员集群配置:

  kubectl apply -f node-pool-new.yaml

移除节点池

可通过 kubectl delete 移除节点池。例如,如需移除上一部分添加的节点池 node-pool-new,请使用以下命令:

  kubectl -n cluster-my-cluster delete nodepool node-pool-new

移除集群中的工作器节点池会导致 Pod 中断。如果存在 PodDisruptionBudget (PDB),则系统可能会阻止移除节点池。如需详细了解 Pod 中断政策,请参阅移除 Pod 中断预算阻止的节点