使用叢集洞見準備 Kubernetes 版本升級 - Amazon EKS

協助改善此頁面

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

若要提供此使用者指南,請選擇位於每個頁面右窗格中的 GitHub 上編輯此頁面連結。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用叢集洞見準備 Kubernetes 版本升級

Amazon EKS 叢集洞察提供建議,協助您遵循 Amazon EKS 和 Kubernetes 最佳實務。每個 Amazon EKS 叢集都會根據 Amazon EKS 精選洞察清單定期進行自動檢查。這些洞察檢查完全由 Amazon EKS 管理,並提供有關如何處理調查結果的建議。

Amazon EKS 會傳回與 Kubernetes 版本升級就緒狀態相關的洞見。升級洞見會識別可能影響 Kubernetes 叢集升級的可能問題。這可最大限度地減少管理員為升級做準備所花費的心力,並提高較新 Kubernetes 版本上應用程式的可靠性。Amazon EKS 會根據可能影響問題的 Kubernetes 版本升級清單自動掃描叢集。Amazon EKS 會根據每個 Kubernetes 版本發行版本中所做的變更的審核,經常更新洞見檢查清單。

Amazon EKS 升級洞察有助於加快新版本的測試和驗證流程。它們還允許叢集管理員和應用程式開發人員透過強調問題並提供修復建議,利用最新的 Kubernetes 功能。若要查看 Amazon EKS 執行的洞察檢查清單以及識別的任何相關問題,您可以呼叫 Amazon EKS ListInsights API 操作或在 Amazon EKS 主控台中查看。

叢集洞察會定期更新。您無法手動重新整理叢集洞見。如果您修正叢集問題,叢集洞見更新需要一些時間。若要判斷修正是否成功,請將變更部署的時間與叢集洞見的「上次重新整理時間」進行比較。

Amazon EKS 會自動建立叢集存取項目。此項目提供 EKS 許可,以檢視叢集的相關資訊。此資訊用於產生洞見。如需詳細資訊,請參閱AmazonEKSClusterInsightsPolicy

檢視叢集洞見 (主控台)

  1. 開啟 Amazon EKS 主控台

  2. 從叢集清單中,選擇您想要查看其相關洞察之 Amazon EKS 叢集的名稱。

  3. 選擇檢視儀表板

  4. 選擇 Cluster Insights 索引標籤。

  5. 升級洞見表格中,您會看到下列資料欄:

    • 名稱:Amazon EKS 對叢集執行的檢查。

    • 洞見狀態 – 狀態為「錯誤」的洞見通常表示受影響的 Kubernetes 版本是目前叢集版本的 N+1,而狀態為「警告」表示洞見適用於未來的 Kubernetes 版本 N+2 或更高版本。「通過」狀態意味著 Amazon EKS 在此洞察檢查中未發現叢集中存在任何問題。「不明」狀態意味著 Amazon EKS 無法確定叢集是否受到此洞察檢查的影響。

    • 版本 – 檢查洞見是否有可能問題的 Kubernetes 版本。

    • 上次重新整理時間 – 此叢集的洞見狀態上次重新整理的時間。

    • 上次轉換時間 – 此洞見的狀態上次變更的時間。

    • 描述:來自洞察檢查的資訊,其中包括提醒和建議的補救措施。

