Skip to content

55 谈谈Kubernetes的存储设计理念

你好,我是周志明。从这节课起,我会用三讲带你学习容器编排系统存储方面的知识点。今天这节课,我们先来探讨下Kubernetes的存储设计理念。

Kubernetes的存储设计考量

在开始之前,我想先表明一下我对Kubernetes存储能力的态度。Kubernetes在规划持久化存储能力的时候,依然遵循着它的一贯设计哲学,用户负责以资源和声明式API来描述自己的意图,Kubernetes负责根据用户意图来完成具体的操作。不过我认为,就算只是描述清楚用户的存储意图,也不是一件容易的事情,相比Kubernetes提供的其他能力的资源,它内置的存储资源其实格外地复杂,甚至可以说是有些繁琐的。

如果你是Kubernetes的拥趸,不能认同我对Kubernetes的批评,那不妨来看一看下列围绕着“Volume”所衍生出的概念,它们仅仅是与Kubernetes存储相关概念的一个子集而已,你在看的时候也可以来思考一下,这些概念是否全都是必须的、是否还有整合的空间、是否有化繁为简的可能性:

概念:VolumePersistentVolumePersistentVolumeClaimProvisionerStorageClassVolume SnapshotVolume Snapshot ClassEphemeral VolumesFlexVolume DriverContainer Storage InterfaceCSI Volume CloningVolume LimitsVolume ModeAccess ModesStorage Capacity……
操作:MountBindUseProvisionClaimReclaimReserveExpandCloneScheduleReschedule……