GKE上的Kubernetes无法挂载卷

时间:2018-08-01 07:26:21

标签: google-cloud-platform google-kubernetes-engine

集群中有两个正在运行的节点和两个Pod  (每个节点上有一个Pod) 我的永久性索赔量低于

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: blockchain-data
  annotations: {
        "volume.beta.kubernetes.io/storage-class": "blockchain-disk"
    }
spec:
  accessModes:
    - ReadWriteOnce
  storageClassName: ssd
  resources:
    requests:
      storage: 500Gi

mystorageclass

kind: StorageClass
apiVersion: storage.k8s.io/v1beta1
metadata:
  name: blockchain-disk
provisioner: kubernetes.io/gce-pd
parameters:
  type: pd-ssd

然后我像这样将它安装在我的容器上

spec:
      containers:
        - image: gcr.io/indiesquare-dev/geth-node:v1.8.12
          imagePullPolicy: IfNotPresent
          name: geth-node
          resources: {}
          terminationMessagePath: /dev/termination-log
          terminationMessagePolicy: File
          volumeMounts:
            - name: blockchain-data
              mountPath: /root/.ethereum
      volumes:
        - name: blockchain-data
          persistentVolumeClaim: 
            claimName: blockchain-data  

我的副本设置为2。启动部署时,第一个Pod正确启动并正确安装了磁盘。

但是,第二个窗格卡在containtercreating

如果我运行kubectl describe pods

Warning  FailedAttachVolume     18m               attachdetach-controller                       Multi-Attach error for volume "pvc-c56fbb79-954f-11e8-870b-4201ac100003" Volume is already exclusively attached to one node and can't be attached to another

我认为根据此消息,我正在尝试将已连接的磁盘连接到另一个节点。

我要做的是将两个持久卷分别附加到两个Pod。如果豆荚按比例增加,则每个豆荚应附有不同的体积。 我该怎么办?

1 个答案:

答案 0 :(得分:0)

您不能将GCE永久磁盘附加到多个节点。因此,如果您的Pod落在不同的节点上,则您将无法重复使用同一张磁盘。

您需要使用类似ReadOnlyMany的访问方式,但是您具有ReadWriteOnce。

阅读https://cloud.google.com/kubernetes-engine/docs/concepts/persistent-volumes#access_modes