Google-Compute-Engine

Kubernetes 服務能否在多個掛載路徑上掛載單個 GCE 磁碟的多個“部分”?

  • July 29, 2016

我正在定義我的第一個 Kubernetes 部署,並想定義一個在兩點安裝持久儲存的容器,就像這樣(在Deployment.yaml裡面spec.template.spec.containers.-):

volumeMounts:
- name: volume1
 mountPath: /var/log/app
- name: volume2
 mountPath: /var/lib/app

我從 Kubernetes 的MEAN 堆棧範例中了解到,我應該能夠創建兩個相應的 GCE 磁碟,如下所示:

gcloud compute disks create --size 10GB volume1
gcloud compute disks create --size 10GB volume2

我目前考慮使用兩個磁碟而不是一個,因為我需要安裝在兩個不同的路徑上。Kubernetes 服務能否在不同路徑上掛載單個卷/磁碟的不同“部分”(可能是分區)?

規範表明v1.VolumeMount這在服務規範級別可能是不可能的,因為它僅支持欄位namereadOnlymountPath

這些答案表明它可能在 EXT4 分區的級別上是可能的,但這需要該卷是只讀的。即使在只讀情況下(不符合我的要求),我將如何創建帶有分區的 GCE 磁碟?

(從StackOverflow遷移而來)

Kubernetes 持久卷(或 GCE 持久磁碟,大致相同)只能掛載到 pod 目錄結構中的一個點。但是一旦掛載,您當然可以創建綁定掛載或符號連結來根據需要組織其文件。您還可以更改應用程序的配置以讀取和寫入安裝持久卷的位置的子目錄,但這需要更多的工作。

我已決定使用(符號連結到)PD 內的多個子目錄,而不是單個分區。此處也建議這樣做(Kubernetes #20835)。

引用自:https://serverfault.com/questions/790938