檢視叢集洞見 (AWS CLI)

  1. 確定您想要檢查哪個叢集以取得洞察。以下命令會列出針對指定叢集的洞察。視需要對命令進行下列修改,然後執行修改後的命令:

    • region-code 取代為 AWS 區域的程式碼。

    • 使用您叢集的名稱取代 my-cluster

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

      範例輸出如下。

      { "insights": [ { "id": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "name": "Deprecated APIs removed in Kubernetes vX.XX", "category": "UPGRADE_READINESS", "kubernetesVersion": "X.XX", "lastRefreshTime": 1734557315.000, "lastTransitionTime": 1734557309.000, "description": "Checks for usage of deprecated APIs that are scheduled for removal in Kubernetes vX.XX. Upgrading your cluster before migrating to the updated APIs supported by vX.XX could cause application impact.", "insightStatus": { "status": "PASSING", "reason": "No deprecated API usage detected within the last 30 days.", }, }, { "id": "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "name": "Kubelet version skew", "category": "UPGRADE_READINESS", "kubernetesVersion": "X.XX", "lastRefreshTime": 1734557309.000, "lastTransitionTime": 1734557309.000, "description": "Checks for kubelet versions of worker nodes in the cluster to see if upgrade would cause non compliance with supported Kubernetes kubelet version skew policy.", "insightStatus": { "status": "UNKNOWN", "reason": "Unable to determine status of node kubelet versions.", }, }, { "id": "a1b2c3d4-5678-90ab-cdef-EXAMPLE33333", "name": "Deprecated APIs removed in Kubernetes vX.XX", "category": "UPGRADE_READINESS", "kubernetesVersion": "X.XX", "lastRefreshTime": 1734557315.000, "lastTransitionTime": 1734557309.000, "description": "Checks for usage of deprecated APIs that are scheduled for removal in Kubernetes vX.XX. Upgrading your cluster before migrating to the updated APIs supported by vX.XX could cause application impact.", "insightStatus": { "status": "PASSING", "reason": "No deprecated API usage detected within the last 30 days.", }, }, { "id": "a1b2c3d4-5678-90ab-cdef-EXAMPLEaaaaa", "name": "Cluster health issues", "category": "UPGRADE_READINESS", "kubernetesVersion": "X.XX", "lastRefreshTime": 1734557314.000, "lastTransitionTime": 1734557309.000, "description": "Checks for any cluster health issues that prevent successful upgrade to the next Kubernetes version on EKS.", "insightStatus": { "status": "PASSING", "reason": "No cluster health issues detected.", }, }, { "id": "a1b2c3d4-5678-90ab-cdef-EXAMPLEbbbbb", "name": "EKS add-on version compatibility", "category": "UPGRADE_READINESS", "kubernetesVersion": "X.XX", "lastRefreshTime": 1734557314.000, "lastTransitionTime": 1734557309.000, "description": "Checks version of installed EKS add-ons to ensure they are compatible with the next version of Kubernetes. ", "insightStatus": { "status": "PASSING", "reason": "All installed EKS add-on versions are compatible with next Kubernetes version."}, }, { "id": "a1b2c3d4-5678-90ab-cdef-EXAMPLEccccc", "name": "kube-proxy version skew", "category": "UPGRADE_READINESS", "kubernetesVersion": "X.XX", "lastRefreshTime": 1734557314.000, "lastTransitionTime": 1734557309.000, "description": "Checks version of kube-proxy in cluster to see if upgrade would cause non compliance with supported Kubernetes kube-proxy version skew policy.", "insightStatus": { "status": "PASSING", "reason": "kube-proxy versions match the cluster control plane version.", }, }, { "id": "a1b2c3d4-5678-90ab-cdef-EXAMPLEddddd", "name": "Deprecated APIs removed in Kubernetes vX.XX", "category": "UPGRADE_READINESS", "kubernetesVersion": "X.XX", "lastRefreshTime": 1734557315.000, "lastTransitionTime": 1734557309.000, "description": "Checks for usage of deprecated APIs that are scheduled for removal in Kubernetes vX.XX. Upgrading your cluster before migrating to the updated APIs supported by vX.XX could cause application impact.", "insightStatus": { "status": "PASSING", "reason": "No deprecated API usage detected within the last 30 days.", }, }, ], "nextToken": null, }
  2. 如需洞察的描述性資訊,請執行以下命令。視需要對命令進行下列修改,然後執行修改後的命令:

    • region-code 取代為 AWS 區域的程式碼。

    • a1b2c3d4-5678-90ab-cdef-EXAMPLE22222 取代為從列出叢集洞見中擷取的洞見 ID。

    • 使用您叢集的名稱取代 my-cluster

      aws eks describe-insight --region region-code --id a1b2c3d4-5678-90ab-cdef-EXAMPLE22222 --cluster-name my-cluster

      範例輸出如下。

      { "insight": { "id": "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "name": "Kubelet version skew", "category": "UPGRADE_READINESS", "kubernetesVersion": "1.27", "lastRefreshTime": 1734557309.000, "lastTransitionTime": 1734557309.000, "description": "Checks for kubelet versions of worker nodes in the cluster to see if upgrade would cause non compliance with supported Kubernetes kubelet version skew policy.", "insightStatus": { "status": "UNKNOWN", "reason": "Unable to determine status of node kubelet versions.", }, "recommendation": "Upgrade your worker nodes to match the Kubernetes version of your cluster control plane.", "additionalInfo": { "Kubelet version skew policy": "https://kubernetes.io/releases/version-skew-policy/#kubelet", "Updating a managed node group": "https://docs.aws.amazon.com/eks/latest/userguide/update-managed-node-group.html", }, "resources": [], "categorySpecificSummary": { "deprecationDetails": [], "addonCompatibilityDetails": [] }, }, }