首页 弹性容器实例 ACK和ASK用户使用ECI指南 存储 挂载EmptyDir Volume实现修改shm大小

挂载EmptyDir Volume实现修改shm大小

本文介绍如何设置memory类型的EmptyDir Volume的sizeLimit,并将其挂载/dev/shm,实现修改Pod的shm大小。

操作场景

默认情况下,Kubernetes创建的Pod,其共享内存默认为64 MiB(即/dev/shm大小为64 MiB),且不支持更改。

修改shm1

Kubernetes没有提供设置shm大小的途径,您可以通过将memory类型的emptyDir Volume挂载到/dev/shm的方式,解决共享内存不够用的问题。

配置示例

  1. 准备YAML文件。

    vim emprydir-shm.yaml

    emprydir-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
  2. 部署Deployment。

    kubectl create -f emprydir-shm.yaml
  3. 查看结果。

    进入到容器内部执行df-h命令查看磁盘空间,可以看到/dev/shm的大小已增加到256 MiB。

    修改shm

阿里云首页 弹性容器实例 相关技术圈