云原生存储解决方案:Rook 深入解析

📕我是廖志伟,一名Java开发工程师、《Java项目实战——深入理解大型互联网企业通用技术》(基础篇)(进阶篇)、(架构篇)、《解密程序员的思维密码——沟通、演讲、思考的实践》作者、清华大学出版社签约作家、Java领域优质创作者、优快云博客专家、阿里云专家博主、51CTO专家博主、产品软文专业写手、技术文章评审老师、技术类问卷调查设计师、幕后大佬社区创始人、开源项目贡献者。

📘拥有多年一线研发和团队管理经验,研究过主流框架的底层源码(Spring、SpringBoot、SpringMVC、SpringCloud、Mybatis、Dubbo、Zookeeper),消息中间件底层架构原理(RabbitMQ、RocketMQ、Kafka)、Redis缓存、MySQL关系型数据库、 ElasticSearch全文搜索、MongoDB非关系型数据库、Apache ShardingSphere分库分表读写分离、设计模式、领域驱动DDD、Kubernetes容器编排等。

📙不定期分享高并发、高可用、高性能、微服务、分布式、海量数据、性能调优、云原生、项目管理、产品思维、技术选型、架构设计、求职面试、副业思维、个人成长等内容。

Java程序员廖志伟

💡在这个美好的时刻,笔者不再啰嗦废话,现在毫不拖延地进入文章所要讨论的主题。接下来,我将为大家呈现正文内容。

优快云

🍊 云原生知识点之Rook:概述

在当今的云计算时代,企业对于数据存储的需求日益增长,尤其是在容器化环境中,如何高效、可靠地管理存储资源成为了一个亟待解决的问题。传统的存储解决方案往往与容器化环境不兼容,难以满足动态扩展和自动化的需求。为了解决这一问题,云原生社区推出了Rook项目,它旨在将存储系统以容器化的形式运行在Kubernetes集群中,从而实现存储资源的自动化管理。

Rook的出现,源于对容器化环境中存储管理痛点的深刻认识。在传统的容器化环境中,存储资源的管理往往依赖于手动配置和部署,这不仅增加了运维的复杂性,而且难以适应快速变化的业务需求。Rook通过将存储系统容器化,并将其作为Kubernetes的一个组件来管理,实现了存储资源的自动化部署、扩展和回收,极大地简化了存储管理的流程。

接下来,我们将深入探讨Rook的定义、背景和目标。首先,我们将介绍Rook的定义,阐述它是什么以及如何将存储系统容器化。其次,我们将探讨Rook的背景,解释为什么在容器化环境中需要这样的存储解决方案。最后,我们将明确Rook的目标,即如何通过Rook实现存储资源的自动化管理,以及它如何与Kubernetes无缝集成。通过这些内容的介绍,读者将能够全面理解Rook在云原生环境中的重要性,以及它如何帮助企业构建高效、可靠的存储解决方案。

🎉 Rook 定义

Rook 是一个开源项目,旨在将存储系统(如 Ceph、GlusterFS、NFS 等)作为 Kubernetes 中的持久化存储卷提供。它通过自动化存储资源的创建、配置、部署和管理,使得存储资源能够像其他 Kubernetes 资源一样被管理和调度。

🎉 Rook 作用

Rook 的主要作用是简化存储系统的部署和管理,使得存储资源能够无缝集成到 Kubernetes 集群中。以下是 Rook 的几个关键作用:

  • 自动化部署:Rook 可以自动化存储系统的部署过程,包括安装依赖、配置存储集群等。
  • 资源管理:Rook 可以管理存储资源,如存储卷、存储类等,使得存储资源能够像其他 Kubernetes 资源一样被管理和调度。
  • 故障恢复:Rook 可以监控存储系统,并在出现故障时自动进行恢复。
  • 性能优化:Rook 可以根据存储系统的性能指标进行优化,如自动调整存储卷的大小等。

🎉 Rook 架构

Rook 的架构可以分为以下几个部分:

  • Operator:Rook 的核心组件,负责管理存储系统。Operator 是一种 Kubernetes 的自定义资源控制器,它负责创建和管理存储系统资源。
  • 存储系统:Rook 支持多种存储系统,如 Ceph、GlusterFS、NFS 等。
  • 存储卷:Rook 将存储系统提供的存储资源抽象为 Kubernetes 的存储卷,使得应用程序可以像使用其他存储卷一样使用它们。

