在kubernetes中使用readOnlyRootFilesystem时如何免除目录?
我需要阻止我的k8s pod写入根文件夹,并对/tmp dir进行豁免。我需要写信给这个目录有两个原因:在kubernetes中使用readOnlyRootFilesystem时如何免除目录?,kubernetes,Kubernetes,我需要阻止我的k8s pod写入根文件夹,并对/tmp dir进行豁免。我需要写信给这个目录有两个原因: 我需要写信给某个地方。它正在尝试写入/tmp和/etc/。。。和/opt/,但是它们都被阻止了,因为它在根文件夹下 我需要为liveness probe写入一个文件,但是如果整个文件系统被阻塞,那么我就不能这样做 我在gke中运行kubernetes 1.13.6-gke.13 yaml文件中的相关部分: securityContext: runAsUser: 1000 readOn
securityContext:
runAsUser: 1000
readOnlyRootFilesystem: true
runAsNonRoot: true
我希望pod能够写入预定义的文件夹,可能是挂载的文件夹。据我所知,您希望创建一个能够访问本地目录的pod。您需要创建PV、PVC和POD PV定义:
kind: PersistentVolume
apiVersion: v1
metadata:
name: pv-flaskapp
labels:
type: local
spec:
storageClassName: <your-storageclass-name>
capacity:
storage: 3Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/opt/test_flask/app"
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: pvc-flaskapp
spec:
storageClassName: <your-storageclass-name>
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
apiVersion: v1
kind: Pod
metadata:
name: flaskapp
spec:
containers:
- image: flask:latest
name: flaskapp
ports:
- containerPort: 8080
name: flaskapp
volumeMounts:
- mountPath: /usr/local/flask/webapps
name: test-volume
volumes:
- name: test-volume
persistentVolumeClaim:
claimName: pvc-flask
现在,您可以检查是否一切正常:
$ kubectl exec -it flaskapp bash
root@flaskapp:/usr/local/flask# mkdir /usr/local/flask/webapps/sample
root@flaskapp:/usr/local/flask# touch /usr/local/flask/webapps/sample/testfile
root@flaskapp:/usr/local/flask# ls /usr/local/flask/webapps/sample/
testfile
现在,当您查看主机时,您将看到新创建的文件:
[root@master user]# ls /opt/test_flask/app/sample/
testfile
我希望它能帮助您。据我所知,您希望创建一个可以访问本地目录的POD。您需要创建PV、PVC和POD PV定义:
kind: PersistentVolume
apiVersion: v1
metadata:
name: pv-flaskapp
labels:
type: local
spec:
storageClassName: <your-storageclass-name>
capacity:
storage: 3Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/opt/test_flask/app"
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: pvc-flaskapp
spec:
storageClassName: <your-storageclass-name>
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
apiVersion: v1
kind: Pod
metadata:
name: flaskapp
spec:
containers:
- image: flask:latest
name: flaskapp
ports:
- containerPort: 8080
name: flaskapp
volumeMounts:
- mountPath: /usr/local/flask/webapps
name: test-volume
volumes:
- name: test-volume
persistentVolumeClaim:
claimName: pvc-flask
现在,您可以检查是否一切正常:
$ kubectl exec -it flaskapp bash
root@flaskapp:/usr/local/flask# mkdir /usr/local/flask/webapps/sample
root@flaskapp:/usr/local/flask# touch /usr/local/flask/webapps/sample/testfile
root@flaskapp:/usr/local/flask# ls /usr/local/flask/webapps/sample/
testfile
现在,当您查看主机时,您将看到新创建的文件:
[root@master user]# ls /opt/test_flask/app/sample/
testfile
我希望它能帮助您。为/tmp目录创建卷装载
volumeMounts:
- mountPath: /tmp
name: tmp
以卷计—
volumes:
- emptyDir: {}
name: tmp
为/tmp目录创建卷装载
volumeMounts:
- mountPath: /tmp
name: tmp
以卷计—
volumes:
- emptyDir: {}
name: tmp
请注意
emptyDir
使用Kubernetes节点上的存储,并有可能填满节点的OS磁盘。请注意emptyDir
使用Kubernetes节点上的存储,并有可能填满节点的OS磁盘。