Important
Azure Red Hat OpenShift 3.11 will be retired 30 June 2022. Support for creation of new Azure Red Hat OpenShift 3.11 clusters continues through 30 November 2020. Following retirement, remaining Azure Red Hat OpenShift 3.11 clusters will be shut down to prevent security vulnerabilities.
Follow this guide to create an Azure Red Hat OpenShift 4 cluster. If you have specific questions, please contact us
Overview
There are two types of shared memory objects in Linux: System V and POSIX.
The containers in a pod share the IPC namespace of the pod infrastructure container and so are able to share the System V shared memory objects.
This document describes how they can also share POSIX shared memory objects.
POSIX Shared Memory
POSIX shared memory requires that a tmpfs be mounted at /dev/shm.
The containers in a pod do not share their mount namespaces so we use volumes to provide the same /dev/shm into each container in a pod.
The following example shows how to set up POSIX shared memory between two containers.
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 |
specifies the tmpfs volume dshm . |
2 |
enables POSIX shared memory for hello-container1 via dshm . |
3 |
enables POSIX shared memory for hello-container2 via dshm . |
Create the pod using the shared-memory.yaml file:
$ oc create -f shared-memory.yaml