如果声明了卷,Openshift部署配置模板将无法部署pod



我有一个OpenShift部署配置模板,它是我从工作部署中生成的(使用"oc导出")。原始pod在/data上安装了一个持久卷声明(PVC)。当我尝试使用模板进行部署时,pod永远不会启动。如果我从模板中删除所有提到的卷和卷装载,那么pod就会启动。然后我必须手动连接卷。不过,我希望能够从模板中完成所有操作。以下是仅显示相关项目的部分模板:

apiVersion: v1
kind: Template
metadata:
name: myapp
objects:
- apiVersion: v1
kind: DeploymentConfig
metadata:
name: myapp-service
spec:
template:
spec:
containers:
- name: myapp-service
image: my-private-registry/myapp-service:latest
volumeMounts:
- mountPath: /data
name: volume-001
volumes:
- persistentVolumeClaim:
claimName: nfs-pvc
name: volume-001

当使用此模板进行部署时,部署将等待创建pod("状态:容器创建")。如果persistentVolumeClaim项被临时卷声明替换:

volumes:
- emptyDir: {}
name: volume-001

它开始很好。因此,问题似乎是针对persistentVolumeClaim条目的。PV和PVC都是预先设置的,如下所示:

> oc get pv
NAME         CAPACITY   ACCESSMODES   STATUS    CLAIM                 REASON    AGE
nfs-pv00     50Gi       RWX           Bound     my-project/nfs-pvc              1h
> oc get pvc
NAME         STATUS    VOLUME     CAPACITY   ACCESSMODES   AGE
nfs-pvc      Bound     nfs-pv00   50Gi       RWX           1h

编辑:另一个数据点(也许我应该从这里开始)是,如果从openshift控制台(Applications->Deployments->my dc)通过选择"Attach storage"并指定PVC来修改现有的部署配置,则会观察到与模板化部署相同的行为:新的部署启动(由于配置更改),但其关联的pod永远不会启动。

解决:我的坏。我发现我在NFS服务器上有一个错误的挂载点,我为PV设置了这个挂载点。一旦我指定了正确的挂载点,pod就可以正常启动了(好吧,无论如何,接下来的问题)。

最新更新