帮助改进此页面
要帮助改进本用户指南,请选择位于每个页面右侧窗格中的在 GitHub 上编辑此页面链接。
在本教程中,您将了解如何将示例工作负载部署到 EKS 自动模式集群,并观察其如何自动预置所需的计算资源。您将使用 kubectl
命令来观察集群行为,并亲眼见证自动模式如何在 AWS 上简化 Kubernetes 的操作。完成本教程后,您将了解 EKS 自动模式如何通过自动管理底层计算资源来响应工作负载部署,无需手动配置节点组。
先决条件
-
一个启用了计算功能的 Amazon EKS 自动模式集群。记下集群的名称和 AWS 区域。
-
一个具有管理联网、计算和 EKS 资源的足够权限的 IAM 主体,例如用户或角色。
-
有关更多信息,请参阅《IAM 用户指南》中的创建角色并附加策略(控制台)。
-
-
已使用某个 IAM 身份 安装并配置了
aws
CLI。 -
已安装
kubectl
CLI 并连接到集群。-
有关更多信息,请参阅 进行设置以使用 Amazon EKS。
-
第 1 步:检查现有的计算资源(可选)
首先,使用 kubectl
列出集群上的节点池。
kubectl get nodepools
示例输出:
general-purpose
在本教程中,我们将部署一个配置为使用 general-purpose
节点池的工作负载。此节点池已内置在 EKS 自动模式中,包括微服务和 Web 应用程序等一般工作负载的合理默认值。您可以创建自己的节点池。有关更多信息,请参阅 为 EKS 自动模式创建节点池。
然后,使用 kubectl
列出连接到集群的节点。
kubectl get nodes
如果您刚刚创建了 EKS 自动模式集群,则将没有任何节点。
在本教程中,您将部署一个示例工作负载。如果没有节点,或者现有节点不能满足工作负载的要求,EKS 自动模式将预置一个新节点。
第 2 步:将示例应用程序部署到集群
检查以下 Kubernetes 部署并将其另存为 inflate.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: inflate
spec:
replicas: 1
selector:
matchLabels:
app: inflate
template:
metadata:
labels:
app: inflate
spec:
terminationGracePeriodSeconds: 0
nodeSelector:
eks.amazonaws.com/compute-type: auto
securityContext:
runAsUser: 1000
runAsGroup: 3000
fsGroup: 2000
containers:
- name: inflate
image: public.ecr.aws/eks-distro/kubernetes/pause:3.7
resources:
requests:
cpu: 1
securityContext:
allowPrivilegeEscalation: false
请注意,eks.amazonaws.com/compute-type: auto
选择器要求将工作负载部署到 Amazon EKS 自动模式节点上。
将部署应用到集群。
kubectl apply -f inflate.yaml
第 3 步:观察 Kubernetes 事件
使用以下命令观察 Kubernetes 事件,包括创建新节点。使用 ctrl+c
停止观察事件。
kubectl get events -w --sort-by '.lastTimestamp'
再次使用 kubectl
列出连接到集群的节点。记下新创建的节点。
kubectl get nodes
第 4 步:在 AWS 控制台中查看节点和实例
您可以在 EKS 控制台中查看 EKS 自动模式节点,以及在 EC2 控制台中查看关联的 EC2 实例。
由 EKS 自动模式部署的 EC2 实例存在限制。您不能在 EKS 自动模式节点上运行任意命令。
第 5 步:删除部署
使用 kubectl
删除示例部署
kubectl delete -f inflate.yaml
如果集群中没有部署其他工作负载,则由 EKS 自动模式创建的节点将为空。
在默认配置中,EKS 自动模式会检测已空三十秒钟的节点,并将其终止。
使用 kubectl
或 EC2 控制台确认关联的实例已被删除。