为什么在使用 EKS 节点组时 Pod 没有触发扩展?

Why a pod didn't trigger scale-up when working with EKS nodegroup?

我在 EKS 节点组上部署了 K8S 集群,并根据此文档部署了自动标量 https://docs.aws.amazon.com/eks/latest/userguide/cluster-autoscaler.html

节点大小为t3.large即2cpu和8G内存大小为:

desired_size = 1
    max_size     = 3
    min_size     = 1

当我在此集群上部署 Elasticsearch pod 时:

containers:
        - name: es
          image: elasticsearch:7.10.1
          resources:
            requests:
              cpu: 2
              memory: 8Gi

收到此错误:

Events:
  Type     Reason             Age                 From                Message
  ----     ------             ----                ----                -------
  Warning  FailedScheduling   57s (x11 over 11m)  default-scheduler   0/1 nodes are available: 1 Insufficient cpu, 1 Insufficient memory.
  Normal   NotTriggerScaleUp  49s (x54 over 10m)  cluster-autoscaler  pod didn't trigger scale-up: 1 Insufficient cpu, 1 Insufficient memory

不知道为什么缩放器没有被触发。

我能想到的一件事是pod请求的资源满足节点的最大容量。这就是它无法扩展的原因吗?规模是否可以将多个小节点资源组合成一个大节点?就像我启动了 3 个小节点,这些节点可以被一个 pod 使用?

实例类型不是实际可分配的容量,检查:

kubectl describe node <name> | grep Allocatable -A 7

更新:您可以使用 ASG 添加额外的节点组,将更大的实例类型用于自动缩放器,以达到 select 正确的大小。确保您的 ASG 已标记,以便自动缩放器可以自动发现这些 ASG。

k8s.io/cluster-autoscaler/enabled
k8s.io/cluster-autoscaler/<cluster-name>