我需要阻止我的 k8s pod 写入根文件夹,并免除 /tmp 目录。我需要写入此目录有两个原因:
我在 GKE 中运行 kubernetes 1.13.6-gke.13
yaml 文件中的相关部分:
securityContext:
runAsUser: 1000
readOnlyRootFilesystem: true
runAsNonRoot: true
Run Code Online (Sandbox Code Playgroud)
我希望 pod 能够写入预定义的文件夹,可能是一个已安装的文件夹。
小智 9
为 /tmp 目录创建卷挂载。
volumeMounts:
- mountPath: /tmp
name: tmp
Run Code Online (Sandbox Code Playgroud)
并在卷中 -
volumes:
- emptyDir: {}
name: tmp
Run Code Online (Sandbox Code Playgroud)
据我了解,您希望创建一个可以访问本地目录的 POD。您需要创建PV、PVC和POD。
光伏发电定义:
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"
Run Code Online (Sandbox Code Playgroud)
聚氯乙烯定义:
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: pvc-flaskapp
spec:
storageClassName: <your-storageclass-name>
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
Run Code Online (Sandbox Code Playgroud)
POD定义:
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
Run Code Online (Sandbox Code Playgroud)
现在您可以检查一切是否正常:
$ 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
Run Code Online (Sandbox Code Playgroud)
现在,当您查看主机时,您将看到新创建的文件:
[root@master user]# ls /opt/test_flask/app/sample/
testfile
Run Code Online (Sandbox Code Playgroud)
我希望它能帮助你。
| 归档时间: |
|
| 查看次数: |
2033 次 |
| 最近记录: |