協助改進此頁面
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
若要為本使用者指南貢獻內容,請點選每個頁面右側面板中的在 GitHub 上編輯此頁面連結。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在專用執行個體上執行關鍵附加元件
在本主題中,您將了解如何部署具有 CriticalAddonsOnly 容差的工作負載,以便 EKS 自動模式將其排程到 system 節點集區上。
EKS 自動模式的內建 system 節點集區專為在專用執行個體上執行關鍵附加元件而設計。這種隔離確保了關鍵元件擁有專用資源,並與一般工作負載隔離開,從而提升了叢集的整體穩定性與效能。
本指南示範如何透過使用 CriticalAddonsOnly 容差和適當的節點選擇器,將附加元件部署到 system 節點集區。遵循這些步驟,您可以確保您的關鍵應用程式被排程到專用的 system 節點上,充分利用 EKS 自動模式的專用節點集區結構所帶來的隔離與資源分配優勢。
EKS 自動模式有兩個內建節點集區:general-purpose 和 system。如需詳細資訊,請參閱 啟用或停用內建的 NodePool。
system 節點集區的用途是將關鍵附加元件隔離到不同的節點上。節點集區佈建的 system 節點帶有 CriticalAddonsOnly Kubernetes 污點。Kubernetes 只會將具有相應容差的 Pod 排程到這些節點上。如需詳細資訊,請參閱 Kubernetes 文件中的污點和容差
先決條件
-
已啟用內建
system節點集區的 EKS 自動模式叢集。如需詳細資訊,請參閱啟用或停用內建的 NodePool -
kubectl已安裝並已設定。如需詳細資訊,請參閱 設定以使用 Amazon EKS。
程序
請檢閱以下的範例 yaml。記下下列組態:
-
nodeSelector:這會將工作負載與內建的system節點集區建立關聯。此節點集區必須透過 AWS API 啟用。如需詳細資訊,請參閱 啟用或停用內建的 NodePool。 -
tolerations:此容差用於克服system節點集區中節點上的CriticalAddonsOnly污點。
apiVersion: apps/v1 kind: Deployment metadata: name: sample-app spec: replicas: 3 selector: matchLabels: app: sample-app template: metadata: labels: app: sample-app spec: nodeSelector: karpenter.sh/nodepool: system tolerations: - key: "CriticalAddonsOnly" operator: "Exists" containers: - name: app image: nginx:latest resources: requests: cpu: "500m" memory: "512Mi"
要更新工作負載使其在 system 節點集區上執行,您需要:
-
更新現有工作負載,以新增上述的下列組態:
-
nodeSelector -
tolerations
-
-
使用
kubectl apply將更新後的工作負載部署到您的叢集
更新工作負載之後,它將在專用節點上執行。