如果声明了卷,则Openshift deployment-config模板无法部署pod

时间:2017-01-19 20:41:45

标签: templates openshift

我有一个OpenShift部署配置模板,我是从一个工作部署生成的(使用" oc export")。原始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

使用此模板部署时,部署会等待创建窗格("状态:容器创建")。如果用短暂的卷声明替换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)修改现有部署配置存储"并且指定PVC时,观察到与模板化部署相同的行为:新部署启动(由于配置更改)但其关联的pod永远不会启动。

1 个答案:

答案 0 :(得分:0)

解决:我的坏。我发现我在为服务PV而设置的NFS服务器上有一个错误的挂载点。一旦我指定了正确的安装点,pod就会很好地启动(好吧,无论如何都要解决下一个问题)。