详情页标题前

阿里云容器服务ACKNAS存储卷FAQ-云淘科技

详情页1

本文为您介绍NAS存储卷常见问题的处理方法。

  • 使用NAS存储卷时,提示chown: Operation not permitted

  • 使用NAS动态存储卷时,Controller的任务队列已满且无法创建新的PV

  • NAS存储卷挂载时间延长

  • 使用NAS存储卷时,无法修改已创建的目录

  • 当工作负载挂载NAS存储卷时,提示unknown filesystem type “xxx”

  • 读写文件时,提示NFS Stale File Handle

  • 当Pod使用两个PVC挂载NAS存储卷时,Pod一直处于ContainerCreating状态

  • 如何通过CSI使用TLS挂载NAS文件系统?

使用NAS存储卷时,提示chown: Operation not permitted

问题现象

使用NAS时,提示chown: Operation not permitted。

问题原因

您启动容器时使用的宿主机角色,没有修改NAS的权限。

解决方案

  1. 启动容器进程的用户无root权限,请使用root用户执行chown、chgrp操作。当PV的accessModesReadWriteOnce时,还支持使用securityContext.fsGroup为Pod配置卷访问权限和属主变更策略。具体操作,请参见为Pod配置卷访问权限和属主变更策略。

  2. 如果使用root用户操作依然报错,请检查确保NAS挂载点的权限组已使用所有用户不匿名(no_squash)。具体操作,请参见管理权限组。

使用NAS动态存储卷时,Controller的任务队列已满且无法创建新的PV

问题现象

使用NAS动态存储卷时,若创建子目录写入速度快于Controller删除子目录速度,将可能导致Controller的任务队列阻塞且无法创建新的PV。

问题原因

当集群使用动态NAS存储卷时,配置的StorageClass回收策略reclaimPolicy为Delete且archiveOnDelete为false。

解决方案

将archiveOnDelete配置为true,当删除PV时只是修改NAS文件系统中子目录的名称,而不是真正删除文件。

具体的文件删除操作需要您自行处理,例如:在某个节点过载根目录启动定时删除机制,或启动多个Pod并发删除某种格式的子目录。

NAS存储卷挂载时间延长

问题现象

NAS存储卷挂载时间延长。

问题原因

同时满足以下配置时,挂载的PV及PVC将执行chmod或chown,导致挂载时间延长。

  • 在PV及PVC模板中配置的参数AccessModes值为ReadWriteOnce。

  • 在应用模板中配置了securityContext.fsgroup参数。

解决方案

  • 若应用模板中配置了securityContext.fsgroup参数,请删除securityContext下的fsgroup参数。

  • 若需要将挂载目录内文件变成期望的UID和mode,可以手动将目标目录挂载到一台ECS。关于ECS实例挂载文件系统,请参见通过控制台实现ECS实例一键挂载文件系统。再通过命令行执行chownchmod,完成后通过CSI使用NAS存储卷。关于如何通过CSI使用NAS存储卷,请参见使用NAS静态存储卷或使用NAS动态存储卷。

  • 对于1.20及之后版本的Kubernetes集群,除了上述两种解决方法外,也可通过将fsGroupChangePolicy配置为OnRootMismatch,这时只有在首次启动时才会执行chmodchown操作,导致存在挂载时间延长的问题,后续挂载OSS存储卷时挂载时间将恢复正常。关于fsGroupChangePolicy参数的更多信息,请参见为Pod或容器配置安全性上下文。

使用NAS存储卷时,无法修改已创建的目录

问题现象

使用NAS存储卷时,无法修改已创建的目录。

问题原因

非root用户无权写入PV,不允许修改已创建的目录权限。

解决方案

您可以通过以下两种方式,使用命令chmodchown挂载目录权限后进行修改。

  • 使用root权限启动Init Container挂载PV,使用命令chmodchown挂载目录权限,进行修改。

  • 通过将fsGroupChangePolicy配置为OnRootMismatch,在首次启动时会执行chmodchown挂载目录权限,进行修改。

