在我的用例中,有两个Pod共享相同的音量。一个Pod将日志和特定于应用程序的数据写入卷安装,而另一个Pod从同一卷安装读取数据以进行后处理。以下示例并不能完全正确地说明设计,但是我试图证明'my-pv-claim
'是在两个吊舱之间共享的。
apiVersion: v1
kind: Pod
metadata:
name: main-pod-1
spec:
volumes:
- name: pod-1-storage
persistentVolumeClaim:
claimName: my-pv-claim
containers:
- name: pod-1-container
image: nginx
ports:
- containerPort: 80
name: "http-server"
volumeMounts:
- mountPath: "/usr/share/nginx/"
name: my-pod-1-storage
-
apiVersion: v1
kind: Pod
metadata:
name: post-processing-pod-2
spec:
volumes:
- name: pod-2-storage
persistentVolumeClaim:
claimName: my-pv-claim
containers:
- name: pod-2-container
image: nginx
ports:
- containerPort: 80
name: "http-server"
volumeMounts:
- mountPath: "/usr/share/nginx/"
name: my-pod-2-storage
支持SELinux标签的卷将重新标记为可以通过seLinuxOptions下指定的标签进行访问。这将设置为Pod中的所有容器以及卷指定的多类别安全(MCS)标签。
在我的示例中,如果我在Pod main-pod-1
的securityContext下使用以下SELinux标签,则在此pod中装入的卷(my-pv-claim
)也将获得相同的SELinux MCS标签,即{{1 }}
s0:c123,c456
所有具有相同标签的Pod均可访问该卷。但是,我正在寻找一种具有唯一Pod级标签和相同卷标的方法,以便仅共享卷安装(securityContext:
seLinuxOptions:
level: "s0:c123,c456"
)。
寻找一些指针。任何帮助,将不胜感激。谢谢。