K8s之KubeSphere平台部署

kubesphere搭建k8s集群 【代码】使用kubesphere搭建k8s集群。 阅读详情

  KubeSphere是一个分布式操作系统,提供以Kubernetes为核心的云原生堆栈,旨在成为第三方应用程序的即插即用架构,以促进其生态系统的发展。 KubeSphere还是一个多租户企业级容器平台,具有全栈自动IT操作和简化的DevOps工作流程。它提供了开发人员友好的向导Web UI,可帮助企业构建更健壮且功能丰富的平台,其中包括企业Kubernetes战略所需的最常用功能,例如Kubernetes资源管理,DevOps(CI / CD),应用程序生命周期管理、监控、日志记录、服务网格、多租户、报警和通知,存储和网络、自动定量、访问控制、GPU的支持等,以及多集群管理、网络策略、注册表管理,更多即将发布的安全增强特性。

KubeSphere提供了整合的视图,同时围绕Kubernetes集成了广泛的生态系统工具,并提供一致的用户体验以降低复杂性,并开发了上游Kubernetes中尚不可用的新功能,以减轻Kubernetes的痛苦之处,包括存储,网络 ,安全性和易用性。 KubeSphere不仅允许开发人员和DevOps团队在统一控制台中使用他们喜欢的工具,而且最重要的是,由于这些功能是可插拔和可选的,因此它们与平台松散地结合在一起。

Kubernetes平台,专为DevOps团队量身定制

KubeSphere,以应用为中心的容器平台

极简、易用、灵活、高效


在k8s集群上安装部署

软硬件要求
Kubernetes 版本必须为 “1.15.x,1.16.x,1.17.x 或 1.18.x”;
确保您的计算机满足最低硬件要求:CPU > 1 核,内存 > 2 G;
在安装之前,需要配置 Kubernetes 集群中的默认存储类;

配置k8s默认存储类(StorageClass)
 要使用 StorageClass,我们就得安装对应的自动配置程序,比如我们这里存储后端使用的是 nfs,那么我们就需要使用到一个 nfs-client 的自动配置程序,我们也叫它 Provisioner,这个程序使用我们已经配置好的 nfs 服务器,来自动创建持久卷,也就是自动帮我们创建 PV。
第一步:搭建一个nfs服务器,创建共享目录。

选定一台nfs服务器,我这里ip为:192.168.47.50
创建共享目录:
mkdir -pv /data/nfs-share/k8s
chmod 666 /data/nfs-share/k8s
安装nfs:
yum install nfs-utils rpcbind -y
vim /etc/exports
/data/nfs-share/k8s 192.168.47.0/24(rw)

systemctl start nfs

exportfs -v  查看本机所有NFS共享
exportfs -r  重读配置文件,并共享目录

在k8s节点检查并挂载nfs:
showmount -e 192.168.47.50
mount -t nfs 192.168.47.50:/data/nfs-share/k8s /data/nfs-share/k8s

第二步:创建一个独立的storgeclass,为nfs-client-provisioner创建一个serviceAccount,然后绑定上对应的权限。

cat rbac.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
  name: nfs-client-provisioner
  # replace with namespace where provisioner is deployed
  namespace: storgeclass
---
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: nfs-client-provisioner-runner
rules:
  - apiGroups: [""]
    resources: ["persistentvolumes"]
    verbs: ["get", "list", "watch", "create", "delete"]
  - apiGroups: [""]
    resources: ["persistentvolumeclaims"]
    verbs: ["get", "list", "watch", "update","create"]
  - apiGroups: ["storage.k8s.io"]
    resources: ["storageclasses"]
    verbs: ["get", "list", "watch"]
  - apiGroups: [""]
    resources: ["events"]
    verbs: ["create", "update", "patch"]
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: run-nfs-client-provisioner
subjects:
  - kind: ServiceAccount
    name: nfs-client-provisioner
    # replace with namespace where provisioner is deployed
    namespace: storgeclass
