本文介紹如何設定Memory類型的emptyDir Volume的sizeLimit,並將其掛載到/dev/shm,從而修改ECI Pod的shm大小,解決共用記憶體不夠用的問題。
功能情境
預設情況下,Kubernetes建立的Pod,其共用記憶體預設為64 MiB(即/dev/shm大小為64 MiB),且不支援更改。

Kubernetes沒有提供設定shm大小的途徑,您可以通過將Memory類型的emptyDir Volume掛載到/dev/shm的方式,解決共用記憶體不夠用的問題。
配置樣本
準備YAML檔案。
vim emptydir-shm.yamlemprydir-shm.yaml的內容樣本如下,樣本中通過設定EmptyDir Volume的medium為Memory,sizeLimit為256Mi,並將EmptyDir Volume掛載到
/dev/shm目錄,從而修改了Pod的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部署Deployment。
kubectl create -f emptydir-shm.yaml查看結果。
進入到容器內部執行
df -h命令查看磁碟空間,可以看到/dev/shm的大小已增加到256 MiB。