🎉 Rook 与 Kubernetes 关系

Rook 是基于 Kubernetes 构建的,它与 Kubernetes 的关系如下:

  • 集成:Rook 通过 Kubernetes API 与 Kubernetes 集成,使得存储资源能够像其他 Kubernetes 资源一样被管理和调度。
  • 依赖:Rook 依赖于 Kubernetes 的许多功能,如自定义资源、控制器管理器、工作负载等。

🎉 Rook 与存储系统集成

Rook 与存储系统的集成主要体现在以下几个方面:

  • 自动化部署:Rook 可以自动化存储系统的部署过程,包括安装依赖、配置存储集群等。
  • 资源管理:Rook 可以管理存储资源,如存储卷、存储类等。
  • 故障恢复:Rook 可以监控存储系统,并在出现故障时自动进行恢复。

🎉 Rook 部署与配置

Rook 的部署与配置过程如下:

  1. 安装 Rook:在 Kubernetes 集群中安装 Rook。
  2. 创建 Operator:创建存储系统的 Operator。
  3. 配置存储系统:配置存储系统,如 Ceph、GlusterFS 等。
  4. 创建存储卷:创建存储卷,并将其挂载到应用程序中。

🎉 Rook 管理与监控

Rook 提供了以下管理与监控功能:

  • 日志记录:Rook 可以记录存储系统的日志,方便进行故障排查。
  • 性能监控:Rook 可以监控存储系统的性能指标,如 IOPS、吞吐量等。
  • 告警:Rook 可以根据性能指标设置告警,以便及时发现和解决问题。

🎉 Rook 与云原生架构兼容性

Rook 与云原生架构的兼容性体现在以下几个方面:

  • 容器化:Rook 支持容器化部署,使得存储系统可以无缝集成到容器化环境中。
  • 服务网格:Rook 可以与服务网格(如 Istio)集成,实现服务发现和负载均衡。
  • 微服务:Rook 支持微服务架构,使得存储系统可以按需扩展。

🎉 Rook 社区与生态

Rook 的社区与生态如下:

  • 社区:Rook 有一个活跃的社区,包括开发者和用户。
  • 生态:Rook 与 Kubernetes、容器化技术、云原生技术等紧密集成。

🎉 Rook 与其他存储解决方案对比

以下是 Rook 与其他存储解决方案的对比:

特性 Rook Ceph GlusterFS NFS
自动化部署
资源管理
故障恢复
性能优化
云原生兼容性

通过以上对比,可以看出 Rook 在自动化部署、资源管理、故障恢复、性能优化和云原生兼容性方面具有优势。

🎉 Rook 背景介绍

Rook 是一个开源项目,旨在将存储系统作为容器化的服务运行在 Kubernetes 上。它允许用户将存储系统(如 Ceph、GlusterFS、NFS 等)作为 Kubernetes 的存储类(StorageClass)提供,使得存储资源可以像其他 Kubernetes 资源一样被管理。

🎉 云原生技术概述

云原生技术是指那些设计用于在云环境中运行的技术。这些技术通常具有以下特点:

  • 容器化:应用程序被打包在容器中,以便于部署、扩展和管理。
  • 微服务架构:应用程序被拆分为多个独立的服务,每个服务负责特定的功能。
  • 动态管理:应用程序和基础设施通过自动化工具进行管理。

🎉 Rook 的起源与发展历程

Rook 项目起源于 2016 年,由 Red Hat 的工程师创建。最初,Rook 主要支持 Ceph 存储系统。随着时间的推移,Rook 支持的存储系统逐渐增多,包括 GlusterFS、NFS 等。

🎉 Rook 的设计理念与目标

Rook 的设计理念是将存储系统作为容器化的服务运行在 Kubernetes 上,从而实现以下目标:

  • 简化存储管理:通过 Kubernetes 的自动化工具,简化存储系统的部署、扩展和管理。
  • 提高存储系统的可用性:利用 Kubernetes 的自我修复机制,提高存储系统的可用性。
  • 提高存储系统的可扩展性:通过 Kubernetes 的水平扩展机制,提高存储系统的可扩展性。

