Templates 如果声明了卷,则Openshift部署配置模板无法部署pod
我有一个OpenShift部署配置模板,它是从工作部署(使用“oc导出”)生成的。原始pod在/data上安装了一个持久卷声明(PVC)。当我尝试使用模板部署时,pod从未启动。如果我从模板中删除所有关于卷和卷装载的内容,pod就会启动。然后我必须手动连接卷。我想能够做这一切从模板虽然。以下是仅显示相关项目的部分模板:Templates 如果声明了卷,则Openshift部署配置模板无法部署pod,templates,openshift,Templates,Openshift,我有一个OpenShift部署配置模板,它是从工作部署(使用“oc导出”)生成的。原始pod在/data上安装了一个持久卷声明(PVC)。当我尝试使用模板部署时,pod从未启动。如果我从模板中删除所有关于卷和卷装载的内容,pod就会启动。然后我必须手动连接卷。我想能够做这一切从模板虽然。以下是仅显示相关项目的部分模板: apiVersion: v1 kind: Template metadata: name: myapp objects: - apiVersion: v1 kind: D
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
编辑:另一个数据点(也许我应该从这里开始)是,如果通过选择“附加存储”并指定PVC从openshift控制台(应用程序->部署->我的dc)修改现有部署配置,则会观察到与模板部署相同的行为:新部署启动(由于配置更改)但其关联的pod从未启动。解决了:我的问题。我发现我在为PV服务而设置的NFS服务器上有一个错误的装载点。一旦我指定了正确的装载点,pod启动正常(好吧,继续下一个问题).你能从
oc get pvc
中得到什么?如果你对可以使用的持久卷的数量有配额,并且已经申请了配额,那么如果模板的结构需要申请一个新卷,它将处于挂起状态。如果你确实有最大申请卷,但没有使用它们,你应该首先释放它们。我补充道d上面编辑的OP中的输出。我没有看到任何配额的提及,我只有这一个(nfs-pv00)和另一个容器注册表(在不同的项目中)。因此,我认为我没有达到限制。如果这是您设置的群集,则不会有配额。我仅提及配额,以防您使用OpenShift Online developer预览,该预览具有每个用户2个永久卷的配额。