Kubernetes Pod未在本地路径上写入
我对集装箱和库伯内特是新手。 我要做的是创建一个可以访问本地目录的pod 我已按照以下指示行事: 创建了我的持久卷、持久卷声明和我的pod 问题是tomcat无法在共享目录上写入 这是永久卷: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
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/bashroot@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工作正常。我会再看看那里出了什么问题