跳至内容

如何升级我的 Amazon EKS 集群和插件?

2 分钟阅读
0

升级 Amazon Elastic Kubernetes Service (EKS) 集群和插件时,我想要遵循最佳实践。

简短描述

在升级集群之前,请验证与 Kubernetes 新版本的兼容性。此外,您可能需要更新存储驱动程序和插件才能使用新版本。

在 Amazon EKS 集群上升级 Kubernetes 版本后,您无法降级到之前的版本。在升级 Kubernetes 版本之前,请参阅了解 EKS 上的 Kubernetes 版本生命周期。确认您的安全组规则允许您在创建集群时指定的子网进行所需的集群通信。

注意:

  • 节点的 kubelet 版本不得高于 Kubernetes 版本。
  • 当您更新控制面板时,节点组不会自动升级。
  • 节点 kubelet 版本不能比 Kubernetes 版本低两个以上的次要版本。例如,若 Kubernetes 版本为 1.33,支持的 kubelet 版本为 1.33、1.32 和 1.31。

在发布后的 14 个月内,次要版本会在 Amazon EKS 中获得标准支持。然后,该版本会进入为期 12 个月的扩展支持阶段。

您可以使用扩展支持延长特定 Kubernetes 版本的使用时间,但需按小时为集群支付额外费用。如果您未在扩展支持期结束之前升级集群,则 AWS 会自动将您的集群升级到当前支持的最早版本。

扩展支持会默认启用。要停用扩展支持,请参阅通过禁用 EKS 扩展支持来防止集群成本增加。有关版本发布和支持日期,请参阅 Amazon EKS Kubernetes 发布日历

解决方法

更新 Amazon EKS 集群版本

**注意:**如果您在运行 AWS 命令行界面 (AWS CLI) 命令时收到错误,请参阅 AWS CLI 错误故障排除。此外,请确保您使用的是最新版本的 AWS CLI

首先,检查集群控制面板和节点的当前 Kubernetes 版本以及您当前的 eksctl 版本。

运行以下命令检查集群控制面板的 Kubernetes 版本:

kubectl version

输出示例:

Client Version: v1.33.2
Kustomize Version: v5.6.0
Server Version: v1.32.5-eks-5d4a308

运行以下命令获取节点的 Kubernetes 版本:

kubectl get nodes

输出示例:

NAME                            STATUS   ROLES    AGE    VERSION
ip-10-42-177-172.ec2.internal   Ready    <none>   132m   v1.32.3-eks-473151a
ip-10-42-177-39.ec2.internal    Ready    <none>   142m   v1.32.3-eks-473151a

运行以下命令检查您的 eksctl 版本:

eksctl version

**注意:**您必须使用 eksctl 版本 0.210.0 或更高版本。升级需要几分钟才能完成。

然后,使用 eksctlAmazon EKS 控制台AWS CLI 来更新您的集群。

更新节点组版本

要更新托管节点组,请参阅更新集群的托管节点组。要更新自行管理节点组,您必须将应用程序迁移到新的节点组

升级 Amazon EKS 插件

在控制面板升级期间,Amazon EKS 不会自动升级插件。检查插件的兼容版本,然后对其进行更新。一次只能升级一个次要版本。

要验证插件版本是否与 Kubernetes 最新版本兼容,请运行以下命令:

eksctl utils describe-addon-versions —kubernetes-version 1.33 —name name-of-addon | grep AddonVersion

**注意:**请将 name-of-addon 替换为您的插件名称,并将 Kubernetes 最新版本替换为 1.33

验证您的当前版本是否显示在输出中。

输出示例:

"AddonVersions": [
                    "AddonVersion": "v1.12.1-eksbuild.2",
                    "AddonVersion": "v1.11.4-eksbuild.14",
                    "AddonVersion": "v1.11.4-eksbuild.10",
                    "AddonVersion": "v1.11.4-eksbuild.2",
                    "AddonVersion": "v1.11.3-eksbuild.3",
                    "AddonVersion": "v1.11.3-eksbuild.2",

您可能需要更新以下 Amazon EKS 插件:

有关详细信息,请参阅 AWS 插件

Amazon VPC CNI 插件

检查集群兼容的 Amazon VPC CNI 版本

然后,选择以下选项之一来更新插件:

kube-proxy

检查集群兼容的 kube-proxy 版本

然后,选择以下选项之一来更新插件:

CoreDNS

检查集群兼容的 CoreDNS 版本

然后,选择以下选项之一来更新插件:

Amazon EBS 和 Amazon EFS CSI 驱动程序

要更新 Amazon EBS CSI 驱动程序或 Amazon EFS CSI 驱动程序,请参阅更新 Amazon EKS 插件

更新 AWS 负载均衡器控制器

有关 Kubernetes 版本与 AWS 负载均衡器控制器的兼容性,请参阅 GitHub 网站上的支持的 Kubernetes 版本。AWS 负载均衡器控制器版本 2.5.0 或更高版本需要 Kubernetes 版本 1.22 或更高版本。有关详细信息,请参阅 GitHub 网站上的 aws-load-balancer-controller 版本。要安装 AWS 负载均衡器控制器,请参阅安装控制器

AWS 官方已更新 10 个月前