赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. ACK Serverless集群
  4. 操作指南
  5. 存储-CSI
  6. 挂载OSS

挂载OSS

  • 存储-CSI
  • 发布于 2025-04-18
  • 0 次阅读
文档编辑
文档编辑

OSS是阿里云提供的一个海量、安全、低成本、高可靠的存储空间,适合存储非结构化数据(例如图片、音视频等)。本文介绍如何在ACK Serverless集群中通过PVC的方式挂载OSS到ECI Pod上。

前提条件

已创建ACK Serverless集群。具体操作,请参见创建集群。

注意事项

  • OSS为共享存储,一个OSS可以挂载到多个Pod上。

  • 挂载目录中建议存放的文件数不要超过1000个。文件数量过多时,OSSFS会占用大量内存,可能会导致Pod发生OOM(Out Of Memory)事件。

操作步骤

  1. 获取OSS Bucket信息。

    如果您没有创建OSS Bucket,请先在OSS管理控制台创建OSS Bucket。具体操作,请参见创建存储空间。

    1. 登录OSS管理控制台,在左侧导航栏单击Bucket列表。

    2. 在Bucket列表页面,单击目标Bucket名称。

    3. 在Bucket详情页面,单击概览页签,然后在访问端口区域,复制目标Endpoint。

      • Bucket和集群属于相同地域时,请复制内网的Endpoint。

      • Bucket和集群属于不同地域时,请复制外网的Endpoint。

  2. 选择授权方式。

    • 方式一:(推荐)使用RAM角色授权。

      创建RAM角色并为该角色授权。创建时,选择可信实体类型为阿里云服务,角色类型为普通服务角色,受信服务为云服务器;为角色授权时,选择AliyunOSSFullAccess权限策略。具体操作,请参见创建可信实体为阿里云服务的RAM角色和为RAM角色授权。

    • 方式二:使用AccessKey直接授权。

      获取AccessKey ID和AccessKey Secret。具体操作,请参见获取AccessKey。

  3. 使用以下内容,创建test-ack-oss.yaml。

    说明

    本文示例以VPC内网环境为例,内网访问需确保实例、镜像仓库、OSS的Endpoint处于同一region(例如北京)。

    如果您需要跨Region挂载OSS或拉取镜像,则需要配置公网,同时将image地址或OSS URL更改为相应的公网访问格式,公网访问时需要修改如下代码中的image和url。

    • image:替换为registry.cn-beijing.aliyuncs.com/eci_open/nginx:1.14.2。

    • url:替换为外网访问的Endpoint。

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: test-ack-oss
      labels:
        alibabacloud.com/eci: "true"
    spec:
      replicas: 2
      selector:
        matchLabels:
          alibabacloud.com/eci: "true"
      template:
        metadata:
          labels:
            alibabacloud.com/eci: "true"
        spec:
          containers:
          - name: nginx
            image: registry-vpc.cn-beijing.aliyuncs.com/eci_open/nginx:1.14.2
            ports:
            - containerPort: 80
            volumeMounts:
              - name: cache-volume
                mountPath: /cache-test
          volumes:
            - name: cache-volume
              persistentVolumeClaim:
                claimName: oss-pvc
    ---
    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: oss-pvc
      namespace: test
    spec:
      storageClassName: test
      accessModes:
        - ReadWriteMany
      resources:
        requests:
          storage: 5Gi
      selector:
        matchLabels:
          alicloud-pvname: pv-oss
    ---
    apiVersion: v1
    kind: PersistentVolume
    metadata:
      name: oss-csi-pv
      labels:
        alicloud-pvname: pv-oss
    spec:
      storageClassName: test
      capacity:
        storage: 5Gi
      accessModes:
        - ReadWriteMany
      persistentVolumeReclaimPolicy: Retain
      csi:
        driver: ossplugin.csi.alibabacloud.com
        volumeHandle: oss-csi-pv
        volumeAttributes:
          bucket: "oss-test"
          url: "oss-cn-beijing-internal.aliyuncs.com"
          otherOpts: "-o max_stat_cache_size=0 -o allow_other"
          ramRole: "<your RAM Role Name>"

    上述示例采用RAM角色来授权。如需使用AccessKey直接授权,请将ramRole: "<your RAM Role Name>"替换为以下YAML:

          akId: "<your AccessKey ID>"
          akSecret: "<your AccessKey Secret>"
    说明

    若您需要跨账号挂载OSS,请配置跨账号的AK/SK。

    volumeAttributes中需配置OSS相关参数,参数说明如下:

    参数

    说明

    bucket

    OSS Bucket的名称。目前只支持挂载Bucket,不支持挂载Bucket下的子目录或者文件。

    url

    OSS的接入域名(Endpoint),由步骤1获取。

    • Bucket和集群属于相同地域时,请使用内网地址。

    • Bucket和集群属于不同地域时,请使用外网地址。

    otherOpts

    挂载OSS时支持输入定制化参数,格式为-o *** -o ***,例如:-o max_stat_cache_size=0 -o allow_other。

    ramRole

    使用RAM角色授权时,对应的RAM角色。

    akId

    使用AccessKey直接授权时,对应的AccessKey ID。

    akSecret

    使用AccessKey直接授权时,对应的AccessKey Secret。

  4. 执行以下命令,创建ECI Pod并挂载OSS。

    kubectl create -f test-ack-oss.yaml
  5. 执行以下命令,查看Pod。

    kubectl get pods -o wide

    预期输出:

    NAME                              READY   STATUS    RESTARTS   AGE     IP              NODE                           NOMINATED NODE   READINESS GATES
    test-ack-oss-655db9d64d-5q7d9     1/1     Running   0          46s     172.16.XX.XXX   virtual-kubelet-cn-****-k   <none>           <none>
    test-ack-oss-655db9d64d-m5vct     1/1     Running   0          46s     172.16.XX.XXX   virtual-kubelet-cn-****-k   <none>           <none>

    查看Pod中的文件目录,可以看到已生成OSS对应的挂载目录/cache-test,在第一个Pod中写入的文件可以在第二个Pod中查看,即两个Pod共享使用OSS存储。查看Pod