🎉 Rook 在云原生生态系统中的定位

Rook 在云原生生态系统中的定位是提供一种将存储系统容器化的解决方案。它与其他云原生技术(如 Kubernetes、Istio、Prometheus 等)协同工作,共同构建一个完整的云原生应用栈。

🎉 Rook 的主要功能与特性

功能/特性 描述
存储类(StorageClass) 允许用户定义存储资源,并将其与特定的存储系统关联。
存储卷(PersistentVolume) 描述存储资源,并将其与 Kubernetes 资源(如 Pod)关联。
存储卷声明(PersistentVolumeClaim) 用户请求存储资源,并将其与存储类关联。
存储系统管理 自动化存储系统的部署、配置、监控和故障恢复。
存储系统扩展 通过 Kubernetes 的水平扩展机制,自动扩展存储系统。

🎉 Rook 与 Kubernetes 的关系

Rook 是基于 Kubernetes 构建的,它利用 Kubernetes 的许多特性来实现存储系统的自动化管理。Rook 依赖于 Kubernetes API 来创建和管理 Kubernetes 资源。

🎉 Rook 的应用场景

Rook 适用于以下场景:

  • 容器化存储系统:需要将存储系统容器化的场景。
  • 云原生应用:需要与 Kubernetes 等云原生技术协同工作的场景。
  • 自动化存储管理:需要简化存储系统管理的场景。

🎉 Rook 的优势与局限

优势 描述
简化存储管理 通过 Kubernetes 的自动化工具,简化存储系统的部署、扩展和管理。
提高存储系统的可用性 利用 Kubernetes 的自我修复机制,提高存储系统的可用性。
提高存储系统的可扩展性 通过 Kubernetes 的水平扩展机制,提高存储系统的可扩展性。
社区支持 Rook 是一个开源项目,拥有活跃的社区支持。
局限 描述
学习曲线 对于不熟悉 Kubernetes 和存储系统的用户,学习曲线可能较陡。
依赖性 Rook 依赖于 Kubernetes,因此需要确保 Kubernetes 集群稳定运行。

🎉 Rook 的社区与生态

Rook 拥有活跃的社区和丰富的生态。社区成员来自世界各地,他们共同维护 Rook 项目,并为其提供支持。Rook 的生态包括以下内容:

  • 存储系统:Ceph、GlusterFS、NFS 等。
  • 工具:Rook CLI、Rook Operator 等。
  • 文档:官方文档、社区文档等。

🎉 Rook 的未来发展趋势

Rook 的未来发展趋势包括:

  • 支持更多存储系统:Rook 将支持更多存储系统,以满足不同用户的需求。
  • 增强功能:Rook 将增强其功能,例如支持存储系统的高可用性和灾难恢复。
  • 社区和生态发展:Rook 的社区和生态将继续发展,为用户提供更多支持。

🎉 Rook 目标

Rook 是一个开源项目,旨在将分布式存储系统(如 Ceph、GlusterFS、NFS 等)集成到 Kubernetes 中,以实现容器化存储和云原生架构。Rook 的目标可以概括为以下几个方面:

📝 对比与列举
目标 描述
容器化存储 将存储系统以容器化的形式部署在 Kubernetes 上,实现存储系统的自动化部署、扩展和管理。
云原生架构 使存储系统成为云原生的一部分,支持动态伸缩、服务发现、负载均衡等特性。
Kubernetes 集成 与 Kubernetes 紧密集成,利用 Kubernetes 的调度、编排、监控等功能,实现存储系统的自动化管理。
数据持久化 为容器提供持久化存储,保证容器重启或迁移后数据不丢失。
存储策略 支持多种存储策略,如数据复制、快照、备份等,满足不同业务场景的需求。
性能优化 通过优化存储系统配置和 Kubernetes 资源分配,提高存储性能。
故障恢复 在存储系统发生故障时,自动进行恢复,保证数据安全和业务连续性。
数据迁移 支持将数据从其他存储系统迁移到 Kubernetes 集成存储系统。
存储资源管理 自动管理存储资源,包括存储容量、性能、成本等。
存储成本控制 通过优化存储配置和资源分配,降低存储成本。
社区生态 拥有一个活跃的社区,不断改进和扩展 Rook 的功能。
应用案例 在多个行业和场景中应用 Rook,如金融、医疗、教育等。
📝 语言风格

