我真的不明白这个问题。在我的pod.yaml
中设置persistentVolumeClaim
。我用PVC和PV复制了我的lastapplication声明。
我检查过文件在正确的位置!
在我的Deployment文件中,我只是设置了容器的端口和规格。
apiVersion: v1
kind: Pod
metadata:
name: ds-mg-cas-pod
namespace: ds-svc
spec:
containers:
- name: karaf
image: docker-all.xxxx.net/library/ds-mg-cas:latest
env:
- name: JAVA_APP_CONFIGS
value: "/apps/ds-cas-webapp/context"
- name: JAVA_EXTRA_PARAMS
value: "-Djava.security.auth.login.config=./config/jaas.config -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=6402"
volumeMounts:
- name: ds-cas-config
mountPath: "/apps/ds-cas-webapp/context"
volumes:
- name: ds-cas-config
persistentVolumeClaim:
claimName: ds-cas-pvc
PersistentVolume
和PersistenteVolumeClaim
kind: PersistentVolume
apiVersion: v1
metadata:
name: ds-cas-pv
namespace: ds-svc
labels:
type: local
spec:
storageClassName: generic
capacity:
storage: 5Mi
accessModes:
- ReadWriteOnce
hostPath:
path: "/apps/ds-cas-webapp/context"
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: ds-cas-pvc
namespace: ds-svc
spec:
storageClassName: generic
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 2Mi
运行Pod时出现的错误
java.io.FileNotFoundException: ./config/truststore.jks (No such file or directory)
我使用docker手动运行同一图像。我没有出错。我的问题是我会在哪里犯错,因为我真的看不到:( 我设置了一切
我用来运行容器的docker命令:
docker run --name ds-mg-cas-manually
-e JAVA_APP=/apps/ds-cas-webapp/cas.war
-e JAVA_APP_CONFIGS=/apps/ds-cas-webapp/context
-e JAVA_EXTRA_PARAMS="-Djava.security.auth.login.config=./config/jaas.config -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=6402"
-p 8443:8443
-p 6402:640
-d
-v /apps/ds-cas-webapp/context:/apps/ds-cas-webapp/context
docker-all.attanea.net/library/ds-mg-cas
/bin/sh -c
答案 0 :(得分:1)
您的PersistentVolumeClaim可能绑定了错误的PersistentVolume。
PersistentVolumes存在于群集范围内,只有PersistentVolumeClaims附加到名称空间:
$ kubectl api-resources
NAME SHORTNAMES APIGROUP NAMESPACED KIND
persistentvolumeclaims pvc true PersistentVolumeClaim
persistentvolumes pv false PersistentVolume