无法在kubernetes中创建ReadWrite文件系统(ReadOnly装载)



摘要

我目前正在学习kubernetes,因此我决定从一个简单的应用程序(Mumble(开始。

设置

我的设置很简单,我有一个节点(主节点(,我已经在那里删除了污点,所以可以在上面部署mumble。这个节点运行的是centosStream,但SELinux被禁用。

问题

/srv/mumble目录似乎是ReadOnly,在这一点上,我已经尝试创建一个init容器来chown该目录,但由于上述问题而失败。这个问题出现在两个容器中,目前我不确定如何更改它,以允许mumble应用程序在所述目录中创建文件。喃喃自语应用程序用户以用户1000的身份运行。我在这里错过了什么?

Configs

---
apiVersion: v1
kind: Namespace
metadata:
name: mumble
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: mumble-pv-volume
labels:
type: local
spec:
storageClassName: manual
capacity:
storage: 10Gi
accessModes:
- ReadWriteMany
hostPath:
type: DirectoryOrCreate
path: "/var/lib/data"
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: mumble-pv-claim
namespace: mumble
spec:
storageClassName: manual
accessModes:
- ReadWriteMany
resources:
requests:
storage: 1Gi
---
apiVersion: v1
kind: ConfigMap
metadata:
name: mumble-config
namespace: mumble
data:
murmur.ini: |
**cut for brevity**
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: mumble-deployment
namespace: mumble
labels:
app: mumble
spec:
replicas: 1
selector:
matchLabels:
app: mumble
template:
metadata:
labels:
app: mumble
spec:
initContainers:
- name: storage-setup
image: busybox:latest
command: ["sh", "-c", "chown -R 1000:1000 /srv/mumble"]
securityContext:
privileged: true
runAsUser: 0
volumeMounts:
- mountPath: "/srv/mumble"
name: mumble-pv-storage
readOnly: false
- name: mumble-config
subPath: murmur.ini
mountPath: "/srv/mumble/config.ini"
readOnly: false
containers:
- name: mumble
image: phlak/mumble
ports:
- containerPort: 64738
env:
- name: TZ
value: "America/Denver"
volumeMounts:
- mountPath: "/srv/mumble"
name: mumble-pv-storage
readOnly: false
- name: mumble-config
subPath: murmur.ini
mountPath: "/srv/mumble/config.ini"
readOnly: false
volumes:
- name: mumble-pv-storage
persistentVolumeClaim:
claimName: mumble-pv-claim
- name: mumble-config
configMap:
name: mumble-config
items:
- key: murmur.ini
path: murmur.ini
---
apiVersion: v1
kind: Service
metadata:
name: mumble-service
spec:
selector:
app: mumble
ports:
- port: 64738

command: ["sh", "-c", "chown -R 1000:1000 /srv/mumble"]

不是以只读方式装载的卷,ConfigMap始终以只读方式安装。将命令更改为:

command: ["sh", "-c", "chown 1000:1000 /srv/mumble"]将起作用。

相关内容

最新更新