【问题标题】:Create Pressure on Kubernetes Nodes对 Kubernetes 节点造成压力
【发布时间】:2020-08-25 14:09:29
【问题描述】:

我想在我的 Pod 上测试由 taintbasedeviction 的内存压力导致的 Pod 驱逐事件,为此我在我的实例上创建了一个内存负载,该实例具有 2 个 vcpu 和 8GB 内存。

为了创建负载,我运行了这个命令:

stress-ng --vm 2 --vm-bytes 10G --timeout 60s

内存使用量的输出

$ free -h
              total        used        free      shared  buff/cache   available
Mem:          7.8Gi       2.7Gi       1.0Gi       3.9Gi       4.1Gi       984Mi
Swap:            0B          0B          0B

但是在我的节点状态下没有内存压力我已经在下面更新了 kubelet eviction 参数:

evictionHard:
    memory.available:  "200Mi"

总而言之,如何在我的工作节点上创建内存压力以测试基于污点的驱逐?

谢谢

【问题讨论】:

    标签: linux kubernetes containers


    【解决方案1】:

    您可以多次调用压力命令。检查脚本here

    memory.available 的值源自 cgroupfs,而不是像 free -m 这样的工具。这一点很重要,因为free -m 在容器中不起作用,并且如果用户使用节点可分配功能,资源外决策将在 cgroup 层次结构的最终用户 Pod 部分以及根节点本地进行。这个script 重现了 kubelet 计算memory.available 所执行的相同步骤集。 kubelet 从计算中排除了 inactive_file(即 inactive LRU 列表上文件支持的内存的字节数),因为它假设内存在压力下是可回收的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-13
      • 2016-11-01
      • 2020-06-03
      • 2018-11-26
      • 1970-01-01
      • 2017-11-26
      • 2021-06-16
      • 2019-12-18
      相关资源
      最近更新 更多