在声明volumeMounts之后没有这样的文件或目录

时间:2018-10-09 07:39:17

标签: kubernetes google-kubernetes-engine

我真的不明白这个问题。在我的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

PersistentVolumePersistenteVolumeClaim

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

1 个答案:

答案 0 :(得分:1)

您的PersistentVolumeClaim可能绑定了错误的PersistentVolume。

PersistentVolumes存在于群集范围内,只有PersistentVolumeClaims附加到名称空间:

$ kubectl api-resources
NAME                     SHORTNAMES   APIGROUP   NAMESPACED   KIND
persistentvolumeclaims   pvc                     true         PersistentVolumeClaim
persistentvolumes        pv                      false        PersistentVolume