利用叢集見解為Kubernetes版本升級做好準備 - Amazon EKS

協助改善此頁面

想要為此使用者指南做出貢獻嗎? 捲動至此頁面底部,然後選取 [編輯此頁面於] GitHub。您的貢獻將有助於使我們的用戶指南更適合所有人。

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

利用叢集見解為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 主控台中查看。

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

檢視叢集見解 (主控台)

若要檢視 Amazon EKS 叢集的見解,請執行下列動作:
  1. 在以下網址開啟 Amazon EKS 主控台:https://console.aws.amazon.com/eks/home#/clusters

  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)

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

    • 用相應 AWS 區域代碼取代 region-code

    • 使用您叢集的名稱取代 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. 如需洞察的描述性資訊,請執行以下命令。視需要對命令進行下列修改,然後執行修改後的命令:

    • 用相應 AWS 區域代碼取代 region-code

    • 用從列出的叢集洞察中擷取到的洞察 ID 取代 123e4567-e89b-42d3-a456-579642341238

    • 使用您叢集的名稱取代 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."
        }
    }