利用集群见解为 Kubernetes 版本升级做好准备 - Amazon EKS

利用集群见解为 Kubernetes 版本升级做好准备

Amazon EKS 集群见解提供建议,帮助您遵循 Amazon EKS 和 Kubernetes 最佳实践。每个 Amazon EKS 集群都会根据 Amazon EKS 精心策划的见解列表进行自动的定期检查。这些见解检查完全由 Amazon EKS 管理,并就如何解决任何调查发现提供建议。

  • 在更新集群 Kubernetes 版本之前,请在 EKS 控制台中查看集群见解。

  • 如果您的集群已发现问题,请查看它们并进行适当的修复。这些问题包括指向 Amazon EKS 和 Kubernetes 的链接。

  • 修复问题后,等待集群见解刷新。如果所有问题都已解决,则请更新您的集群

目前,Amazon EKS 仅返回与 Kubernetes 版本升级准备情况相关的见解。

升级见解可以识别可能影响 Kubernetes 集群升级的可能问题。这样可以最大限度地减少管理员准备升级所花费的工作量,并提高新 Kubernetes 版本上应用程序的可靠性。Amazon EKS 会根据可能影响 Kubernetes 版本升级的问题列表自动扫描集群。Amazon EKS 经常根据对每个 Kubernetes 版本中所做更改的审查来更新见解检查列表。

Amazon EKS 升级见解加快了新版本的测试和验证过程。还允许集群管理员和应用程序开发人员通过突出问题和提供补救建议来利用最新 Kubernetes 功能。要查看已执行的见解检查列表以及 Amazon EKS 发现的任何相关问题,您可以调用 Amazon EKS ListInsights API 操作或在 Amazon EKS 控制台中查看。

集群见解将定期更新。您无法手动刷新集群见解。如果您修复集群问题,则将需要一些时间才能更新集群见解。要确定修复是否成功,请将更改部署的时间与集群洞察的“上次刷新时间”进行比较。

查看集群见解(控制台)

  1. 打开 Amazon EKS console 控制台

  2. 从集群列表中,选择您希望查看见解的 Amazon EKS 集群的名称。

  3. 选择升级见解选项卡。

  4. 升级见解页面上,您将看到以下字段:

    • 名称 – Amazon EKS 对集群执行的检查。

    • 见解状态 – 状态为“错误”的见解通常表示受影响的 Kubernetes 版本是当前集群版本的 N+1,而状态为“警告”表示该见解适用于未来 Kubernetes 版本 N+2 或更高版本。状态为“通过”的见解表示 Amazon EKS 在您的集群中未发现与该见解检查相关的任何问题。状态为“未知”的见解表示 Amazon EKS 无法确定您的集群是否受到此见解检查的影响。

    • 版本 – 见解检查可能存在的问题的 Kubernetes 版本。

    • 上次刷新时间(UTC-5:00)– 此集群上次刷新见解状态的时间。

    • 上次转换时间(UTC-5:00)– 上次更改此见解状态的时间。

    • 描述 – 来自见解检查的信息,包括警报和建议的补救措施。

查看集群见解(AWS CLI)

  1. 确定您要检查哪个集群以获取见解。以下命令列出指定集群的见解。根据需要对该命令进行以下修改,然后运行修改后的命令:

    • region-code 替换为 AWS 区域的代码。

    • my-cluster 替换为您集群的名称。

      aws eks list-insights --region region-code --cluster-name my-cluster

      示例输出如下。

      { "insights": [ { "category": "UPGRADE_READINESS", "name": "Deprecated APIs removed in Kubernetes v1.29", "insightStatus": { "status": "PASSING", "reason": "No deprecated API usage detected within the last 30 days." }, "kubernetesVersion": "1.29", "lastTransitionTime": 1698774710.0, "lastRefreshTime": 1700157422.0, "id": "123e4567-e89b-42d3-a456-579642341238", "description": "Checks for usage of deprecated APIs that are scheduled for removal in Kubernetes v1.29. Upgrading your cluster before migrating to the updated APIs supported by v1.29 could cause application impact." } ] }
  2. 有关见解的描述性信息,请运行以下命令。根据需要对该命令进行以下修改,然后运行修改后的命令:

    • region-code 替换为 AWS 区域的代码。

    • 123e4567-e89b-42d3-a456-579642341238 替换为从列出集群见解中检索到的见解 ID。

    • my-cluster 替换为您集群的名称。

      aws eks describe-insight --region region-code --id 123e4567-e89b-42d3-a456-579642341238 --cluster-name my-cluster

      示例输出如下。

      { "insight": { "category": "UPGRADE_READINESS", "additionalInfo": { "EKS update cluster documentation": "https://docs.aws.amazon.com/eks/latest/userguide/update-cluster.html", "Kubernetes v1.29 deprecation guide": "https://kubernetes.io/docs/reference/using-api/deprecation-guide/#v1-29" }, "name": "Deprecated APIs removed in Kubernetes v1.29", "insightStatus": { "status": "PASSING", "reason": "No deprecated API usage detected within the last 30 days." }, "kubernetesVersion": "1.29", "recommendation": "Update manifests and API clients to use newer Kubernetes APIs if applicable before upgrading to Kubernetes v1.29.", "lastTransitionTime": 1698774710.0, "lastRefreshTime": 1700157422.0, "categorySpecificSummary": { "deprecationDetails": [ { "usage": "/apis/flowcontrol.apiserver.k8s.io/v1beta2/flowschemas", "replacedWith": "/apis/flowcontrol.apiserver.k8s.io/v1beta3/flowschemas", "stopServingVersion": "1.29", "clientStats": [], "startServingReplacementVersion": "1.26" }, { "usage": "/apis/flowcontrol.apiserver.k8s.io/v1beta2/prioritylevelconfigurations", "replacedWith": "/apis/flowcontrol.apiserver.k8s.io/v1beta3/prioritylevelconfigurations", "stopServingVersion": "1.29", "clientStats": [], "startServingReplacementVersion": "1.26" } ] }, "id": "f6a11fe4-77f7-48c6-8326-9a13f022ecb3", "resources": [], "description": "Checks for usage of deprecated APIs that are scheduled for removal in Kubernetes v1.29. Upgrading your cluster before migrating to the updated APIs supported by v1.29 could cause application impact." } }