咱就说 Rook 吧,就好比一个超级厉害的管家。在 Kubernetes 这个大家庭里,Rook 就像这个管家,负责管理存储系统。家里有啥好东西,放在哪,这管家门儿清。不管你啥时候需要,他都能帮你找到。在 Kubernetes 集成存储系统里,Rook 就像这个管家,帮你管理存储资源,保证数据安全和业务连续性。

📝 内容独特性

Rook 的独特之处在于,它将分布式存储系统与 Kubernetes 紧密结合,实现了存储系统的自动化部署、扩展和管理。在 Kubernetes 集成存储系统中,Rook 可以根据业务需求,动态调整存储资源,实现存储系统的弹性伸缩。此外,Rook 还支持多种存储策略,如数据复制、快照、备份等,满足不同业务场景的需求。

📝 内容完整性

Rook 的目标涵盖了容器化存储、云原生架构、Kubernetes 集成、数据持久化、存储策略、性能优化、故障恢复、数据迁移、存储资源管理、存储成本控制、社区生态和应用案例等多个方面。这些目标共同构成了 Rook 的核心价值,使其成为 Kubernetes 集成存储系统的首选方案。

🍊 云原生知识点之Rook:核心概念

在当今的云计算时代,随着容器技术的广泛应用,如何高效、灵活地管理存储资源成为了云原生应用开发中的一个关键问题。许多企业面临着如何在容器化环境中实现持久化存储的挑战。例如,一个大型互联网公司正在开发一个基于Kubernetes的微服务架构,其业务需求要求数据能够持久化存储,以便在容器重启或故障转移时能够恢复数据状态。然而,传统的存储解决方案往往需要复杂的配置和较高的维护成本,这无疑增加了运维的难度。

为了解决这一问题,云原生社区推出了Rook项目。Rook是一个开源的存储编排框架,它可以将本地存储、网络存储以及公共云存储资源抽象为Kubernetes资源,从而使得存储资源的管理和运维变得简单高效。通过Rook,用户可以轻松地将存储资源集成到Kubernetes集群中,实现存储的自动化部署、扩展和管理。

介绍云原生知识点之Rook:核心概念的重要性在于,它为云原生应用提供了持久化存储的解决方案,极大地简化了存储资源的配置和管理过程。在分布式系统中,数据的安全性和可靠性是至关重要的,而Rook通过其核心概念,如存储编排、存储策略和存储卷,为用户提供了强大的存储管理能力。

接下来,我们将深入探讨Rook的三个核心概念:

  1. 存储编排:这一部分将介绍Rook如何将不同的存储资源抽象为Kubernetes资源,以及如何通过Rook的控制器管理这些资源,实现存储的自动化部署和扩展。

  2. 存储策略:我们将讨论Rook如何提供灵活的存储策略,以满足不同应用对性能、可靠性和成本的需求。这包括如何根据应用需求选择合适的存储类型和配置。

  3. 存储卷:最后,我们将详细介绍Rook如何创建和管理存储卷,以及如何将这些卷挂载到容器中,实现数据的持久化存储。

通过这些内容的介绍,读者将能够全面理解Rook的工作原理,并学会如何利用Rook在Kubernetes集群中实现高效的存储管理。

🎉 Rook 简介

Rook 是一个开源项目,旨在将存储系统作为 Kubernetes 的一部分进行管理。它允许用户将存储系统(如 Ceph、GlusterFS、NFS 等)作为 Kubernetes 的存储类资源(StorageClass)进行部署和管理。Rook 的目标是简化存储系统的部署、配置、扩展和维护。

🎉 存储编排概念

存储编排是指将存储资源(如磁盘、存储池)分配给应用程序的过程。在传统的存储环境中,存储资源的管理通常与应用程序分离,需要手动配置和分配。而存储编排则通过自动化和策略化的方式,将存储资源与应用程序的需求相匹配。

🎉 Rook 与 Kubernetes 集成

