自动升级节点

本页面介绍如何在 Google Kubernetes Engine 中预配节点自动升级功能。

概览

当系统为您更新集群主实例时,节点自动升级功能可帮助您确保集群中的节点始终与集群主实例版本保持同步。当您使用 Google Cloud Platform Console 创建新集群时,默认会启用节点自动升级功能。

如需详细了解升级相关信息,请参阅升级容器集群

使用自动升级功能有诸多好处,包括:

  • 降低管理开销:当系统为您升级集群主服务器时,您再也不必手动跟踪并更新节点。
  • 提高安全性:我们会不定时发布新的二进制文件来修复安全问题。有了自动升级功能,GKE 可自动确保安全更新功能得到应用并保持最新状态。
  • 易用性:提供一种简单的方法,使您的节点始终使用最新版的 Kubernetes 功能。

系统会在集群主服务器升级后立即自动对启用了自动升级功能的节点池安排升级。执行升级时,系统将排空并重新创建节点以与当前集群主服务器版本保持一致。在节点虚拟机的启动磁盘上进行的修改在重新创建节点后将不再保留。要在重新创建节点后保留修改,请使用 DaemonSet

Alpha 版集群无法使用节点自动升级功能。

如果您希望更精细地控制进行节点升级的时间,则可以安排维护期

您可以随时对一个或多个节点池停用自动升级功能。不过,如果升级进程正在进行,停用自动升级功能不会使该进程停止。

节点自动升级的工作原理

为节点池启用节点自动升级功能后,在主服务器升级后不久,系统将会升级各节点以与主服务器的版本保持一致。

以下是一些关于节点自动升级功能的准则:

  • 一次只升级一个节点池的节点。
  • 在给定的节点池中,一次升级一个节点。系统将随机选择升级顺序。
  • 节点在维护时段自动升级。

当节点自动升级时,会发生以下情况:

  1. 该节点会被封锁并排空。此时,无法安排该节点运行新的 Pod。
  2. 该节点上的 Pod 会被重新调度到其他节点上。如果某个 Pod 无法重新调度,则该 Pod 将保持 PENDING 状态,直到重新创建该节点。
  3. 该节点会被删除,然后会被重新创建为新版本。
  4. 如果新节点未能正常注册,则为整个节点池停用自动升级功能。
  5. 如果大量节点在自动升级到某个给定版本时导致 GKE 机群中出现运行状况不佳的节点,则在调查该问题时将停止升级到该版本。

创建带有节点自动升级功能的集群或节点池

gcloud

要创建集群并为默认节点池启用自动升级功能,请在 gcloud container clusters create 命令中指定 --enable-autoupgrade 标志:

gcloud container clusters create [CLUSTER_NAME] --zone [COMPUTE_ZONE] \
    --enable-autoupgrade

要创建具有自动升级功能的节点池,请执行以下操作:

gcloud container node-pools create [NODE_POOL] --cluster [CLUSTER_NAME] \
    --zone [COMPUTE_ZONE] --enable-autoupgrade

Console

使用 GCP Console 创建的集群和节点池默认启用节点自动升级。如需了解如何创建集群和节点池,请参阅创建集群添加和管理节点池

您可以停用新集群或节点池的自动升级功能。如要停用,请点击高级修改,然后取消选择预配集群或节点池时启用自动升级功能

为现有节点池启用节点自动升级功能

gcloud

要为现有节点池启用自动升级功能,请运行以下命令:

gcloud container node-pools update [NODE_POOL] --cluster [CLUSTER_NAME] \
    --zone [COMPUTE_ZONE] --enable-autoupgrade

Console

要为现有节点池启用自动升级功能,请执行以下步骤:

  1. 访问 GCP Console 中的 Google Kubernetes Engine 菜单。

    访问 Google Kubernetes Engine 菜单

  2. 点击集群的“修改”按钮(铅笔图案)。

  3. 节点池部分,点击待修改节点池对应的高级修改按钮。

  4. 选择启用自动升级

  5. 点击保存以退出高级修改叠加层。

  6. 再次点击保存以修改集群。

为现有节点池停用节点自动升级功能

gcloud

要停用现有节点池的自动升级功能,请运行以下命令:

gcloud container node-pools update [NODE_POOL] --cluster [CLUSTER_NAME] \
    --zone [COMPUTE_ZONE] --no-enable-autoupgrade

Console

要停用现有节点池的自动升级功能,请执行以下步骤:

  1. 访问 GCP Console 中的 Google Kubernetes Engine 菜单。

    访问 Google Kubernetes Engine 菜单

  2. 点击集群的“修改”按钮(铅笔图案)。

  3. 节点池部分,点击待修改节点池对应的高级修改按钮。

  4. 取消选择启用自动升级

  5. 点击保存以退出高级修改叠加层。

  6. 再次点击保存以修改集群。

后续步骤

此页内容是否有用?请给出您的反馈和评价:

发送以下问题的反馈:

此网页
Kubernetes Engine 文档