相关文档

如需了解OSS存储卷的更多信息,请参见OSS存储卷。

相关文章

存储CSI概述 2025-04-18 14:49

当您在ACK Serverless集群中运行工作负载时,您可能会有应用数据持久化存储、敏感和配置数据存储、存储资源动态供应等存储需求。ACK Serverless集群基于CSI插件实现了容器存储功能,借助阿里云存储服务提供并管理静态或动态存储卷资源。

安装与升级csi-provisioner组件 2025-04-18 14:49

csi-provisioner组件具备数据卷的自动创建能力,目前支持云盘存储卷创建能力。本文介绍在ACK Serverless集群中如何安装与升级csi-provisioner存储组件。 <

挂载OSS 2025-04-18 14:49

OSS是阿里云提供的一个海量、安全、低成本、高可靠的存储空间,适合存储非结构化数据(例如图片、音视频等)。本文介绍如何在ACK Serverless集群中通过PVC的方式挂载OSS到ECI Pod上。

云盘FAQ 2025-04-18 14:49

本文介绍在ACK Serverless集群中使用云盘存储卷时遇到的常见问题及处理方法。

云盘存储卷概述 2025-04-18 14:49

您可以在阿里云容器服务Kubernetes集群中使用阿里云云盘存储卷。目前,阿里云CSI插件支持通过PV/PVC方式挂载云盘,包括静态存储卷和动态存储卷。本文介绍了阿里云云盘存储卷的功能介绍、存储规格、适用场景、使用限制及计费说明。

使用云盘动态存储卷 2025-04-18 14:49

云盘是阿里云为云服务器ECS提供的数据块级别的块存储产品,具有低时延、高性能、持久性、高可靠等特点。ACK Serverless支持使用CSI插件创建云盘动态存储卷。本文介绍如何使用云盘动态存储卷,及如何验证云盘动态存储卷的持久化存储特性。 使用场景

目录
Copyright © 2025 your company All Rights Reserved. Powered by 赛尔网络.
京ICP备14022346号-15
gongan beian 京公网安备11010802041014号