容器实例支持挂载云硬盘

最近更新时间:2023-09-19 21:43:38

查看PDF

对于通过virtual-kubelet创建的容器实例,支持容器实例通过指定云硬盘ID或自动创建云硬盘这两种方式挂载云硬盘。

前提

注意事项

容器实例挂载云硬盘时,请注意以下事项:

  • 云硬盘为非共享存储,一个云硬盘只能挂载到一个容器实例。
  • 云硬盘只能挂载到相同可用区的容器实例,不支持跨可用区挂载。

指定云硬盘ID挂载

步骤1:创建云硬盘

1.登录云硬盘控制台

2.创建云硬盘并记录云盘ID。

注:如果您使用之前已有的云硬盘,请确保云硬盘所属的地域和可用区与将挂载此云硬盘的容器实例一致,且该云硬盘未进行分区格式化。

步骤2:将云硬盘挂载到容器实例

创建容器实例并挂载云硬盘,配置示例如下:

Flexvolume模式

apiVersion: v1
kind: Pod
metadata:
  name: nginx-ebs
  labels:
    app: nginx-ebs
  annotations:
    k8s.ksyun.com/kci-instance-cpu: "1"
    k8s.ksyun.com/kci-instance-memory: "1"
spec:
  volumes:
  - name: test
    flexVolume:
      driver: "ksc/ebs"   # 必填,值必须为 ksc/ebs
      fsType: "ext4"      # ext3,ext4,xfs,缺省为ext4   
      options:
        volumeId: 04821e2a-aaca-42f0-ab52-a089b4bc6239  # 云硬盘的Id
  containers:
    - name: nginx
      image: nginx:latest
      volumeMounts:
      - name: test
        mountPath: /test
  nodeName: rbkci-virtual-kubelet

CSI模式

apiVersion: v1
kind: Pod
metadata:
  name: nginx-ebs
  labels:
    app: nginx-ebs
  annotations:
    k8s.ksyun.com/kci-instance-cpu: "1"
    k8s.ksyun.com/kci-instance-memory: "1"
spec:
  volumes:
  - name: test
    csi:
      driver: "com.ksc.csi.diskplugin"   # 必填,CSI模式配置为com.ksc.csi.diskplugin,指定使用金山云Provsioner插件创建
      fsType: "ext4"      # ext3,ext4,xfs,缺省为ext4   
      options:
        volumeId: 04821e2a-aaca-42f0-ab52-a089b4bc6239  # 云硬盘的Id
  containers:
    - name: nginx
      image: nginx:latest
      volumeMounts:
      - name: test
        mountPath: /test
  nodeName: rbkci-virtual-kubelet

待Pod正常运行后,执行df -h -T命令查看盘的大小、挂载路径和文件系统类型均正确。

image20220826114754542.png

创建容器实例时自动新建云硬盘并挂载

创建容器实例,并配置云硬盘相关参数,配置示例如下:

Flexvolume模式

apiVersion: v1
kind: Pod
metadata:
  name: nginx-ebs
  labels:
    app: nginx-ebs
  annotations:
    k8s.ksyun.com/kci-instance-cpu: "1"
    k8s.ksyun.com/kci-instance-memory: "1"
spec:
  volumes:
  - name: test
    flexVolume:
      driver: "ksc/ebs"   # 必填,值必须为 ksc/ebs
      fsType: "ext4"      # ext3,ext4,xfs,缺省为ext4   
      options:
        type: SSD3.0      # 必填
        size: "30"        # 必填
        delWithInstance: "true"   # 缺省值为false
  containers:
    - name: nginx
      image: nginx:latest
      volumeMounts:
      - name: test
        mountPath: /test
  nodeName: rbkci-virtual-kubelet

CSI模式

apiVersion: v1
kind: Pod
metadata:
  name: nginx-ebs
  labels:
    app: nginx-ebs
  annotations:
    k8s.ksyun.com/kci-instance-cpu: "1"
    k8s.ksyun.com/kci-instance-memory: "1"
spec:
  volumes:
  - name: test
    csi:
      driver: "com.ksc.csi.diskplugin"   # 必填,CSI模式配置为com.ksc.csi.diskplugin,指定使用金山云Provsioner插件创建
      fsType: "ext4"      # ext3,ext4,xfs,缺省为ext4   
      options:
        type: SSD3.0      # 必填
        size: "30"        # 必填
        delWithInstance: "true"   # 缺省值为false
  containers:
    - name: nginx
      image: nginx:latest
      volumeMounts:
      - name: test
        mountPath: /test
  nodeName: rbkci-virtual-kubelet

options参数说明如下表所示:

名称 类型 示例值 是否必填 描述
volumeId String “f2c0c483-e5e7-4477-8245-05acbf97cc24” 已有云硬盘ID,该云盘需处于待挂载状态。
type String “SSD3.0” 新建云硬盘时,指定云硬盘类型,支持SSD3.0/EHDD。
size String “200” 新建云硬盘时,云硬盘大小,单位为GB。取值范围为[10,32000]。
snapshotId String “bae18ac5-3af3-40a5-a1c7-5282b35866ed” 新建云硬盘时,云硬盘快照ID,支持SSD3.0云硬盘和EHDD高效云盘。
delWithInstance String “true” 新建云硬盘时,配置云硬盘是否随pod删除而释放,缺省为false。

注:若flexvolume options中同时配置了 volumeId 和 其它云硬盘盘创建参数,则volumeId优先级高,会走指定云硬盘ID挂载流程,不会创建云硬盘。

待Pod正常运行后,执行df -h -T命令查看盘的大小、挂载路径和文件系统类型均正确。

image20220826164242973.png

云硬盘控制台

在云硬盘控制台,可以查看挂载到容器实例的云硬盘信息。

云硬盘控制台的列表页.png

在云硬盘的详情页,“挂载主机”显示容器实例的名称,“挂载设备”显示云硬盘的设备文件名。

云硬盘详情页无红框.png

文档内容是否对您有帮助?

根本没帮助
文档较差
文档一般
文档不错
文档很好

在文档使用中是否遇到以下问题

内容不全,不深入
内容更新不及时
描述不清晰,比较混乱
系统或功能太复杂,缺乏足够的引导
内容冗长

更多建议

0/200

评价建议不能为空

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

问题反馈