计算
弹性云服务器 ECS
Flexus云服务
裸金属服务器 BMS
弹性伸缩 AS
镜像服务 IMS
专属主机 DeH
函数工作流 FunctionGraph
云手机服务器 CPH
Huawei Cloud EulerOS
网络
虚拟私有云 VPC
弹性公网IP EIP
虚拟专用网络 VPN
弹性负载均衡 ELB
NAT网关 NAT
云专线 DC
VPC终端节点 VPCEP
云连接 CC
企业路由器 ER
企业交换机 ESW
全球加速 GA
安全与合规
安全技术与应用
Web应用防火墙 WAF
企业主机安全 HSS
云防火墙 CFW
安全云脑 SecMaster
DDoS防护 AAD
数据加密服务 DEW
数据库安全服务 DBSS
云堡垒机 CBH
数据安全中心 DSC
云证书管理服务 CCM
边缘安全 EdgeSec
威胁检测服务 MTD
CDN与智能边缘
内容分发网络 CDN
CloudPond云服务
智能边缘云 IEC
迁移
主机迁移服务 SMS
对象存储迁移服务 OMS
云数据迁移 CDM
迁移中心 MGC
大数据
MapReduce服务 MRS
数据湖探索 DLI
表格存储服务 CloudTable
云搜索服务 CSS
数据接入服务 DIS
数据仓库服务 GaussDB(DWS)
数据治理中心 DataArts Studio
数据可视化 DLV
数据湖工厂 DLF
湖仓构建 LakeFormation
企业应用
云桌面 Workspace
应用与数据集成平台 ROMA Connect
云解析服务 DNS
专属云
专属计算集群 DCC
IoT物联网
IoT物联网
设备接入 IoTDA
智能边缘平台 IEF
用户服务
账号中心
费用中心
成本中心
资源中心
企业管理
工单管理
国际站常见问题
ICP备案
我的凭证
支持计划
客户运营能力
合作伙伴支持计划
专业服务
区块链
区块链服务 BCS
Web3节点引擎服务 NES
解决方案
SAP
高性能计算 HPC
视频
视频直播 Live
视频点播 VOD
媒体处理 MPC
实时音视频 SparkRTC
数字内容生产线 MetaStudio
存储
对象存储服务 OBS
云硬盘 EVS
云备份 CBR
存储容灾服务 SDRS
高性能弹性文件服务 SFS Turbo
弹性文件服务 SFS
云硬盘备份 VBS
云服务器备份 CSBS
数据快递服务 DES
专属分布式存储服务 DSS
容器
云容器引擎 CCE
容器镜像服务 SWR
应用服务网格 ASM
华为云UCS
云容器实例 CCI
管理与监管
云监控服务 CES
统一身份认证服务 IAM
资源编排服务 RFS
云审计服务 CTS
标签管理服务 TMS
云日志服务 LTS
配置审计 Config
资源访问管理 RAM
消息通知服务 SMN
应用运维管理 AOM
应用性能管理 APM
组织 Organizations
优化顾问 OA
IAM 身份中心
云运维中心 COC
资源治理中心 RGC
应用身份管理服务 OneAccess
数据库
云数据库 RDS
文档数据库服务 DDS
数据管理服务 DAS
数据复制服务 DRS
云数据库 GeminiDB
云数据库 GaussDB
分布式数据库中间件 DDM
数据库和应用迁移 UGO
云数据库 TaurusDB
人工智能
人脸识别服务 FRS
图引擎服务 GES
图像识别 Image
内容审核 Moderation
文字识别 OCR
AI开发平台ModelArts
图像搜索 ImageSearch
对话机器人服务 CBS
华为HiLens
视频智能分析服务 VIAS
语音交互服务 SIS
应用中间件
分布式缓存服务 DCS
API网关 APIG
微服务引擎 CSE
分布式消息服务Kafka版
分布式消息服务RabbitMQ版
分布式消息服务RocketMQ版
多活高可用服务 MAS
事件网格 EG
企业协同
华为云会议 Meeting
云通信
消息&短信 MSGSMS
云生态
合作伙伴中心
云商店
开发者工具
SDK开发指南
API签名指南
Terraform
华为云命令行工具服务 KooCLI
其他
产品价格详情
系统权限
管理控制台
客户关联华为云合作伙伴须知
消息中心
公共问题
开发与运维
应用管理与运维平台 ServiceStage
软件开发生产线 CodeArts
需求管理 CodeArts Req
部署 CodeArts Deploy
性能测试 CodeArts PerfTest
编译构建 CodeArts Build
流水线 CodeArts Pipeline
制品仓库 CodeArts Artifact
测试计划 CodeArts TestPlan
代码检查 CodeArts Check
代码托管 CodeArts Repo
云应用引擎 CAE
开天aPaaS
云消息服务 KooMessage
云手机服务 KooPhone
云空间服务 KooDrive
文档首页/ 云容器引擎 CCE/ 用户指南/ 存储/ 文件存储(SFS)/ 将容器应用从SFS 1.0迁移到通用文件系统(SFS 3.0)或SFS Turbo