roleRef:
  kind: ClusterRole
  name: nfs-client-provisioner-runner
  apiGroup: rbac.authorization.k8s.io
---
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: leader-locking-nfs-client-provisioner
  # replace with namespace where provisioner is deployed
  namespace: storgeclass
rules:
  - apiGroups: [""]
    resources: ["endpoints"]
    verbs: ["get", "list", "watch", "create", "update", "patch"]
---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: leader-locking-nfs-client-provisioner
  # replace with namespace where provisioner is deployed
  namespace: storgeclass
subjects:
  - kind: ServiceAccount
    name: nfs-client-provisioner
    # replace with namespace where provisioner is deployed
    namespace: storgeclass
roleRef:
  kind: Role
  name: leader-locking-nfs-client-provisioner
  apiGroup: rbac.authorization.k8s.io
[root@k8s-master storgeclass]# cat rbac.yaml 
apiVersion: v1
kind: ServiceAccount
metadata:
  name: nfs-client-provisioner
  # replace with namespace where provisioner is deployed
  namespace: storgeclass
---
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: nfs-client-provisioner-runner
rules:
  - apiGroups: [""]
    resources: ["persistentvolumes"]
    verbs: ["get", "list", "watch", "create", "delete"]
  - apiGroups: [""]
    resources: ["persistentvolumeclaims"]
    verbs: ["get", "list", "watch", "update","create"]
  - apiGroups: ["storage.k8s.io"]
    resources: ["storageclasses"]
    verbs: ["get", "list", "watch"]
  - apiGroups: [""]
    resources: ["events"]
    verbs: ["create", "update", "patch"]
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: run-nfs-client-provisioner
subjects:
  - kind: ServiceAccount
    name: nfs-client-provisioner
    # replace with namespace where provisioner is deployed
    namespace: storgeclass
roleRef:
  kind: ClusterRole
  name: nfs-client-provisioner-runner
  apiGroup: rbac.authorization.k8s.io
---
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: leader-locking-nfs-client-provisioner
  # replace with namespace where provisioner is deployed
  namespace: storgeclass
rules:
  - apiGroups: [""]
    resources: ["endpoints"]
    verbs: ["get", "list", "watch", "create", "update", "patch"]
---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: leader-locking-nfs-client-provisioner
  # replace with namespace where provisioner is deployed
  namespace: storgeclass
subjects:
  - kind: ServiceAccount
    name: nfs-client-provisioner
    # replace with namespace where provisioner is deployed
    namespace: storgeclass
roleRef:
  kind: Role
  name: leader-locking-nfs-client-provisioner
  apiGroup: rbac.authorization.k8s.io

应用创建:kubectl apply -f rbac.yaml

第三步:配置 Deployment,将里面的对应的参数替换成我们自己的 nfs 配置(nfs-client.yaml)

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nfs-client-provisioner
  labels:
    app: nfs-client-provisioner
  # replace with namespace where provisioner is deployed
  namespace: storgeclass
spec:
  replicas: 1
  strategy:
    type: Recreate
  selector:
    matchLabels:
      app: nfs-client-provisioner
  template:
    metadata:
      labels:
        app: nfs-client-provisioner
    spec:
      serviceAccountName: nfs-client-provisioner
      containers:
        - name: nfs-client-provisioner
          image: quay.io/external_storage/nfs-client-provisioner:latest
          volumeMounts:
            - name: nfs-client-root
              mountPath: /persistentvolumes
          env:
            - name: PROVISIONER_NAME
              value: fuseim.pri/ifs
            - name: NFS_SERVER
              value: 192.168.47.50
            - name: NFS_PATH
              value: /data/nfs-share/k8s
      volumes:
        - name: nfs-client-root
          nfs:
            server: 192.168.47.50
            path: /data/nfs-share/k8s

应用并验证:

kubectl get pod -n storgeclass
storgeclass                    nfs-client-provisioner-78c8fdf8fc-zn76k                  1/1     Running   0          4h18m

