別のポッドから使用できる永続ボリュームを作成する際に問題があります(1回の書き込み、もう1回の読み出し)。 GKE:同じPVを複数のポッドにマウントするには
はK8Sページ(プラスreadOnly
)上の例のようポッド仕様で直接
gcePersistentDisk
を使用しようとしました:
apiVersion: v1
kind: Pod
metadata:
name: test-pd
spec:
containers:
- image: gcr.io/google_containers/test-webserver
name: test-container
volumeMounts:
- mountPath: /test-pd
name: test-volume
readOnly: true
volumes:
- name: test-volume
gcePersistentDisk:
pdName: my-data-disk
fsType: ext4
readOnly: true
その後... readOnly
除いてまったく同じ二ポッドの仕様ではなくなりましたNoDiskConflict
エラーです。
第二のアプローチは、このようPersistentVolume
とPersistentVolumeClaim
を使用することです:
apiVersion: v1
kind: PersistentVolume
metadata:
name: data-standard
spec:
capacity:
storage: 1Gi
accessModes:
- ReadWriteMany
gcePersistentDisk:
fsType: ext4
pdName: data
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: data-standard-claim
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 1Gi
しかし、今、私は私に言って、エラーを取得:
MountVolume.MountDevice failed for volume "kubernetes.io/gce-pd/xxx" (spec.Name: "yyy") pod "6ae34476-6197-11e7-9da5-42010a840186" (UID: "6ae34476-6197-11e7-9da5-42010a840186") with: mount failed: exit status 32 Mounting command: mount Mounting arguments: /dev/disk/by-id/google-gke-cluster-xxx /var/lib/kubelet/plugins/kubernetes.io/gce-pd/mounts/gke-cluster-xxx [ro] Output: mount: wrong fs type, bad option, bad superblock on /dev/sdb, missing codepage or helper program, or other error In some cases useful info is found in syslog - try dmesg | tail or so.
Error syncing pod, skipping: timeout expired waiting for volumes to attach/mount for pod "default"/"my-deployment". list of unattached/unmounted volumes=[data]
そうでGCEディスクを使用する正しい方法は何ですか複数のポッド。
PS:Kubernetes https://kubernetes.io/docs/concepts/storage/persistent-volumes/#access-modesによる1.6.6
2番目のアプローチで 'ReadWriteOnce'が動作しているようですが、すでにあるPVを使用する代わりに新しいPVを作成します – pkyeck
動的プロビジョニングが有効になっている可能性があるので、新しいPVを作成しようとしますctuallyです。 –