将容器应用从SFS 1.0迁移到通用文件系统(SFS 3.0)或SFS Turbo

更新时间:2024-11-12 GMT+08:00

弹性文件服务(SFS)提供了SFS容量型(SFS 1.0)、通用文件系统(SFS 3.0)和SFS Turbo三种类型的文件系统,关于各类型文件系统的特点和优势请参见文件系统类型

历史版本中,CCE支持在工作负载中挂载SFS 1.0,建议迁移至通用文件系统(SFS 3.0)或SFS Turbo。

根据工作负载类型不同,应用可实现的存储挂载方式也不同。此处动态挂载和静态挂载是从工作负载挂载存储卷的方式进行区分的。

  • 动态挂载:仅有状态工作负载支持使用动态挂载,该功能通过volumeClaimTemplates字段实现,并依赖于StorageClass动态创建能力。有状态工作负载通过volumeClaimTemplates字段为每一个Pod关联了一个独有的PVC,而这个PVC又会和对应的PV绑定。因此当Pod被重新调度后,仍然能够根据该PVC名称挂载原有的数据。
  • 静态挂载:与动态挂载相对,即工作负载中通过volumes字段挂载存储卷,所有类型的工作负载均可通过该方法挂载存储。
须知:

将容器应用从SFS 1.0迁移到通用文件系统(SFS 3.0)或SFS Turbo的操作步骤一样,两者区别点仅限于:SFS Turbo不支持动态创建,有状态应用在使用SFS Turbo时会限制“动态挂载”的扩容能力。

约束与限制

  • 您需要提前将SFS 1.0中的数据迁移至通用文件系统(SFS 3.0)或SFS Turbo,操作步骤请参见SFS容量型文件系统迁移至其他文件系统,必要时请联系SFS服务的客服提供支撑。
  • SFS必须与集群在同一个VPC内。
  • 使用通用文件系统(SFS 3.0)时,您需要提前在集群所在VPC创建一个VPC终端节点,集群需要通过VPC终端节点访问通用文件系统。配置VPC终端节点的方法请参见配置VPC终端节点

静态挂载存储的迁移

静态挂载存储场景下,即工作负载中通过volumes字段挂载存储卷,所有类型的工作负载均可通过该方法挂载存储。使用该挂载方法的存储从SFS 1.0迁移到通用文件系统(SFS 3.0)或SFS Turbo的迁移操作步骤一致,本示例以SFS Turbo为例进行操作。

  1. 选择对应的CCE集群,进入“存储”界面,在“存储卷”页签下单击右上角“创建存储卷PV”

    设置以下关键参数。
    • 存储卷类型:选择“极速文件存储”
    • 极速文件存储:选择数据迁移后的极速文件存储卷。
    • PV名称:自定义PV名称。
    • 访问模式:选择“ReadWriteMany”
    • 回收策略:选择“Retain”

  2. PV创建完成后,在“存储卷声明”页签下单击右上角“创建存储卷声明”

    设置以下参数。

    • 存储卷声明类型:选择“极速文件存储”
    • PVC名称:自定义PVC名称,需与原SFS1.0 PVC名称不同。
    • 创建方式:选择“已有存储卷”
    • 关联存储卷:选择上一步中已创建的存储卷。

    PVC创建完成后,如下图所示。

  3. 在左侧导航栏中选择“工作负载”,找到目标工作负载,将工作负载实例数需要缩容到0。

  4. 单击工作负载“操作”栏中的“升级”按钮。在“容器配置”中,选择“数据存储”,添加“已有存储卷声明(PVC)”,使用2创建的PVC替换工作负载使用的存储卷声明。

    须知:

    迁移后,请保持容器内的挂载路径和子路径与之前挂载SFS1.0时一致。

  5. 替换完成后,可扩容工作负载实例数。

    确认无问题后,可清理CCE侧的SFS 1.0的存储卷。

