无法在共享只读GCE永久磁盘的1个GKE节点上运行2个Kubernetes Pod
我已经尝试在单节点GKE集群上运行2个Kubernetes组件,共享一个只读的GCE永久磁盘,但一个组件成功运行时,另一个组件处于ContainerCreating
状态。
容器很简单:
FROM debian:jessie CMD ["/bin/sh", "-c", "while true; do ls /mount; sleep 5; done"]
部署如下所示:
apiVersion: extensions/v1beta1 kind: Deployment metadata: name: dumpy spec: replicas: 2 template: metadata: labels: app: dump spec: containers: - name: dump image: gcr.io/myproject/dump volumeMounts: - mountPath: /mount name: dump readOnly: true volumes: - name: dump gcePersistentDisk: pdName: my-disk fsType: ext4 readOnly: true
失败的荚报告:
Warning FailedMount Unable to mount volumes for pod "xxx". Could not attach GCE PD "my-disk". Timeout waiting for mount paths to be created. FailedSync Error syncing pod, skipping: Could not attach GCE PD "my-disk". Timeout waiting for mount paths to be created.
/var/log/kubelet.log
报告:
gce.go:422] GCE operation failed: googleapi: Error 400: The disk resource 'my-disk' is already being used by 'xxx-123' gce_util.go:187] Error attaching PD "my-disk": googleapi: Error 400: The disk resource 'my-disk' is already being used by 'xxx-123'
我相信Kubernetes文档明确地允许这种情况。
PD的一个特点是它们可以同时被多个用户以只读方式安装。 这意味着您可以使用数据集预先填充PD,然后根据需要从多个Pod中并行提供。
发生了什么事,有什么修复?
格伦,你打到https://github.com/kubernetes/kubernetes/issues/19953
没有很好的解决方法。
它已经被https://github.com/kubernetes/kubernetes/pull/26351修复,这将成为下一个Kubernetes发布(v1.3)的一部分,该发布计划在6月底发布( https://github.com) /kubernetes/kubernetes/wiki/Release-1.3 )。
- 如何从Google云端平台上的Docker镜像使用neo4j
- 尽pipenetstat指出端口可用,Docker运行不能发布端口范围
- 如何在Google Compute Engine上正确运行Docker(自动重启)
- Google Cloud Container-vm不会重新启动Docker容器
- 从Google Cloud Container Registry中提取Docker镜像时,权限被拒绝
- 使用Docker部署Web服务应用程序
- 如何最好地连接Docker中的容器
- docker机器,创build并运行一个nginx容器不暴露端口80
- 任何关于在GCE的CoreOS上运行Kubernetes的Aerospike的build议?