Minikube NodeUnderDiskPressure 问题

Minikube NodeUnderDiskPressure issue

我经常 运行 在我的 pods 中 NodeUnderDiskPressure 而在 Minikube 中 运行。使用 minikube ssh 查看 df -h,我在所有坐骑上最多使用 50%。事实上,一个是50%,另外5个<10%。

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
rootfs          7.3G  503M  6.8G   7% /
devtmpfs        7.3G     0  7.3G   0% /dev
tmpfs           7.4G     0  7.4G   0% /dev/shm
tmpfs           7.4G  9.2M  7.4G   1% /run
tmpfs           7.4G     0  7.4G   0% /sys/fs/cgroup
/dev/sda1        17G  7.5G  7.8G  50% /mnt/sda1
$ df -ih
Filesystem     Inodes IUsed IFree IUse% Mounted on
rootfs           1.9M  4.1K  1.9M    1% /
devtmpfs         1.9M   324  1.9M    1% /dev
tmpfs            1.9M     1  1.9M    1% /dev/shm
tmpfs            1.9M   657  1.9M    1% /run
tmpfs            1.9M    14  1.9M    1% /sys/fs/cgroup
/dev/sda1        9.3M  757K  8.6M    8% /mnt/sda1

可能通常会在 1-5 分钟后消失。奇怪的是,重启 Minikube 似乎并没有加快这个过程。我已经尝试删除所有被逐出的 pods 但是,磁盘使用率实际上看起来并不是很高。

我正在使用的 docker 图片不到 2GB,我正在尝试增加其中的一些,所以我仍然有足够的余量。

这是一些 kubectl describe 输出:

$ kubectl describe po/consumer-lag-reporter-3832025036-wlfnt
Name:           consumer-lag-reporter-3832025036-wlfnt
Namespace:      default
Node:           <none>
Labels:         app=consumer-lag-reporter
                pod-template-hash=3832025036
                tier=monitor
                type=monitor
Annotations:    kubernetes.io/created-by={"kind":"SerializedReference","apiVersion":"v1","reference":{"kind":"ReplicaSet","namespace":"default","name":"consumer-lag-reporter-3832025036","uid":"342b0f72-9d12-11e8-a735...
Status:         Pending
IP:
Created By:     ReplicaSet/consumer-lag-reporter-3832025036
Controlled By:  ReplicaSet/consumer-lag-reporter-3832025036
Containers:
  consumer-lag-reporter:
    Image:  avery-image:latest
    Port:   <none>
    Command:
      /bin/bash
      -c
    Args:
      newrelic-admin run-program python manage.py lag_reporter_runner --settings-module project.settings
    Environment Variables from:
      local-config  ConfigMap  Optional: false
    Environment:    <none>
    Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from default-token-sjprm (ro)
Conditions:
  Type           Status
  PodScheduled   False
Volumes:
  default-token-sjprm:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  default-token-sjprm
    Optional:    false
QoS Class:       BestEffort
Node-Selectors:  <none>
Tolerations:     <none>
Events:
  Type     Reason            Age                From               Message
  ----     ------            ----               ----               -------
  Warning  FailedScheduling  15s (x7 over 46s)  default-scheduler  No nodes are available that match all of the following predicates:: NodeUnderDiskPressure (1).

这是一个错误吗?我还能做些什么来调试它?

我试过了:

  1. 正在清理已驱逐的 pods(与 kubectl get pods -a
  2. 清理未使用的图像 (minikube ssh + docker images
  3. 清理所有非运行容器(使用 minikube ssh + docker ps -a)

如我的问题所示,磁盘使用率仍然很低。我只是重新创建了一个 minikube 集群并使用了 --disk-size 标志,这解决了我的问题。需要注意的关键是 尽管 df 显示我几乎没有使用任何磁盘,但它有助于使磁盘更大。