第四步:创建默认存储类

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: managed-nfs-storage
  annotations:
    storageclass.kubernetes.io/is-default-class: "true"
provisioner: fuseim.pri/ifs # or choose another name, must match deployment's env PROVISIONER_NAME'
parameters:
  archiveOnDelete: "false"

其中 annotations 下面的 storageclass.kubernetes.io/is-default-class: “true” 是必须的:

[root@k8s-master storgeclass]# kubectl get sc
NAME                            PROVISIONER      RECLAIMPOLICY   VOLUMEBINDINGMODE   ALLOWVOLUMEEXPANSION   AGE
managed-nfs-storage (default)   fuseim.pri/ifs   Delete          Immediate           false                  4h26m

部署 KubeSphere
执行下面yaml文件:

kubectl apply -f https://github.com/kubesphere/ks-installer/releases/download/v3.0.0/kubesphere-installer.yaml

kubectl apply -f https://github.com/kubesphere/ks-installer/releases/download/v3.0.0/cluster-configuration.yaml

检查安装日志:

kubectl logs -n kubesphere-system $(kubectl get pod -n kubesphere-system -l app=ks-install -o jsonpath='{.items[0].metadata.name}') -f

安装成功可以看见最终下面结果:
在这里插入图片描述
确认pod启动情况:
在这里插入图片描述
最后确保在安全组中打开了端口 30880,并通过 NodePort(IP:30880)使用默认帐户和密码(admin/P@88w0rd)访问 Web 控制台。
在这里插入图片描述
浏览器登录:
在这里插入图片描述
验证使用:
在这里插入图片描述

KubeSphere简介,功能介绍,优势,架构说明及应用场景 KubeSphere简介,KuberSphere简介1.1 功能介绍Kubernetes 资源管理微服务治理多租户管理DevOps 工程Source to Image多维度监控自研多租户告警系统日志查询与收集应用管理与编排基础设施管理多存储类型支持多网络方案支持1.2 优势1.3 为什么选择 KubeSphere ?极简体验,向导式 UI业务高可靠与高可用容器化 DevOps 持续交付开箱即用的微服务治理多维度监控日志告警1.4 架构说明1.5 应用场景一步升级容器架构,助力业务数字化转型多维管控 Kube 阅读详情

相关推荐

KubeSphere快速入门

KubeSphere 是在 Kubernetes 之上构建的面向云原生应用的分布式操作系统,完全开源,支持多云与多集群管理,提供全栈的 IT 自动化运维能力,简化企业的 DevOps 工作流。它的架构可以非常方便地使第三方应用与云原生生态组件进行即插即用 (plug-and-play) 的集成。作为全栈的多租户容器平台,KubeSphere 提供了运维友好的向导式操作界面,帮助企业快速构建一个强大和功能丰富的容器云平台。

weixin_60197334的博客 1万+

k8s学习--k8s集群部署kubesphere的详细过程

KubeSphere 是在 Kubernetes 之上构建的面向云原生应用的分布式操作系统,完全开源,支持多云与多集群管理,提供全栈的 IT 自动化运维能力,简化企业的 DevOps 工作流。它的架构可以非常方便地使第三方应用与云原生生态组件进行即插即用 (plug-and-play) 的集成。作为全栈的多租户容器平台,KubeSphere 提供了运维友好的向导式操作界面,帮助企业快速构建一个强大和功能丰富的容器云平台。

lwxvgdv的博客 3753

K8s部署kubeSphere平台和基本使用

Kubesphere是基于Kubernetes的企业级容器管理平台,提供图形化界面和丰富功能。实验成功部署了Kubesphere Core,并配置阿里云私有镜像仓库,实现了镜像上传下载及在平台中的应用部署。实验中遇到镜像拉取失败时通过更换国内源解决,私有仓库认证问题则通过检查保密字典配置修正。实验验证了Kubesphere简化容器管理的有效性,同时掌握了外部镜像仓库的集成使用方法。