有状态应用中的动态挂载存储的迁移

有状态应用中动态挂载的存储从SFS 1.0迁移到通用文件系统(SFS 3.0)或SFS Turbo时,请参考以下步骤进行操作。

须知:
  • “动态挂载”的自动扩容能力仅有状态应用支持。
  • 由于SFS Turbo不支持动态创建,因此SFS1.0在迁移至SFS Turbo后,该有状态应用不再支持“动态挂载”的自动扩容能力。
  1. 在集群控制台左侧导航栏中选择“工作负载”,切换至“有状态负载”页签,找到目标工作负载,记录缩容前的实例数,并将工作负载实例数需要缩容到0。

    说明:

    对每个实例使用的PVC均需要执行步骤2~6

  2. 查看有状态应用使用PVC的方式。

    kubectl get statefulset {statefulset-name} -n {namespace} -ojsonpath='{range .items[*]}{.spec.volumeClaimTemplates}{"\n"}{end}'
    • 如存在回显,表示使用“动态挂载”,则需继续执行3~7
    • 如不存在回显,表示未使用“动态挂载”,则无需执行以下步骤,请参考静态挂载存储的迁移

  3. 修改Pod所使用的PVC对应PV的persistentVolumeReclaimPolicy参数,从“Delete”修改为“Retain”,命令如下:

    kubectl edit pv {pv-name} -n {namespace}

    查看修改结果:

    kubectl get pv {pv-name} -n {namespace} -o yaml |grep persistentVolumeReclaimPolicy

    例如:

     # kubectl get pv pvc-29467e4a-0120-4698-a147-5b75f0ae9a43 -o yaml |grep persistentVolumeReclaimPolicy 
       persistentVolumeReclaimPolicy: Retain 

  4. 进入“存储”界面,在“存储卷”页签下记录SFS1.0 PV对应的PVC名称,并删除该PVC。此时该PV处于“已释放”状态。

  5. 单击右上角“创建存储卷PV”,并设置以下参数。

    • 存储卷类型:选择“极速文件存储”
    • 极速文件存储:选择数据迁移后的极速文件存储卷。
    • PV名称:自定义PV名称。
    • 访问模式:选择“ReadWriteMany”
    • 回收策略:选择“Retain”

  6. 进入“存储”界面,在“存储卷声明”页签下单击右上角“创建存储卷声明PVC”,创建与4中同名的PVC,并绑定上一步中新建的SFS Turbo PV。

  7. 所有实例对应的PVC均迁移后,将有状态应用扩容到原来的实例数。

    确认无问题后,可前往SFS控制台删除对应的SFS 1.0卷,并在CCE控制台中删除SFS 1.0对应的PV。

须知:
  • “动态挂载”的自动扩容能力仅有状态应用支持。
  • 如有状态应用从SFS 1.0迁移至通用文件系统(SFS 3.0),则该有状态应用支持自动扩容能力。

