MicroShift is Developer Preview software only.
For more information about the support scope of Red Hat Developer Preview software, see Developer Preview Support Scope.2.3. 临时存储管理
集群管理员可以通过设置配额在非终端状态的所有 Pod 中定义临时存储的限制范围,及临时存储请求数量,来管理项目中的临时存储。开发人员也可以在 Pod 和容器级别设置这个计算资源的请求和限值。
您可以通过指定请求和限值来管理本地临时存储。pod 中的每个容器可以指定以下内容:
-
spec.containers[].resources.limits.ephemeral-storage -
spec.containers[].resources.requests.ephemeral-storage
临时存储的限制和请求以字节数量来衡量。您可以使用以下后缀之一将存储表示为普通整数或固定点号:E、P、T、G、M、k。您还可以使用两的指数:Ei、Pi、Ti、Gi、Mi Ki。例如,以下数量全部代表大约相同的值:128974848、129e6、129M 和 123Mi。后缀的大小写非常重要。如果您指定了 400m 的临时存储,这个请求 0.4 字节,而不是 400 mebibytes 字节 (400Mi) 或 400 megabytes (400M),这可能是预期的。
以下示例显示了有两个容器的 pod。每个容器请求 2GiB 本地临时存储。每个容器限制为 4GiB 本地临时存储。因此,pod 的请求为 4GiB 本地临时存储,限值为 8GiB 本地临时存储。
pod 规格中的此设置会影响调度程序对调度 pod 的决定,以及 kubelet 如何驱除 pod。首先,调度程序确保调度容器的资源请求总和小于节点的容量。在这种情况下,只有在可用临时存储(可分配资源)超过 4GiB 时,pod 才能分配给节点。
其次,在容器级别上,因为第一个容器设置了资源限值,kubelet 驱除管理器会测量此容器的磁盘用量,并在此容器的存储使用量超过其限制时驱除 pod (4GiB)。在 pod 级别,kubelet 通过添加该 pod 中所有容器的限制来达到总体 pod 存储限制。在本例中,pod 级别的总存储使用量是所有容器的磁盘用量总和,以及 pod 的 emptyDir 卷。如果这个总用量超过整个 pod 存储限制 (4GiB),则 kubelet 也会标记 pod 进行驱除。