当其中一个 EKS 工作节点用完分配的 EBS 存储时会发生什么?

What happens when one of the EKS worker nodes runs out of allocated EBS storage?

我使用 this terraform module 创建了一个 EKS 集群:

module "eks" {
  ...
  worker_groups = [
    {
      name                          = "worker-group-1"
      instance_type                 = "t2.small"
      asg_desired_capacity          = 2
    }
  ]
}

如您所见,它创建了一个 t2.small EC2 个实例的工作组。 t2.small 个实例是 EBS-backed,默认情况下有 20 GiBEBS 个卷。当这些节点之一消耗了所有分配的 EBS 卷时会发生什么?

如果出现上述none种情况,我的集群应该如何处理?什么是最好的方法?

What happens when one of these nodes, consumes all of it's allocated EBS volume?

  • 当计算资源处于压力之下时,节点会报告一个情况。调度程序将该条件视为一个信号,以阻止在节点上放置额外的 pods。在这种情况下,节点条件将为 DiskPressure,这意味着没有新的 Pods 被调度到该节点。您可以通过查看 Configure Out of Resource Handling 文档找到有关该主题的更多详细信息。

Does the cluster autoscaler (which is enabled in my EKS cluster) create a new worker node? Or, Does the allocated EBS volume get increased?

  • 自动缩放器检查集群中是否有 pods 由于 CPU 或内存资源不足或 pod 的节点亲和性规则或污点容忍与现有节点不匹配而无法在任何现有节点上进行调度节点。如果集群有不可调度的 pods,autoscaler 将检查其托管节点池,以确定添加节点是否会解除对 pod 的阻塞。如果是这样,如果可以增加节点池的大小,它将添加一个节点。可以找到集群自动缩放器的 AWS 实施的所有细节 here