このトピックでは、ストレージメディアがメモリであるemptyDirボリュームのsizeLimitパラメーターを設定し、そのボリュームをポッドの /dev/shmディレクトリにマウントすることによって、ポッドのshmサイズを変更する方法について説明します。 これにより、ポッド内の共有メモリ不足の問題を解決できます。
シナリオ
Kubernetesで作成されたポッドの共有メモリ (shm) は、自動的にサイズが64 MiBに設定され、/dev/shmディレクトリにマウントされます。 サイズは変更できません。

Kubernetesは、shmのサイズを設定する方法を提供していません。 ポッドのshmをスケールアップする場合は、ストレージメディアがメモリであるemptyDirボリュームをポッドの /dev/shmディレクトリにマウントできます。
設定例
YAMLファイルを準備します。
vim emptydir-shm.yamlemprydir-shm.yamlファイルの例の内容を次のコードに示します。 この例では、emptyDirボリュームのmediumパラメーターはMemoryに設定され、sizeLimitパラメーターは256Miに設定され、emptyDirボリュームは
/dev/shmディレクトリにマウントされます。 このようにして、ポッドのshmサイズは256 MiBに増加します。apiVersion: apps/v1 kind: Deployment metadata: name: test labels: app: test spec: replicas: 1 selector: matchLabels: app: nginx template: metadata: name: nginx-test labels: app: nginx alibabacloud.com/eci: "true" spec: containers: - name: nginx image: registry.cn-shanghai.aliyuncs.com/eci_open/nginx:1.14.2 ports: - containerPort: 80 volumeMounts: - mountPath: /dev/shm name: cache-volume volumes: - emptyDir: medium: Memory sizeLimit: 256Mi name: cache-volumeデプロイを作成します。
kubectl create -f emptydir-shm.yaml結果を表示します。
コンテナーにログインし、
df -hコマンドを実行してディスク容量を表示します。/dev/shmディレクトリ内のディスクのサイズは、256 MiBにスケールアップされます。