在专用实例上运行关键附加组件 - Amazon EKS
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

帮助改进此页面

要帮助改进本用户指南,请选择位于每个页面右侧窗格中的在 GitHub 上编辑此页面链接。

在专用实例上运行关键附加组件

在本主题中,您将了解如何部署具有 CriticalAddonsOnly 容忍度的工作负载,以便 EKS 自动模式将其调度到 system 节点池中。

EKS 自动模式内置的 system 节点池专为在专用实例上运行关键附加组件而设计。这种隔离可确保关键组件拥有专用资源并与一般工作负载隔离,从而增强集群的整体稳定性和性能。

本指南演示了如何利用 CriticalAddonsOnly 容忍度和适当的节点选择器将附加组件部署到 system 节点池。通过执行这些步骤,您可以利用 EKS 自动模式专用节点池结构提供的隔离和资源分配优势,确保将关键应用程序调度到专用的 system 节点上。

EKS 自动模式有以下两个内置节点池:general-purposesystem。有关更多信息,请参阅 启用或禁用内置节点池

system 节点池的作用是将关键附加组件隔离到不同的节点上。system 节点池预置的节点有一个 CriticalAddonsOnly Kubernetes 污点。Kubernetes 仅在具有对应的容忍度时才会将容器组调度到这些节点上。有关更多信息,请参阅 Kubernetes 文档中的污点和容忍度

先决条件

过程

参阅下面的示例 yaml。请注意以下配置:

  • nodeSelector – 这会将工作负载关联到内置的 system 节点池。必须使用 Amazon API 启用此节点池。有关更多信息,请参阅 启用或禁用内置节点池

  • 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 节点池上运行的工作负载,您需要完成以下操作:

  1. 更新现有工作负载以添加上文描述的以下配置:

    • nodeSelector

    • tolerations

  2. 使用 kubectl apply 将更新后的工作负载部署到集群

工作负载更新后将在专用节点上运行。