Rook 通过 Kubernetes 的 API 进行集成,利用 Kubernetes 的各种特性,如服务发现、负载均衡、自动扩展等。Rook 将存储系统作为 Kubernetes 的自定义资源(Custom Resource Definitions,CRD)进行管理,使得存储系统的部署和管理与 Kubernetes 的其他资源保持一致。

🎉 存储类资源 CRD

存储类资源(StorageClass)是 Kubernetes 中用于定义存储类的一个 CRD。它定义了存储系统的参数,如存储类型、性能指标、访问模式等。Rook 允许用户通过定义 StorageClass 来创建和管理存储系统。

特性 描述
类型 定义存储系统的类型,如 Ceph、GlusterFS 等
性能 定义存储系统的性能指标,如 IOPS、吞吐量等
访问模式 定义存储系统的访问模式,如读写权限、复制因子等

🎉 存储策略与卷管理

Rook 支持多种存储策略,如自动扩展、负载均衡、数据复制等。存储策略通过 StorageClass 进行定义,并应用于存储卷(PersistentVolume,PV)的创建过程中。Rook 还支持动态卷管理,允许用户根据需求自动创建和扩展存储卷。

🎉 存储卷生命周期管理

Rook 管理存储卷的生命周期,包括创建、挂载、解挂、删除等操作。当 Kubernetes 工作负载需要存储资源时,Rook 会自动创建相应的存储卷,并将其挂载到工作负载所在的节点上。当工作负载不再需要存储资源时,Rook 会自动解挂并删除存储卷。

🎉 Rook 与云存储服务对接

Rook 支持与云存储服务对接,如 AWS EBS、Azure Disk、Google Persistent Disk 等。通过定义相应的 StorageClass,用户可以将云存储服务作为 Kubernetes 的存储资源进行管理。

🎉 Rook 与数据保护机制

Rook 支持多种数据保护机制,如数据备份、快照、灾难恢复等。用户可以通过定义相应的策略,实现数据的自动备份和恢复。

🎉 Rook 与性能监控

Rook 提供了丰富的性能监控功能,包括存储系统的性能指标、资源利用率等。用户可以通过 Kubernetes 的监控工具(如 Prometheus、Grafana)对存储系统进行监控和分析。

🎉 Rook 社区与生态

Rook 拥有一个活跃的社区和丰富的生态。用户可以通过社区获取支持、分享经验,并参与到 Rook 的开发过程中。Rook 还与其他开源项目(如 OpenStack、Ceph)有着良好的兼容性。

🎉 应用案例

以下是一个使用 Rook 部署 Ceph 存储系统的示例:

apiVersion: ceph.rook.io/v1
kind: CephCluster
metadata:
  name: my-ceph-cluster
spec:
  mon:
    count: 3
  osd:
    count: 3
  mds:
    count: 1
  storageClass:
    name: my-storage-class

在这个示例中,我们定义了一个名为 my-ceph-cluster 的 Ceph 集群,其中包含 3 个 mon 节点、3 个 osd 节点和 1 个 mds 节点。同时,我们指定了存储类 my-storage-class,以便将 Ceph 存储系统作为 Kubernetes 的存储资源进行管理。

🎉 Rook 简介

Rook 是一个开源项目,旨在将分布式存储系统(如 Ceph)集成到 Kubernetes 中。它简化了存储系统的部署、配置和管理,使得用户可以在 Kubernetes 集群中轻松地使用分布式存储。

🎉 存储策略概念

存储策略是 Kubernetes 中用于定义存储资源分配和管理的规则。它允许管理员根据不同的需求,为不同的工作负载提供不同的存储性能和容量。

🎉 Rook 与 Kubernetes 集成

Rook 通过 Kubernetes 的自定义资源定义(Custom Resource Definitions,CRDs)来实现与 Kubernetes 的集成。这些 CRDs 定义了存储系统(如 Ceph)的部署和管理方式。

🎉 存储类(StorageClass)配置

存储类是 Kubernetes 中用于定义存储资源的一组规则。Rook 通过创建存储类来提供不同类型的存储服务。

特性 说明
自动创建 当用户创建 PersistentVolumeClaim 时,如果没有指定存储类,Kubernetes 会自动选择一个合适的存储类。
性能和容量 存储类可以定义存储卷的性能和容量参数。
访问模式 存储类可以定义存储卷的访问模式,如读写一次(ROX)、读写多次(RWX)等。

