如何通过添加额外的SSD来解决节点上的“磁盘压力”状态?

问题描述 投票:0回答:1

我尝试在一些机器上部署 Kubernetes 集群,并使用

kubeadm init
来初始化集群。但是,我注意到有两个 Pod 处于
pending
状态。

$ kubectl get pods -A -o wide
NAMESPACE      NAME                           READY   STATUS    RESTARTS   AGE   IP               NODE     NOMINATED NODE   READINESS GATES
kube-system    coredns-65c54cc984-c6jxl       0/1     Pending   0          79s   <none>           <none>   <none>           <none>
kube-system    coredns-65c54cc984-dn2md       0/1     Pending   0          79s   <none>           <none>   <none>           <none>

为了调查待处理状态的原因,我使用了

kubectl describe

$ kubectl describe pod/coredns-65c54cc984-c6jxl -n kube-system
...
Warning  FailedScheduling  4s    default-scheduler  0/1 nodes are available: 1 node(s) had taint {node.kubernetes.io/disk-pressure: }, that the pod didn't tolerate.

机器上似乎磁盘容量不足。安装在

/
的 SSD 只有 3% 的可用空间,这是导致问题的原因。为了解决这个问题,我添加了一个额外的 SSD,安装在
/data
目录中。但是,我不确定如何配置
kubeadm
来识别
/data
进行数据存储,从而防止节点进入
disk-pressure
状态。我应该采取什么步骤?

kubernetes disk
1个回答
0
投票

首先确保安装在/data的新SSD已正确格式化并正确安装。此 SSD 上应该有足够的可用空间来容纳您的 Kubernetes 数据。

然后更新 kubelet 配置:您需要告诉 kubelet(负责管理每个节点上的容器的组件)在哪里存储其数据。您可以通过修改 kubelet 配置文件来做到这一点。编辑 kubelet 配置文件,通常位于

/etc/default/kubelet
/etc/systemd/system/kubelet.service.d/10-kubeadm.conf
,具体取决于您的设置。

修改

KUBELET_EXTRA_ARGS
变量以包含指向
--root-dir
目录的
/data
标志。例如:

KUBELET_EXTRA_ARGS="--root-dir=/data/kubelet"

如果指定的目录不存在,请确保创建该目录。

重启kubelet:修改kubelet配置后,重启kubelet服务以应用更改:

sudo systemctl restart kubelet
© www.soinside.com 2019 - 2024. All rights reserved.