Kubernetes Pod未在本地路径上写入

Kubernetes Pod未在本地路径上写入,kubernetes,docker-volume,persistent-storage,Kubernetes,Docker Volume,Persistent Storage,我对集装箱和库伯内特是新手。 我要做的是创建一个可以访问本地目录的pod 我已按照以下指示行事: 创建了我的持久卷、持久卷声明和我的pod 问题是tomcat无法在共享目录上写入 这是永久卷: kind: PersistentVolume apiVersion: v1 metadata: name: pv-webapp6 labels: type: local spec: storageClassName: manual capacity: storage: 3

我对集装箱和库伯内特是新手。 我要做的是创建一个可以访问本地目录的pod

我已按照以下指示行事:

创建了我的持久卷、持久卷声明和我的pod

问题是tomcat无法在共享目录上写入

这是永久卷:

kind: PersistentVolume
apiVersion: v1
metadata:
  name: pv-webapp6
  labels:
    type: local
spec:
  storageClassName: manual
  capacity:
    storage: 3Gi
  accessModes:
    - ReadWriteOnce
  hostPath:
    path: "/opt/test_tomcat/app"
这是持久卷声明:

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: pvc-webapp6
spec:
  storageClassName: manual
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 1Gi
这是我正在尝试创建的tomcat吊舱:

apiVersion: v1
kind: Pod
metadata:
  name: webapp6
spec:
  containers:
  - image: tomcat:8.0
    name: webapp6
    ports:
      - containerPort: 8080
        name: webapp6
    volumeMounts:
    - mountPath: /usr/local/tomcat/webapps
      name: test-volume
  volumes:
  - name: test-volume
    persistentVolumeClaim:
      claimName: pvc-webapp6
这有点明显,但这是吊舱上的错误

[root@testserverwebapp6测试]#kubectl exec-it webapp6--/bin/bash
root@webapp6:/usr/local/tomcat#mkdir/usr/local/tomcat/webapps/sample
mkdir:无法创建目录“/usr/local/tomcat/webapps/sample”:权限被拒绝


问题在于PVC yaml文件中没有指定
storageClassName
。因此PV和PVC不能相互结合。请用以下文件替换PVC yaml文件:

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
   name: pvc-webapp6
spec:
   storageClassName: manual
   accessModes:
      - ReadWriteOnce
   resources:
      requests:
         storage: 3Gi
现在一切都应该正常了。希望这有帮助

我很快就用你的yaml部署了吊舱,在我这边一切正常:

[root@Master admin]# kubectl exec -it webapp6 bash
root@webapp6:/usr/local/tomcat#  mkdir /usr/local/tomcat/webapps/sample 
root@webapp6:/usr/local/tomcat# touch /usr/local/tomcat/webapps/sample/a
root@webapp6:/usr/local/tomcat# ls /usr/local/tomcat/webapps/sample/
a
现在,当我查看主机时,我可以看到新创建的
a
文件

[root@Master admin]# ls /opt/test_tomcat/app/sample/
a

因此,至少yaml文件工作正常。

实际上,我使用的是storageClassName:manual。我在这个问题上错了。我现在已经更新了。请你再详细说明一下。因为我可以在pod中的/usr/local/tomcat/webapps中写入,这些文件反映在/opt/test_tomcat/app中。当tomcat部署/opt/test_tomcat/app中的sample.war时,它需要使用应用程序部署创建sample目录。无法在/opt/test_tomcat/app目录中创建/部署示例应用程序。抱歉,我无法编辑我以前的评论:SI已编辑我的ans。YAML工作正常。我会再看看那里出了什么问题