eeeeebv的博客 1345

kubernetes(k8s)+kubesphere部署

查看执行情况 kubectl get pods --all-namespaces 所有状态为Running。2.5> 在其他的分支节点执行(k8s-node1 k8s-node2)多执行几次 保证删除干净 如果master 卸载不了 重启机器再尝试删除。NFS_SERVER 设置为安装nfs服务的服务器ip地址。volumes中的nfs同样需要配置对应的nfs环境信息。NFS_PATH 即安装nfs服务的时候创建的挂载目录。删除成功后 再执行 1.8 -2.5 小结的操作。查看所有机器状态如下为成功。

qq_32003693的博客 2344

容器管理平台KubeSphere的使用

KubeSphere 是在 Kubernetes 之上构建的面向云原生应用的分布式操作系统,完全开源,支持多云与多集群管理,提供全栈的 IT 自动化运维能力,简化企业的 DevOps 工作流。作为全栈的多租户容器平台,KubeSphere 提供了运维友好的向导式操作界面,帮助企业快速构建一个强大和功能丰富的容器云平台。

m0_64132144的博客 1334

KubeSphere实战:利用kubekey快速部署高可用Kubernetes集群与KubeSphere平台

本文详细介绍了如何利用kubekey工具快速部署高可用Kubernetes集群并集成KubeSphere容器平台。通过kubekey,用户只需一条命令即可自动化完成集群初始化、组件安装和网络配置,大幅简化了传统手动部署的复杂流程,是构建企业级容器平台的捷径。

weixin_29261711的博客 334

基于 Kubernetes 部署容器平台kubesphere

Kubernetes(k8s)作为当前热门的容器编排技术,其部署方式多样,但通常需要一定的技术背景。为解决这一问题,作者开发了一款名为kms的k8s集群部署工具,该工具基于k8s服务二进制方式自动化,提供图形界面,简化了部署流程,使得用户无需深入了解k8s技术即可完成企业级二进制部署。此外,文章还介绍了如何部署容器管理平台Kubesphere,包括硬件环境要求、数据持久化存储配置以及部署命令。通过该平台,用户可以轻松实现项目部署、监控、持续集成等功能,支持蓝绿发布和金丝雀发布等高级部署策略。文章最后提供了部

u013454416的博客 1224

KubeSphere 最佳实战:Kubernetes 部署集群模式 Nacos 实战指南

KubeSphere 已被 Aqara 智能家居、本来生活、东方通信、微宏科技、东软、华云、新浪、三一重工、华夏银行、四川航空、国药集团、微众银行、紫金保险、去哪儿网、中通、中国人民银行、中国银行、中国人保寿险、中国太平保险、中国移动、中国联通、中国电信、天翼云、中移金科、Radore、ZaloPay 等海内外数万家企业采用。至此,我们完成了在 KubeSphere 管理的 Kubernetes 集群上手动部署 Nacos 集群的全过程,后续的配置管理请根据实际应用的需求进行配置。

KubeSphere 1477

Kubernetes部署+kubesphere管理平台安装

本文主要讲述了单机部署 kubernetes(K8S)和 Kubersphere可视化管理平台的搭建部署,以及集成jenkins发布项目、通过K8S安装Nginx、Mysql、RabbitMq等相关服务后续会补充

qq_40083897的博客 5134

DevOps-kubekey 部署k8s可视化平台KubeSphere

DevOps-kubekey 部署k8s可视化平台KubeSphere

qq_40178286的博客 582

ScottPlot vs LiveCharts:WPF图表库性能对比与MVVM适配方案

本文深度对比了WPF图表库ScottPlot与LiveCharts在性能与MVVM架构适配上的表现。通过十万级数据点的基准测试,ScottPlot在渲染速度与内存占用上优势显著。文章重点探讨了两种库在MVVM模式下的集成方案,为开发者根据项目需求(如实时监控或快速原型)进行技术选型提供了实战指导。

lll78的博客 245