为了让有状态负载在完成SFS 1.0迁移至通用文件系统(SFS 3.0)后仍支持动态扩容,需将有状态应用中的volumeClaimTemplates使用的存储类从csi-nas修改为csi-sfs。由于使用动态挂载的有状态应用不支持修改volumeClaimTemplates,因此需要先删除有状态应用,然后重建,过程中需要确保配置与迁移前完全一致,包括实例数。

  1. 在左侧导航栏中选择“工作负载”,找到目标工作负载,记录缩容前的实例数,将工作负载实例数需要缩容到0。

    说明:

    对每个实例使用的PVC均需要执行步骤2~6

  2. 查看有状态应用使用PVC的方式。

    kubectl get statefulset {statefulset-name} -n {namespace} -ojsonpath='{range .items[*]}{.spec.volumeClaimTemplates}{"\n"}{end}'
    • 如存在回显,表示使用“动态挂载”,则需继续执行3~7
    • 如不存在回显,表示未使用“动态挂载”,则无需执行以下步骤,请参考静态挂载存储的迁移

  3. 修改SFS 1.0对应PV的persistentVolumeReclaimPolicy参数,从“Delete”修改为“Retain”,命令如下:

    kubectl edit pv {pv-name} -n {namespace}

    查看修改结果:

    kubectl get pv {pv-name} -n {namespace} -o yaml |grep persistentVolumeReclaimPolicy

    例如:

     # kubectl get pv pvc-29467e4a-0120-4698-a147-5b75f0ae9a43 -o yaml |grep persistentVolumeReclaimPolicy 
       persistentVolumeReclaimPolicy: Retain 

  4. 进入“存储”界面,在“存储卷”页签下记录SFS1.0 PV对应的PVC名称,并删除该PVC。此时该PV处于“已释放”状态。

  5. 单击右上角“创建存储卷PV”,并设置以下参数。

    • 存储卷类型:选择“文件存储”
    • 文件存储:选择数据迁移后的通用文件系统(SFS 3.0)存储卷。
    • PV名称:自定义PV名称。
    • 访问模式:选择“ReadWriteMany”
    • 回收策略:请按需设置。
      • Delete:删除动作会将PersistentVolume对象从Kubernetes中移除,同时也会从外部基础设施中移除所关联的存储资产。
      • Retain:当PersistentVolumeClaim对象被删除时,PersistentVolume卷仍然存在,对应的数据卷被视为“已释放(released)”。

  6. 进入“存储”界面,在“存储卷声明”页签下单击右上角“创建存储卷声明PVC”,创建同名的PVC,并绑定上一步中新建的通用文件系统(SFS 3.0) PV。

    • 存储卷声明类型:选择“文件存储”
    • PVC名称:修改为4中同名的PVC。
    • 创建方式:选择“已有存储卷”
    • 关联存储卷:选择上一步中已创建的存储卷。

  7. 前往“工作负载”页面,查看原来的有状态工作负载,单击“更多>编辑YAML”,单击“下载”或复制YAML文件的全部内容,在本地进行备份。
  8. 删除原来的有状态应用,并将上一步复制的工作负载YAML配置进行以下修改:

    • volumeClaimTemplates字段下的storageClassName: 'csi-nas'修改为'csi-sfs'。
    • 删除"resourceVersion"字段及其参数,因为该字段在创建时不可指定。

  9. 单击右上角的“YAML创建”,单击“导入”或粘贴修改后的YAML文件内容,并单击“创建”。
  10. 待工作负载创建完成后,将有状态应用扩容到原来的实例数。

    确认无问题后,可前往SFS控制台删除对应的SFS 1.0卷,并在CCE控制台中删除SFS 1.0对应的PV。

须知:
  • “动态挂载”的自动扩容能力仅有状态应用支持。
  • 由于SFS Turbo不支持动态创建,因此SFS1.0在迁移至SFS Turbo后,该有状态应用不再支持“动态挂载”的自动扩容能力。
  1. 在集群控制台左侧导航栏中选择“工作负载”,切换至“有状态负载”页签,找到目标工作负载,记录缩容前的实例数,并将工作负载实例数需要缩容到0。

    说明:

    对每个实例使用的PVC均需要执行步骤2~6

  2. 查看有状态应用使用PVC的方式。

    kubectl get statefulset {statefulset-name} -n {namespace} -ojsonpath='{range .items[*]}{.spec.volumeClaimTemplates}{"\n"}{end}'
    • 如存在回显,表示使用“动态挂载”,则需继续执行3~7
    • 如不存在回显,表示未使用“动态挂载”,则无需执行以下步骤,请参考静态挂载存储的迁移

  3. 修改Pod所使用的PVC对应PV的persistentVolumeReclaimPolicy参数,从“Delete”修改为“Retain”,命令如下:

    kubectl edit pv {pv-name} -n {namespace}

    查看修改结果:

    kubectl get pv {pv-name} -n {namespace} -o yaml |grep persistentVolumeReclaimPolicy

    例如:

     # kubectl get pv pvc-29467e4a-0120-4698-a147-5b75f0ae9a43 -o yaml |grep persistentVolumeReclaimPolicy 
       persistentVolumeReclaimPolicy: Retain 

  4. 进入“存储”界面,在“存储卷”页签下记录SFS1.0 PV对应的PVC名称,并删除该PVC。此时该PV处于“已释放”状态。

  5. 单击右上角“创建存储卷PV”,并设置以下参数。

    • 存储卷类型:选择“极速文件存储”
    • 极速文件存储:选择数据迁移后的极速文件存储卷。
    • PV名称:自定义PV名称。
    • 访问模式:选择“ReadWriteMany”
    • 回收策略:选择“Retain”

  6. 进入“存储”界面,在“存储卷声明”页签下单击右上角“创建存储卷声明PVC”,创建与4中同名的PVC,并绑定上一步中新建的SFS Turbo PV。

  7. 所有实例对应的PVC均迁移后,将有状态应用扩容到原来的实例数。

    确认无问题后,可前往SFS控制台删除对应的SFS 1.0卷,并在CCE控制台中删除SFS 1.0对应的PV。

