gpt4 book ai didi

kubernetes - 如何避免在没有足够存储空间的节点上创建Pod?

转载 作者:行者123 更新时间:2023-12-02 12:04:30 25 4
gpt4 key购买 nike

我正在使用Kubernetes设置我的应用程序。我有2个Docker镜像(Oracle和Weblogic)。我有2个kubernetes节点,Node1(20 GB存储)和Node2(60 GB)存储。

当我运行kubectl apply -f oracle.yaml时,它尝试在Node1上创建oracle pod,并且几分钟后由于存储不足而失败。我如何强制Kubernetes在该节点上创建Pod之前检查该节点的可用存储空间?

谢谢

最佳答案

首先,您可能希望为Node1提供更多存储空间。

但是,如果您根本不想启动Pod,则可以使用 initContainer 进行检查,然后使用 du df 来检查正在使用的空间。它可能是一个脚本,用于检查没有足够空间时无法成功退出的阈值。像这样:

#!/bin/bash 

# Check if there are less than 10000 bytes in the <dir> directory
if [ `du <dir> | tail -1 | awk '{print $1}'` -gt "10000" ]; then exit 1; fi

另一种选择是将 persistent volume(PV)与具有足够空间的 persistent volume claim(PVC)以及默认的 StorageClass Admission Controller一起使用,并在卷定义中分配适当的空间。
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: myclaim
spec:
accessModes:
- ReadWriteOnce
volumeMode: Filesystem
resources:
requests:
storage: 40Gi
storageClassName: mytype

然后在您的Pod上:
kind: Pod
apiVersion: v1
metadata:
name: mypod
spec:
containers:
- name: mycontainer
image: nginx
volumeMounts:
- mountPath: "/var/www/html"
name: mypd
volumes:
- name: mypd
persistentVolumeClaim:
claimName: myclaim

如果无法分配您的 claim ,则Pod不会启动(没有足够的空间)

关于kubernetes - 如何避免在没有足够存储空间的节点上创建Pod?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55854393/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com