当工作负载挂载NAS存储卷时,提示unknown filesystem type “xxx”

问题现象

当工作负载挂载NAS存储卷时,提示unknown filesystem type “xxx”。

问题原因

当前工作负载调度的节点未安装对应存储的依赖资源。

解决方案

检查存储卷相关配置是否正确。

  • 关于NAS存储卷配置,请参见使用CNFS管理NAS共享存储卷(推荐)。

  • 关于CPFS相关配置,请参见CPFS2.0静态卷。

  • 关于OSS相关配置,请参见使用OSS静态存储卷。

读写文件时,提示NFS Stale File Handle

问题现象

客户端读写文件时,提示NFS Stale File Handle。

问题原因

容器挂载使用NAS存储卷时,NAS不会保证数据一致性。两个客户端挂载同一个NAS,客户端1打开文件获取文件的fd,若客户端2删除了当前文件,客户端1在读写文件时,会提示NFS Stale File Handle。

解决方案

NAS不会保证数据一致性,您需要根据业务场景自行解决数据一致性问题。

当Pod使用两个PVC挂载NAS存储卷时,Pod一直处于ContainerCreating状态

问题现象

当Pod使用两个PVC挂载NAS存储卷时,Pod无法正常启动,一直处于ContainerCreating状态。但使用其中任意一个PVC挂载时,可挂载成功。

问题原因

两个PVC关联的PV声明了同样的spec.csi.volumeHandle,导致Kubelet在处理PV挂载逻辑时,始终将两个PV当成同一个对待。

解决方案

您需要修改spec.csi.volumeHandle字段的值,使其和对应的PV Name保持一致。

如何通过CSI使用TLS挂载NAS文件系统?

NAS支持通过TLS协议保护客户端与NAS服务之间网络传输链路上的数据安全,确保数据在传输过程中不被窃取或篡改。CSI支持通过配置挂载协议为alinas来使用阿里云NAS客户端挂载存储卷,开启TLS挂载选项。

注意事项

  • NAS客户端工具使用Stunnel监听进程进行TLS加密代理。对于吞吐密集性应用,Stunnel监听进程会消耗大量CPU执行加解密操作。在极端情况下,每个挂载会占用一整个核。

  • NAS客户端传输加密功能依赖第三方证书,第三方证书需要定期更换。NAS会提前一个月通过邮件、站内信发出通知,请您关注信息并及时更新NAS客户端工具aliyun-alinas-utils版本,未更新NAS客户端工具将导致使用传输加密方式挂载的NAS文件系统在证书过期后停止响应。下一次证书到期时间为2028年。更多信息,请参见NFS文件系统传输加密。

使用方法

  1. 在集群各个节点上安装NAS客户端。具体操作,请参见下载与安装NAS客户端。

  2. 参考以下示例,进行NAS动态卷和NAS静态卷的挂载。

    使用NAS动态卷示例

    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: alicloud-nas-tls
    mountOptions:
    - nolock,tcp,noresvport
    - vers=3
    - tls   # 增加tls mount option。
    parameters:
      volumeAs: subpath
      server: "0cd8b4a576-g****.cn-hangzhou.nas.aliyuncs.com:/k8s/"
      mountProtocol: alinas  # 声明使用alinas客户端进行挂载。
    provisioner: nasplugin.csi.alibabacloud.com
    reclaimPolicy: Retain
    ---
    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      name: nas-tls
    spec:
      accessModes:
        - ReadWriteMany
      storageClassName: alicloud-nas-tls
      resources:
        requests:
          storage: 20Gi

    参数

    说明

    parameters.mountProtocol

    设置为alinas,表示使用阿里云NAS客户端挂载;默认为空,表示使用nfs协议挂载。

    mountOptions

    增加参数tls表示开启TLS,此参数必须在mountProtocolalinas时使用,默认不开启。

    使用NAS静态卷示例

    apiVersion: v1
    kind: PersistentVolume
    metadata:
      name: pv-nas-tls
      labels:
        alicloud-pvname: pv-nas-tls
    spec:
      capacity:
        storage: 5Gi
      accessModes:
        - ReadWriteMany
      csi:
        driver: nasplugin.csi.alibabacloud.com
        volumeHandle: pv-nas   # 必须与PV Name保持一致。
        volumeAttributes:
          server: "2564f4****-ysu87.cn-shenzhen.nas.aliyuncs.com"
          path: "/csi"
          mountProtocol: alinas # 声明使用alinas客户端进行挂载。
      mountOptions:
      - nolock,tcp,noresvport
      - vers=3
      - tls # 增加 tls mount option
    ---
    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      name: pvc-nas-tls
    spec:
      accessModes:
        - ReadWriteMany
      resources:
        requests:
          storage: 5Gi
      selector:
        matchLabels:
          alicloud-pvname: pv-nas-tls

    参数

    说明

    spec.csi.volumeAttributes.mountProtocol

    设置为alinas,表示使用阿里云NAS客户端挂载;默认为空,表示使用nfs协议挂载。

    spec.mountOptions

    增加参数tls表示开启TLS,此参数必须在mountProtocolalinas时使用,默认不开启。

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家