🎉 存储卷(PersistentVolume)与存储卷声明(PersistentVolumeClaim)

PersistentVolume(PV)是 Kubernetes 中的持久化存储资源,而 PersistentVolumeClaim(PVC)是用户请求的存储资源。

对象 说明
PersistentVolume 由管理员创建,代表实际的存储资源,如磁盘、网络存储等。
PersistentVolumeClaim 由用户创建,代表用户请求的存储资源,Kubernetes 会根据存储类自动分配 PV。

🎉 Rook 对象存储(Ceph)配置

Rook 可以将 Ceph 集成到 Kubernetes 中,提供对象存储服务。

apiVersion: ceph.rook.io/v1
kind: CephCluster
metadata:
  name: my-ceph-cluster
spec:
  storage:
    useAllDevices: true

🎉 Rook 文件存储(CephFS)配置

Rook 还可以将 Ceph 集成到 Kubernetes 中,提供文件存储服务。

apiVersion: ceph.rook.io/v1
kind: CephCluster
metadata:
  name: my-ceph-cluster
spec:
  fs:
    dataDirCount: 3

🎉 Rook 块存储(Ceph RBD)配置

Rook 还可以将 Ceph 集成到 Kubernetes 中,提供块存储服务。

apiVersion: ceph.rook.io/v1
kind: CephCluster
metadata:
  name: my-ceph-cluster
spec:
  mon:
    count: 3
    dataDirCount: 3

🎉 存储策略应用场景

存储策略可以应用于以下场景:

  • 性能敏感型应用:为高性能应用提供高性能存储卷。
  • 容量敏感型应用:为容量敏感型应用提供大容量存储卷。
  • 成本敏感型应用:为成本敏感型应用提供低成本的存储卷。

🎉 性能优化

  • 合理配置存储类:根据应用需求,合理配置存储类,以提供最佳性能。
  • 优化存储卷副本数:根据应用需求,优化存储卷的副本数,以平衡性能和可靠性。

🎉 故障排除

  • 检查日志:检查 Rook 和 Ceph 的日志,以定位问题。
  • 检查网络:检查 Kubernetes 集群的网络连接,以确保存储系统正常运行。

🎉 安全性与权限管理

  • RBAC:使用 Kubernetes 的角色基于访问控制(RBAC)来管理存储资源的访问权限。
  • 加密:对存储数据进行加密,以保护数据安全。

🎉 与云原生架构的兼容性

Rook 与 Kubernetes 和云原生架构高度兼容,可以轻松地部署和管理分布式存储系统。

🎉 Rook 与 Kubernetes 的存储卷

在云原生环境中,Rook 是一个开源项目,它将存储系统作为容器化服务运行在 Kubernetes 上。Rook 的核心功能之一是管理存储卷,使得存储资源能够与 Kubernetes 集成,从而实现存储的自动化管理。下面,我们将从多个维度深入探讨 Rook 与 Kubernetes 的存储卷。

📝 存储卷类型

在 Kubernetes 中,存储卷是持久化存储资源的基本单元。Rook 支持多种存储卷类型,包括:

存储卷类型 描述
PersistentVolume (PV) Kubernetes 的持久化存储卷,由存储系统提供。
PersistentVolumeClaim (PVC) 用户请求的持久化存储卷,与 PV 相对应。
Dynamic Provisioning 自动创建 PV,无需手动配置。
📝 存储卷挂载

Rook 通过 Kubernetes 的卷挂载机制,将存储卷挂载到容器中。以下是一个简单的示例:

apiVersion: v1
kind: Pod
metadata:
  name: my-pod
spec:
  containers:
  - name: my-container
    image: my-image
    volumeMounts:
    - name: my-pv
      mountPath: /data
  volumes:
  - name: my-pv
    persistentVolumeClaim:
      claimName: my-pvc

在这个示例中,存储卷 my-pv 通过 PersistentVolumeClaim my-pvc 挂载到容器 /data 目录。

📝 存储卷持久化

Rook 确保存储卷的持久化,即使容器被删除,存储数据也不会丢失。以下是 Rook 支持的几种持久化策略:

持久化策略 描述
ReadWriteOnce 单节点可读写
ReadWriteMany 多节点可读写
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值