在 Kubernetes 集群快速部署 KubeSphere 容器平台

KubeSphere 不仅支持部署在 Linux 之上,还支持在已有 Kubernetes 集群之上部署 KubeSphere,自动纳管 Kubernetes 集群的已有资源与容器。 前提条件 - Kubernetes 版本: 1.13.0 ≤ K8s version < 1.16; - Helm,版本 >= 2.10.0(不支持 helm 2.16.0 #6894),且已安装了 Tiller...

KubeSphere 1727

使用MID360在室内快速定位

在预构建的点云地图中实现实时3D全球定位。通过融合FAST-LIO的低频全局定位(约0.5~0.2Hz)和高频里程计,整个系统的计算效率很高。消除里程计的累计误差初始定位可以通过RVIZ的粗略手动估计或来自另一个传感器/算法的姿势来提供。

CTwinkle的博客 1162

kubesphere容器平台部署

kubesphere简介 KubeSphere是一个以应用为中心的容器平台,完全开源,KubeSphere 帮助企业在云、虚拟化及物理机等任何环境中快速构建、部署和运维基于 Kubernetes 的容器架构,轻松实现微服务治理、多租户管理、DevOps 与 CI/CD、监控日志告警、应用商店、大数据、以及人工智能等业务场景。 官网:https://kubesphere.io/ 项目地址:http...

IT 9838

S32K344 Bootloader实战:一个按键实现从Boot到App的无缝跳转(附完整代码)

本文详细介绍了基于NXP S32K344微控制器的Bootloader开发实战,重点解析如何通过一个硬件按键实现从Boot到App的可靠跳转。内容涵盖内存分区规划、中断向量表重映射、外设初始状态管理等核心要素,并提供了完整的代码示例和调试技巧,适用于汽车电子和工业控制等高可靠性应用场景。

weixin_29192365的博客 307

【Qualcomm高通音频】音效调试_录音文件播放有杂音,如何定位原因?

一、录音播放数据处理过程介绍 (1)TX方向 麦克风(硅麦克风或者主机体麦克风)采集模拟音频信号,经过内部CODEC芯片中的adc转换为数字信号,在经过高通音频DSP处理音效后编码为wav/aac/amr/mp3等格式文件。 (2)RX方向 音频文件经过解码、重采样还原为pcm数据,经过DSP处理音效后送到内部CODEC,然后经过DAC转换为模拟信号,送到喇叭。 二、分析步骤 1...

crow_ch的博客 5971

基于Kubernetes集群PaaS云平台 Kubesphere部署

微服务项目 基于Kubernetes集群PaaS云平台 Kubesphere部署

qq_37892401的博客 587

华为AR3260路由器NAT回流配置实战:从WEB界面到命令行的完整避坑指南

本文详细解析了华为AR3260路由器NAT回流(Hairpin NAT)的配置原理与实战方法。针对内网用户无法通过公网地址访问内部服务器的常见问题,文章不仅剖析了WEB界面配置的常见报错原因,更提供了清晰、可靠且一劳永逸的命令行(CLI)配置方案与排错指南,帮助企业网络工程师彻底解决内外网访问不一致的难题。

u6v7w8x的博客 874

在 Linux 部署多节点 Kubernetes 集群与 KubeSphere 容器平台

KubeSphere 是在 Kubernetes 之上构建的以应用为中心的企业级容器平台,所有供为用户提供简单易用的操作界面以及向导式操作方式。同时,KubeSphere Installer 提供了 快速部署生产级别的 Kubernetes 集群和全栈化容器平台的功能,能够快速帮助企业用户快速搭建一套以应用为中心的 DevOps 平台。 KubeSphere 支持部署和运行在包括公有云、私有云、V...

KubeSphere 1387

实验二 离散控制系统的性能分析(时域/频域)

1.掌握离散闭环系统的动态性能时域参数的分析与计算方法; 2.掌握离散系统稳定性的频域典型参数分析与计算方法。 MATLAB 软件( 2022a); 1.在 Matlab 语言平台上,通过给定的闭环离散系统,深刻理解时域参数的物理意义与计算方法,内容包括如下: 阻尼比参数分析:Z 平面与 S 平面的极点相互转换编程实现;分析 S/Z 两个平面域特殊特性(水平线、垂直线、斜线、圆周等)的极点轨迹相互映射方法;系统阶跃响应参数:上升时间和超调量等。 2. 采用频域分析方法,通过编程计算,进一步理解离散系统的稳定

m0_51738372的博客 2479

K230目标识别数字提问:模型只能识别近距离的目标,稍远一点就无法正确检测...如何解决?

🏆 本文收录于《全栈Bug调优(实战版)》专栏,致力于分享我在项目实战过程中遇到的各类Bug及其原因,并提供切实有效的解决方案。无论你是初学者还是经验丰富的开发者,本文将为你指引出一条更高效的Bug修复之路,助你早日登顶,迈向财富自由的梦想🚀!同时,欢迎大家关注、收藏、订阅本专栏,更多精彩内容正在持续更新中。让我们一起进步,Up!Up!Up!    备注: 部分问题/难题源自互联网,经过精心筛选和整理,结合数位十多年大厂实战经验资深大佬经验总结所得,数条可行方案供所需之人参考。

**My Coding Family** 1899

本地部署多租户容器平台KubeSphere并实现远程访问管理Kubernetes集群

本地部署多租户容器平台KubeSphere并实现远程访问管理Kubernetes集群

科技改变人类,技术成就未来 1万+

Intellij IDEA 使用教程(一)Jdk安装和配置

一.JDK下载 这里下载的是Java SE 8u181 64位版本。可以根据自己电脑配置来选择不同版本。 官网下载JDK 二.安装JDK 双击运行jdk-8u181-windows-x64.exe安装程序 选择安装目录,然后点击下一步 等待安装 安装JRE,就是java的运行环境,可以安装在java目录下 等待安装 安装完成。点击关闭。 三.java环境变量配置 关于环境变量的配置,...

岁月不饶人,我亦未曾饶过岁月 4053

Kubernetes与KubeSphere离线部署全攻略:从零搭建企业级容器平台

本文介绍了Kubernetes与KubeSphere的离线部署方案,详细讲解了从环境准备到集群搭建的全过程。内容包括:服务器规划与系统配置、Docker 24.0.2离线安装步骤、Kubernetes 1.23.17集群部署(包括master节点初始化和worker节点加入)、以及KubeSphere 3.3.2平台的安装配置。特别提供了离线安装包获取方式(联系张师傅微信:ggttxlss)和关键配置参数说明,适用于企业级容器平台的搭建需求。文章还强调了版本选择依据和常见问题解决方案。

一名在A股的韭菜,永远加仓,永远热泪盈眶。好来斯技术博客,`https://howlaisi.com`,微信公众号:韭菜张师傅。 1123

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

【云原生】3.1 Kubernetes平台安装KubeSpher

选择4核8G(master)、8核16G(node1)、8核16G(node2) 三台机器,按量付费进行实验。 假设你的机器没有安装Docker、没有安装Kubernetes、没有集群,那么可以看看之前写的文章,那里面有讲解,这里就直接从前置环境开始讲解吧。.........

程序猿追的博客 2339

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

sealos+rook部署kubeSphere

环境初始化 准备以下节点资源: 节点名称 节点IP CPU 内存 系统盘 数据盘 存储盘 操作系统 cluster1 cluster1-k8s-master1 192.168.1.95 2核 8G vda: 60G vdb: 100G vdc:100G CentOS7.8 minimal cluster1-k8s-master2 192.168.1.96 2核 8G vda: 60G vdb: 100G vdc:100G CentOS7.8 minimal

IT 5886

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

上一篇: 容器与进程
下一篇: K8s之Rancher平台部署
云巅的cat
博客等级 码龄7年 42粉丝 27原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值