Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

33.2. POSIX 共享内存

POSIX 共享内存要求将 tmpfs 挂载于 /dev/shm。pod 中的容器不共享其挂载命名空间,因此我们使用卷将相同的 /dev/shm 提供给 pod 中的每个容器。以下示例演示了如何在两个容器之间设置 POSIX 共享内存。

shared-memory.yaml

---
apiVersion: v1
id: hello-openshift
kind: Pod
metadata:
  name: hello-openshift
  labels:
    name: hello-openshift
spec:
  volumes:                          1
    - name: dshm
      emptyDir:
        medium: Memory
  containers:
    - image: kubernetes/pause
      name: hello-container1
      ports:
        - containerPort: 8080
          hostPort: 6061
      volumeMounts:                 2
        - mountPath: /dev/shm
          name: dshm
    - image: kubernetes/pause
      name: hello-container2
      ports:
        - containerPort: 8081
          hostPort: 6062
      volumeMounts:                 3
        - mountPath: /dev/shm
          name: dshm

1
指定 tmpfs 卷 dshm
2
通过 dshmhello-container1 启用 POSIX 共享内存。
3
通过 dshmhello-container2 启用 POSIX 共享内存。

使用 shared-memory.yaml 文件创建 pod:

$ oc create -f shared-memory.yaml