【发布时间】:2019-09-15 08:48:06
【问题描述】:
我正在将 3 个 Pod 部署到 Google Kubernetes Engine。其中两个 pod 共享与预先存在的持久卷的 ReadOnlyMany 绑定,映射到 gcePersistentDisk。其中一个吊舱启动。另一个没有,最终超时并出现错误“Unable to mount volumes for pod”
kubectl describe pv 或 kubectl describe pvc 下没有显示错误。 kubectl describe pvc 表明每个持久卷声明都绑定到未启动的 pod。
相关配置:
kind: PersistentVolume
apiVersion: v1
metadata:
name: configuration
spec:
capacity:
storage: 1G
accessModes:
- ReadOnlyMany
storageClassName: ""
gcePersistentDisk:
fsType: ext4
readOnly: true
pdName: my-persistent-disk-name
persistentVolumeReclaimPolicy: Retain
---
kind: PersistentVolume
apiVersion: v1
metadata:
name: kb
spec:
capacity:
storage: 1G
accessModes:
- ReadOnlyMany
storageClassName: ""
gcePersistentDisk:
fsType: ext4
readOnly: true
pdName: my-persistent-disk-name
persistentVolumeReclaimPolicy: Retain
---
kind: PersistentVolume
apiVersion: v1
metadata:
name: content
spec:
capacity:
storage: 1G
accessModes:
- ReadOnlyMany
storageClassName: ""
gcePersistentDisk:
fsType: ext4
readOnly: true
pdName: my-persistent-disk-name
persistentVolumeReclaimPolicy: Retain
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: config-pvc
spec:
accessModes:
- ReadOnlyMany
volumeName: configuration
storageClassName: ""
resources:
requests:
storage: 1G
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: kb-pvc
spec:
accessModes:
- ReadOnlyMany
volumeName: kb
storageClassName: ""
resources:
requests:
storage: 1G
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: content-pvc
spec:
accessModes:
- ReadOnlyMany
volumeName: content
storageClassName: ""
resources:
requests:
storage: 1G
---
kind: Deployment
apiVersion: apps/v1
metadata:
name: worker
spec:
template:
spec:
containers:
- name: esp
image: gcr.io/endpoints-release/endpoints-runtime:1.20.0
args: [ "-http-port", "8080", ... ]
- name: workers
image: my-registry/my-image:my-version
volumeMounts:
- name: config
mountPath: /config
subPath: ./config
readOnly: true
- name: kb
mountPath: /kb
subPath: ./kb
readOnly: true
- name: content
mountPath: /content
subPath: ./content
readOnly: true
volumes:
- name: config
persistentVolumeClaim:
claimName: config-pvc
readOnly: true
- name: kb
persistentVolumeClaim:
claimName: kb-pvc
readOnly: true
- name: content
persistentVolumeClaim:
claimName: content-pvc
readOnly: true
---
kind: Deployment
apiVersion: apps/v1
metadata:
name: another-worker
spec:
template:
spec:
containers:
- name: another-worker-name
image: my-registry/my-other-image:my-other-version
command: ["./run-server.sh", "--path-data", "/config/data/"]
args: []
volumeMounts:
- name: kb
mountPath: /config
subPath: ./kb/i2k_context
readOnly: true
volumes:
- name: kb
persistentVolumeClaim:
claimName: kb-pvc
readOnly: true
上面示例中名为“worker”的 pod 应该开始运行。它没有,并最终显示未安装和/或未附加卷的超时错误。
名为“another-worker”的 pod 启动并按预期运行。
【问题讨论】:
标签: kubernetes google-kubernetes-engine