须知:
  • “动态挂载”的自动扩容能力仅有状态应用支持。
  • 如有状态应用从SFS 1.0迁移至通用文件系统(SFS 3.0),则该有状态应用支持自动扩容能力。

为了让有状态负载在完成SFS 1.0迁移至通用文件系统(SFS 3.0)后仍支持动态扩容,需将有状态应用中的volumeClaimTemplates使用的存储类从csi-nas修改为csi-sfs。由于使用动态挂载的有状态应用不支持修改volumeClaimTemplates,因此需要先删除有状态应用,然后重建,过程中需要确保配置与迁移前完全一致,包括实例数。

  1. 在左侧导航栏中选择“工作负载”,找到目标工作负载,记录缩容前的实例数,将工作负载实例数需要缩容到0。

    说明:

    对每个实例使用的PVC均需要执行步骤2~6

  2. 查看有状态应用使用PVC的方式。

    kubectl get statefulset {statefulset-name} -n {namespace} -ojsonpath='{range .items[*]}{.spec.volumeClaimTemplates}{"\n"}{end}'
    • 如存在回显,表示使用“动态挂载”,则需继续执行3~7
    • 如不存在回显,表示未使用“动态挂载”,则无需执行以下步骤,请参考静态挂载存储的迁移

  3. 修改SFS 1.0对应PV的persistentVolumeReclaimPolicy参数,从“Delete”修改为“Retain”,命令如下:

    kubectl edit pv {pv-name} -n {namespace}

    查看修改结果:

    kubectl get pv {pv-name} -n {namespace} -o yaml |grep persistentVolumeReclaimPolicy

    例如:

     # kubectl get pv pvc-29467e4a-0120-4698-a147-5b75f0ae9a43 -o yaml |grep persistentVolumeReclaimPolicy 
       persistentVolumeReclaimPolicy: Retain 

  4. 进入“存储”界面,在“存储卷”页签下记录SFS1.0 PV对应的PVC名称,并删除该PVC。此时该PV处于“已释放”状态。

  5. 单击右上角“创建存储卷PV”,并设置以下参数。

    • 存储卷类型:选择“文件存储”
    • 文件存储:选择数据迁移后的通用文件系统(SFS 3.0)存储卷。
    • PV名称:自定义PV名称。
    • 访问模式:选择“ReadWriteMany”
    • 回收策略:请按需设置。
      • Delete:删除动作会将PersistentVolume对象从Kubernetes中移除,同时也会从外部基础设施中移除所关联的存储资产。
      • Retain:当PersistentVolumeClaim对象被删除时,PersistentVolume卷仍然存在,对应的数据卷被视为“已释放(released)”。

  6. 进入“存储”界面,在“存储卷声明”页签下单击右上角“创建存储卷声明PVC”,创建同名的PVC,并绑定上一步中新建的通用文件系统(SFS 3.0) PV。

    • 存储卷声明类型:选择“文件存储”
    • PVC名称:修改为4中同名的PVC。
    • 创建方式:选择“已有存储卷”
    • 关联存储卷:选择上一步中已创建的存储卷。

  7. 前往“工作负载”页面,查看原来的有状态工作负载,单击“更多>编辑YAML”,单击“下载”或复制YAML文件的全部内容,在本地进行备份。
  8. 删除原来的有状态应用,并将上一步复制的工作负载YAML配置进行以下修改:

    • volumeClaimTemplates字段下的storageClassName: 'csi-nas'修改为'csi-sfs'。
    • 删除"resourceVersion"字段及其参数,因为该字段在创建时不可指定。

  9. 单击右上角的“YAML创建”,单击“导入”或粘贴修改后的YAML文件内容,并单击“创建”。
  10. 待工作负载创建完成后,将有状态应用扩容到原来的实例数。

    确认无问题后,可前往SFS控制台删除对应的SFS 1.0卷,并在CCE控制台中删除SFS 1.0对应的PV。

我们使用cookie来确保您的高速浏览体验。继续浏览本站,即表示您同意我们使用cookie。 详情

文档反馈

文档反馈

意见反馈

0/500

标记内容

同时提交标记内容