阿里云企业补贴进行中: 马上申请

腾讯云限时活动1折起,即将结束: 马上收藏

同尘科技为腾讯云授权服务中心。

购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠

转转请注明出处:https://www.yunxiaoer.com/171606.html

(0)
上一篇 2023年12月10日
下一篇 2023年12月10日
详情页2

相关推荐

  • 腾讯云高性能计算平台存储选项填写说明-云小二

    背景说明 THPC在使用创建集群(CreateCluster)或者添加集群存储选项(AddClusterStorageOption)接口时,需要使用到存储选项(StorageOption)参数。本文主要介绍不同的存储产品如何填写接口的存储选项(StorageOption)参数以使用集群存储挂载功能。 CFS 文件系统参数 CFS 的通用标准型对应 Stora…

    2023年12月9日
  • 腾讯云云直播Web 端本地混流

    Web 推流 SDK TXLivePusher 提供了对视频流画面的处理功能,包括多路视频流的混合(画中画)、画面效果的处理(镜像、滤镜)和其他元素的添加(水印、文本)。基本步骤是 SDK 首先采集多路流,然后对多路流进行本地混流处理,对画面进行合并,声音进行混合,最后再进行其他效果处理。这些都依赖于浏览器本身功能的支持,因此会有一定的浏览器性能开销。具体的…

    腾讯云 2023年12月9日
  • 腾讯云对象存储图片处理任务接口

    简介 本文档提供关于图片处理任务接口的 API 概览和 SDK 示例代码。 API 操作描述 提交图片处理任务 提交图片处理任务 查询任务结果 查询指定的任务 提交图片处理任务 功能说明 提交一个图片处理任务。 方法原型 public Guzzle\Service\Resource\Model createMediaPicProcessJobs(ar…

    腾讯云 2023年12月9日
  • 腾讯云对象存储函数计算

    COS 是否支持设置 CDN 自动刷新? 可以通过 云函数(Serverless Cloud Function,SCF) 设置自动刷新,详情请参见 设置 CDN 缓存刷新。 可以把云数据库的数据备份到 COS 吗? 可以通过 云函数(Serverless Cloud Function,SCF) 设置数据库备份功能。当用户在指定存储桶中配置了备份函数规则后,云…

    腾讯云 2023年12月9日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 腾讯云对象存储生成预签名 URL

    简介 本文档提供关于生成对象预签名链接的示例代码。关于使用预签名 URL 上传的说明请参见 预签名授权上传, 使用预签名 URL 下载的说明请参见 预签名授权下载。说明建议用户使用临时密钥生成预签名,通过临时授权的方式进一步提高预签名上传、下载等请求的安全性。申请临时密钥时,请遵循 最小权限指引原则,防止泄露目标存储桶或对象之外的资源。如果您一定要使用永久密…

    腾讯云 2023年12月9日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。