我正在定义我的第一个Kubernetes部署,并希望定义一个容器,在两点上装载持久性存储,如下所示(在Deployment.yaml中的spec.template.spec.containers.- ):
volumeMounts: - name: volume1 mountPath: /var/log/app - name: volume2 mountPath: /var/lib/app
我从Kubernetes的MEAN栈示例中了解到,我应该能够创build两个相应的GCE磁盘,如下所示:
gcloud compute disks create --size 10GB volume1 gcloud compute disks create --size 10GB volume2
我目前考虑两个磁盘,而不是一个,因为我需要安装在两个不同的path。 Kubernetes服务可以在不同的path上装载单个卷/磁盘的不同“部分”(可能是分区)吗?
v1.VolumeMount的规范表明,这在服务规范的层面上可能是不可能的,因为它只支持字段name , readOnly和mountPath 。
这些答案表明它可能在EXT4分区的级别上,但是这要求卷是只读的。 即使在只读的情况下(这不符合我的要求),我将如何去创build分区的GCE磁盘?
(从StackOverflow迁移)
Kubernetes持久性卷(或GCE永久性磁盘,大致相同的事物)只能安装到您的容器目录结构中的一个点。 但是,一旦挂载,你可以创build绑定挂载或符号链接来组织它的文件,但是你希望。 您还可以更改应用程序的configuration,以读取和写入挂载永久卷的任何位置的子目录,但这需要更多的工作。
我已经决定使用(符号链接)在一个PD中的多个子目录,而不是一个分区。 这也是build议在这里 (Kubernetes#20835)。