協助改善此頁面
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
若要提供此使用者指南,請選擇位於每個頁面右窗格中的 GitHub 上編輯此頁面連結。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
重要
建議將附加元件的 Amazon EKS 類型新增到叢集,而不是使用附加元件的自我管理類型。如果您不熟悉類型之間的差異,請參閱 Amazon EKS 附加元件。如需將 Amazon EKS 附加元件新增至叢集的詳細資訊,請參閱 建立 Amazon EKS 附加元件。如果您無法使用 Amazon EKS 附加元件,建議您提交問題,說明為何無法提交至容器藍圖 GitHub 儲存庫
先決條件
-
現有 Amazon EKS 叢集。若要部署叢集,請參閱 開始使用 Amazon EKS。
考量事項
-
Kube-proxy
Amazon EKS 叢集上的相容性和扭曲政策與 Kubernetes相同。了解如何驗證 Amazon EKS 附加元件版本與叢集的相容性。 -
確認您的叢集上已安裝附加元件的自我管理類型。使用您叢集的名稱取代
my-cluster
。aws eks describe-addon --cluster-name my-cluster --addon-name kube-proxy --query addon.addonVersion --output text
如果傳回錯誤訊息,則表明您的叢集上安裝了附加元件的自我管理類型。本主題中的其餘步驟用於更新附加元件的自我管理類型。如果傳回版本編號,則表明已在叢集上安裝附加元件的 Amazon EKS 類型。若要更新它,請使用更新 Amazon EKS 附加元件的程序,而非本主題中的程序。如果您不熟悉附加元件類型之間的差異,請參閱 Amazon EKS 附加元件。
-
查看叢集上目前安裝了哪些容器映像版本。
kubectl describe daemonset kube-proxy -n kube-system | grep Image
範例輸出如下。
Image: 602401143452.dkr.ecr.region-code.amazonaws.com/eks/kube-proxy:v1.29.1-eksbuild.2
在範例輸出中,
v1.29.1-eksbuild.2
是安裝在叢集上的版本。 -
將
602401143452
和region-code
取代為上一個步驟中輸出的值,以更新kube-proxy
附加元件。將v1.30.6-eksbuild.3
取代為每個 Amazon EKS 叢集kube-proxy
版本資料表的最新可用自我管理 kube-proxy 容器映像版本中列出的版本。 kube-proxy 容器映像遷移重要
每個影像類型的資訊清單不同,且無法在預設或最小影像類型之間相容。您必須使用與上一個映像相同的映像類型,讓進入點和引數相符。
kubectl set image daemonset.apps/kube-proxy -n kube-system kube-proxy=602401143452.dkr.ecr.region-code.amazonaws.com/eks/kube-proxy:v1.30.6-eksbuild.3
範例輸出如下。
daemonset.apps/kube-proxy image updated
-
確認您的叢集上現在已安裝新版本。
kubectl describe daemonset kube-proxy -n kube-system | grep Image | cut -d ":" -f 3
範例輸出如下。
v1.30.0-eksbuild.3
-
如果您在相同的叢集中使用
x86
和Arm
節點,且您的叢集已在 2020 年 8 月 17 日之前部署。然後,編輯您的kube-proxy
清單檔案,以包含多個硬體架構的節點選取器,並使用以下命令。這是一次性操作。將選擇器新增至資訊清單後,您不必在每次更新附加元件時新增它。如果您的叢集是在 2020 年 8 月 17 日或之後部署的,則kube-proxy
已經具備多架構能力。kubectl edit -n kube-system daemonset/kube-proxy
將下列節點選取器新增至編輯器中的檔案,然後儲存檔案。如需在編輯器中包含此文字的範例,請參閱 GitHub 上的 CNI 清單檔案
檔案。這可讓 Kubernetes 根據節點的硬體架構提取正確的硬體映像。 - key: "kubernetes.io/arch" operator: In values: - amd64 - arm64
-
如果您的叢集最初是使用 Kubernetes 版本
1.14
或更新版本建立,則可以略過此步驟,因為kube-proxy
已包含此Affinity Rule
。如果您最初使用 Kubernetes 版本1.13
或更早版本建立 Amazon EKS 叢集,並打算在叢集中使用 Fargate 節點,請編輯您的kube-proxy
資訊清單以包含NodeAffinity
規則,以防止kube-proxy
Pod 在 Fargate 節點上排程。這是一次性編輯。將Affinity Rule
新增至資訊清單後,就不需要在每次更新附加元件時新增它。編輯您的kube-proxy
DaemonSet。kubectl edit -n kube-system daemonset/kube-proxy
在編輯器中將以下內容
Affinity Rule
新增至檔案的 DaemonSetspec
區段,然後儲存檔案。如需在編輯器中包含此文字的範例,請參閱 GitHub 上的 CNI 清單檔案檔案。 - key: eks.amazonaws.com/compute-type operator: NotIn values: - fargate
-