我想升級 Amazon Elastic Kubernetes Service (Amazon EKS) 附加元件。
解決方法
**注意:**如果您在執行 AWS Command Line Interface (AWS CLI) 命令時收到錯誤訊息,請參閱對 AWS CLI 錯誤進行疑難排解。此外,請確定您使用的是最新的 AWS CLI 版本。
檢查您可以使用的附加元件版本
若要確定可用於 Amazon EKS 叢集版本的附加元件版本,請執行下列 describe-addon-versions AWS CLI 命令:
aws eks describe-addon-versions --kubernetes-version=cluster-version --addon-name=addon-name --query='addons[].addonVersions[].addonVersion'
**注意:**將 cluster-version 替換為您 Amazon EKS 叢集的 Kubernetes 版本。另外,將 addon-name 替換為附加元件的名稱,例如 vpc-cni 或 coredns。
升級附加元件
如果您的附加元件具有與預設設定不同的自訂組態或資源,那麼您在升級時可能會遇到衝突。要解決這些問題,請使用 AWS CLI 和 --resolve-conflicts 選項來升級您的附加元件。最佳做法是在將升級程序套用到生產叢集之前,在非生產環境中測試升級程序。如需詳細資訊,請參閱如何在建立或更新 Amazon EKS 受管附加元件時防止組態衝突?
若要升級附加元件,請使用 eksctl、Amazon EKS 主控台或 AWS CLI。
驗證升級
使用 kubectl 命令來檢查附加元件部署的狀態,並確認 Pod 是否正在執行新版本。對於常駐程式附加元件 (例如 vpc-cni 和 kube-proxy),請檢查複本數是否等於節點數。vpc-cni 和 kube-proxy 附加元件無法在 AWS Fargate 或 Windows 節點上運作。
例如,執行下列命令來檢查 CoreDNS 部署的目前版本:
kubectl describe deployment coredns -n kube-system | grep Image | cut -d ":" -f 3
或者,完成下列步驟,以在 Amazon EKS 主控台中檢查附加元件詳細資訊:
- 開啟 Amazon EKS console (Amazon EKS 主控台)。
- 在導覽窗格中,請選取 Clusters (叢集)。
- 選擇您的叢集。
- 選擇 Add-ons (附加元件) 索引標籤。
- 若要檢視新版本,請檢查 Add-on version (附加元件版本) 欄中的值。
若要檢查附加元件 Pod 的日誌,以了解升級過程中發生的錯誤或問題,請執行以下命令:
kubectl logs -n kube-system -l k8s-app=kube-dns
執行其他測試
若要確定您的附加元件在升級後是否需要進行額外測試,請查看附加元件的文件以取得最佳做法。測試管理核心服務 (例如網路或 DNS 解析) 的附加元件也是最佳做法。如果您為附加元件新增了自訂組態,請確定您的設定在升級後仍能如預期運作。
若要測試 Amazon Virtual Private Cloud (Amazon VPC) 容器網路介面 (CNI) 附加元件,請建立新 Pod 來驗證 IP 位址指派。對於 CoreDNS 附加元件,請使用 exec 命令進入 Pod,然後使用 nslookup 等工具來驗證 DNS 解析度。
相關資訊
更新 CoreDNS Amazon EKS 自我管理附加元件
更新 Amazon VPC CNI (Amazon EKS 附加元件)
管理 Amazon EKS 叢集中的 DNS CoreDNS