kubernetes - Kubernetes 临时存储容器
问题描述
Kubernetes 具有临时存储的概念,可以通过部署将其应用于容器,如下所示:
limits:
cpu: 500m
memory: 512Mi
ephemeral-storage: 100Mi
requests:
cpu: 50m
memory: 256Mi
ephemeral-storage: 50Mi
现在,将其应用于 k8s 1.18 集群(IBM Cloud 托管的 k8s)时,当我查看正在运行的容器时,我看不到任何更改:
kubectl exec -it <pod> -n <namespace> -c nginx -- /bin/df
我希望看到那里的变化。我错了吗?
解决方案
kubectl describe node <insert-node-name-here>
您可以通过在运行部署的 pod 的节点上使用来查看分配的资源。
您应该看到如下内容:
Allocated resources:
(Total limits may be over 100 percent, i.e., overcommitted.)
Resource Requests Limits
-------- -------- ------
cpu 1130m (59%) 3750m (197%)
memory 4836Mi (90%) 7988Mi (148%)
ephemeral-storage 0 (0%) 0 (0%)
hugepages-1Gi 0 (0%) 0 (0%)
hugepages-2Mi 0 (0%) 0 (0%)
attachable-volumes-azure-disk 0 0
当您请求 50Mi 的临时存储时,它应该显示在Requests
. 当您的 Pod 尝试使用超过限制 (100Mi) 时,Pod 将被驱逐并重新启动。
在节点方面,任何使用超过其请求资源的 pod 都会在节点耗尽资源时被驱逐。换句话说,除了 Pod 的请求之外,Kubernetes 从不提供任何资源可用性保证。
在 kubernetes 文档中,您可以在此处找到更多关于临时存储消耗管理工作原理的详细信息。
请注意,将 kubectl exec 与df
命令一起使用可能不会显示存储的实际使用情况。
根据 kubernetes文档:
kubelet 可以测量它使用了多少本地存储。它这样做的前提是:
LocalStorageCapacityIsolation
功能门已启用(该 功能默认开启),并且- 您已使用本地临时存储支持的配置之一设置了节点。
如果您有不同的配置,则 kubelet 不会对临时本地存储应用资源限制。
注意: kubelet 跟踪
tmpfs
emptyDir 卷作为容器内存使用,而不是作为本地临时存储。
推荐阅读
- python - 如何在 PyQt5 中的 QTabBar 旁边设置图像
- python-3.x - Python-如何处理 RTSP 链接的错误
- javascript - 更改 Json 结构 javascript
- angular - 如何使用 react-reactive-forms 正确创建自定义验证
- node.js - 如果反应是特定反应,我如何让我的机器人检测到反应然后发送消息?
- javascript - 如果函数声明为异步,为什么 Jest 通过测试?
- docker - 让docker在docker compose中访问consul
- katalon-recorder - 在katalon记录器中生成警报消息
- javascript - 如何在 Odoo 12 中访问 pos 订单行的税务信息
- node.js - Mongodb:在 $lookup 聚合之后添加新字段