k8s报错failed to run Kubelet: running with swap on is not supported, please disable swap

一次解决Kubernetes集群没有启动成功的过程 今天登录自己的Kubernetes测试集群时发现集群好像没有启动成功。 运行kubectl cluster-info 查看集群信息时报错: The connection to the server 192.168.37.201:6443 was refused - did you specify the right host or port? 第一反应Kubernetes API ser... 阅读详情

kubelet.service has more than one ExecStart= setting, which is only allowed for Type=oneshot services. Refusing.

failed to run Kubelet: running with swap on is not supported, please disable swap

解决办法

2、修改/etc/sysconfig/kubelet

 vi /etc/sysconfig/kubelet

添加如下配置项

KUBELET_EXTRA_ARGS="--fail-swap-on=false"

3、重置kubeadm

 kubeadm reset

Ubuntu 20.04 + kubeadm 搭建生产级 Kubernetes 集群实战 Kubernetes 是云原生时代容器编排的事实标准,其核心在于可审计、可复现的集群初始化机制;kubeadm 作为官方推荐的生产就绪引导工具,通过显式管理证书、静态 Pod 和 CRI 集成,保障了金融、边缘AI等严苛场景下的合规性与稳定性;它不隐藏复杂性,而是将 kubelet、etcd、API Server 等组件控制权交还运维者,支撑等保三级、混合云调度与 GPU 驱动兼容等关键需求;典型落地需深度结合 Ubuntu 20.04 LTS 的内核稳定性(5.4)、cgroup v1 兼容性及长期安全维 阅读详情

相关推荐

CentOS 7 搭建 Kubernetes 1.10 集群:kubeadm 实战指南

Kubernetes 是容器编排的事实标准,其核心在于控制平面组件(如 kubelet、kubeadm、apiserver)与底层操作系统及容器运行时的深度协同。理解 CRI(Container Runtime Interface)原理和版本兼容性,是构建稳定集群的前提——尤其在 CentOS 7 这类长期支持、内核为 3.10、systemd 219 的政企主流环境中。kubeadm 作为官方推荐的集群初始化工具,通过预检机制将常见故障前置暴露,显著提升部署确定性。本文聚焦于 Kubernetes 1.1

cuililai5127的博客 393

Kubernetes K8s 解决 running with swap on is not supported, please disable swap!

根据报错信息发现,不支持使用swap运行,需要禁用swap,于是修改/etc/sysconfig/kubelet。

DCL_优快云的博客 3013

Kubernetes 1.35.0 在 Ubuntu 上超简部署指南

Kubernetes 是云原生时代核心的容器编排系统,其部署复杂度长期困扰开发者与运维人员。随着 cgroup v2 成为 Linux 主流资源隔离机制,以及 containerd 作为默认容器运行时的深度集成,K8s 部署逻辑已发生根本性演进。Kubernetes 1.35.0 显著强化了对 Ubuntu 系统底层(如 systemd cgroup 驱动、内核模块加载、zram swap 管理)的原生适配能力,大幅降低环境冲突风险。该版本默认采用 registry.k8s.io 镜像源、强制 system

weixin_33866037的博客 469

k8s常见报错及解决方法

cgroup driver问题 现象: 03 16:08:32.319709 24189 server.go:265] failed to run Kubelet: misconfiguration: kubelet cgroup driver:"cgroupfs" is different from docker cgroup driver: "systemd" 原因: kubelet cgroup driver 与docker 不一致 解决方法: 修改kubelet 或者 docker 配置保持.

qq_38814358的博客 2673

Kubernetes 证书管理:用 Vault 实现 PKI 自动化与零信任治理

PKI(公钥基础设施)是云原生安全的基石,其核心在于证书生命周期的可控性、私钥的机密性与策略的精细化。传统 Kubernetes 内置 CA 依赖静态文件存储、固定有效期和人工轮换,难以满足企业级对最小权限、自动续签与跨集群统一治理的要求。Vault 的 PKI 引擎通过内存签名、动态证书发放、基于角色的细粒度策略及 Kubernetes 原生认证集成,实现了证书‘不落地、可审计、按需发、自动续’的技术价值。它不仅支撑 kubelet、etcd、apiserver 等核心组件的 TLS 安全通信,更延伸覆盖

congjukun0600的博客 338

Ubuntu 18.04 + kubeadm 部署 Kubernetes 的硬核实践指南

Kubernetes 是容器编排的事实标准,其部署依赖于底层操作系统、容器运行时与集群引导工具的深度协同。kubeadm 作为官方推荐的轻量级集群初始化工具,需严格匹配内核特性(如 cgroup v1)、网络栈行为(如 iptables 规则管理)及证书生命周期策略。在长期支持的 Ubuntu 18.04 环境中,这些约束尤为显著:内核 4.15 对 cgroup v2 支持薄弱,Docker 19.03.15 与 kubelet 的 cgroup 驱动必须一致,而 Flannel host-gw 模式则成

congbao6525的博客 450

启动kubelet失败failed to run Kubelet: running with swap on is not supported

启动kubelet失败failed to run Kubelet: running with swap on is not supported

空山新雨后,天气晚来秋 1618

[ERROR Swap]: running with swap on is not supported. Please disable swap

sed -ri 's/.*swap.*/#&/' /etc/fstab # 永久。# 关闭swap,两个命令都执行下即可解决问题。安装kubeadm的时候出现这个问题。需要关闭linux 的swap。swapoff -a # 临时。

一杯咖啡半杯糖的博客 1553

k8s错误之failed to run Kubelet: running with swap on is not supported, please disable swap! (七)

第一种 配置忽略swap报错 # vim /etc/sysconfig/kubelet KUBELET_EXTRA_ARGS="--fail-swap-on=false" 第一种 关闭交换分区

qq_35151346的博客 3461

autoDL算力云装Xinference[坑与步骤]

在页面直接点击下载会出现下着下载进度条消失,试了几次才出现这个报错,现在我们就继续安装缺少的包吧。这一步成功绕开了系统盘空间限制。先租用一个合适的服务器,建议不要选最新版本,跟我选的一样即可,不然后面会出现。最近在 AutoDL 上尝试部署。🚫 不要直接使用以下命令。点击下面链接即可打开。

ngadminq的博客 2382

独立游戏开发者的新武器:实测腾讯混元3D自动绑骨,搭配Mixamo让角色动画制作效率翻倍

本文实测腾讯混元3D自动绑骨功能与Mixamo动画库的协同使用,显著提升独立游戏开发者的角色动画制作效率。通过解决卡通角色绑骨偏差、优化骨骼权重及动画状态机配置,使原本两周的流程缩短至三天,并分享Unity中的性能优化与版权合规要点。

weixin_42662605的博客 489

K8s+Docker+KubeSphere+DevOps笔记

提示:这里可以添加本文要记录的大概内容:提示:以下是本篇文章正文内容,下面案例可供参考。

qq_44637753的博客 4093

CDR学习笔记——02

这篇写一些高级CDR的架构原理。

... 1015

The connection to the server 192.168.10.170:6443 was refused

我用的虚拟机搭建k8s集群进行测试,关机后执行 kublet get pod命令报下面的错 The connection to the server 192.168.10.170:6443 was refused 查看日志信息view /var/log/messages,发现有以下报错 "Failed to run kubelet" err="failed to run Kubelet: running with swap on is not supported, please disable swap

weixin_42609614的博客 1529

手把手教学:利用AutoDL与vLLM快速部署DeepSeek-R1大模型实战指南

本文详细介绍了如何利用AutoDL平台和vLLM框架快速部署DeepSeek-R1大模型的实战指南。从服务器配置、vLLM安装优化到模型部署的两种方案,再到性能调优和生产环境建议,手把手教你高效完成大模型部署。特别针对国内开发者遇到的网络问题提供了稳定解决方案,并分享了显存优化、磁盘清理等实用技巧。

weixin_42531779的博客 327

stm32项目实战(1)光敏电阻的介绍和使用

文章目录前言一、光敏电阻介绍二、cubeMX配置三、代码说明总结 前言 本篇文章我们讲带大家了解光敏电阻的使用 一、光敏电阻介绍 下面是4线光敏电阻实物图 产品接线说明: 1、VCC 接电源正极 3.3-5V 2、GND 接电源负极 3、DO TTL 开关信号输出 (配置为输出模式) 4、AO 模拟信号输出(ADC采样通道) 光敏电阻主要用于检测周围的光照强度,光照强度发生变化那么ADC采样的值也会发送变化。 二、cubeMX配置 简单的配置我们就不多说了主要是ADC采样的配置 这里我采用的是ADC1通道

m0_49476241的博客 1万+

Rocky Linux 10.1 + K8s 1.36.3 离线集群部署笔记(Kubernetes)

适用环境:3节点集群(1 Master + 2 Worker)、Rocky Linux 10.1集群规划:主机名IP地址角色核心组件Masterk8s-node01Workerk8s-node02Worker。

2301_81704123的博客 400

浏览器缓存导致代码不更新?一招解决部署后用户仍看到旧页面的问题

方案效果适用场景文件名哈希永久解决前端工程化项目HTTP缓存头控制精准控制需服务器权限Meta标签部分生效临时补救方案最佳实践:入口HTML禁用缓存,静态资源使用哈希文件名 + 长期缓存,达到「秒级更新」+「高性能」的平衡!

江拥羡橙的博客 809

Linux随记(十*)(升级harbor、k8s、openssl。k8s处理污点。k8s升级后无法使用动态pvc。iptables处理nfs漏洞)

Linux随记

Nightwish5的博客 1333

基于转录逆转的药物重定向 GPS 模型

GPS是一个基于分子结构预测基因表达扰动的开源平台,由三个模块组成:RCL(在LINCS扰动数据上训练抗噪MLP)、GPS4Drugs(预测新化合物的基因表达谱并进行逆转评分)、MolSearch(基于MCTS的分子优化)。平台使用Morgan指纹和Gene Ontology注释作为特征输入,将基因表达扰动离散为三分类标签。训练数据来自LINCS Phase I的18,746个化合物和978个landmark基因,支持四细胞系独立训练,可用于药物重定向与化合物筛选。

听雨草堂 82

基于STM32的设计智慧超市管理系统(带收银系统+物联网环境监测)_167

本系统主要由超市环境监测部分和商品管理部分组成。环境监测部分主控芯片采用STM32F103C8T6,主要包括温湿度传感器、烟雾传感器和空调制热开关、空调制冷开关,采集的数据通过ESP8266模块+MQTT协议上传至OneNet云平台,在OneNet云平台设计手机和电脑版本可视化页面,能够在页面上查看超市的环境信息,还能在页面上手动打开空调制热开关和空调制冷开关。商品管理部分主要由RC522-RFID读卡器、上位机组成,实现商品选购、结算、顾客的VIP会员卡注册管理等功能。

6067

Debian 9 + kubeadm 搭建 Kubernetes 集群实战指南

Kubernetes 是一种分布式容器编排系统,其核心在于控制平面组件(如 kube-apiserver、etcd)与工作节点的协同运行。kubeadm 作为官方推荐的轻量级集群引导工具,通过标准化流程封装初始化逻辑,但底层仍深度依赖 Linux 系统配置——包括 cgroup 驱动、内核模块(br_netfilter)、iptables 规则、时间同步及证书生命周期管理。在 Debian 9 这类长期稳定发行版上实践 kubeadm,能暴露真实环境中的兼容性细节,强化对 kubelet 启动机制、静态 P

weixin_30328063的博客 307

IDEA的使用指南

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

CentOS7上K8s+Rancher高可用集群部署实战拆解

Kubernetes集群部署本质是环境适配、组件协同与网络可信的系统工程。在CentOS7这类内核较老、cgroup v1为主、firewalld默认启用的操作系统上,K8s初始化失败多源于cgroup驱动不一致、防火墙策略阻断或主机名/DNS解析异常等底层配置问题。Rancher作为主流K8s管理平台,其纳管稳定性高度依赖集群基础健康度——尤其对kubelet与Docker的cgroup driver统一性、etcd通信端口开放、证书校验机制等有强约束。本文聚焦CentOS7环境下的K8s v1.23.1

banglvfei0870的博客 372

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Ubuntu 18.04 + kubeadm 搭建 Kubernetes 集群实战指南

Kubernetes 是云原生时代的核心编排系统,其集群部署本质是构建一个可调度、可扩展、高可靠的分布式控制平面。kubeadm 作为官方推荐的标准化部署工具,通过声明式配置与证书驱动机制,将 etcd、kube-apiserver 等核心组件以静态 Pod 方式启动,实现轻量、透明、可审计的集群初始化。它不隐藏底层细节,而是强制暴露 cgroup 驱动、Pod 网络 CIDR、证书 SAN 等关键参数,为运维、SRE 和 DevOps 工程师提供深入理解 Kubernetes 架构与安全模型的实践入口。在

weixin_30444105的博客 494

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

CentOS7使用kubeadm部署k8s-1.28集群

本文记录了在CentOS 7.9环境下部署Kubernetes 1.28集群的过程。采用containerd 1.6.28作为容器运行时,Calico作为网络插件,并搭建NFS共享存储环境。集群包含1个master节点和2个worker节点,均通过kubeadm工具部署。部署步骤包括:系统环境准备(禁用SELinux、swap等)、containerd安装配置、kubeadm/kubelet/kubectl安装,以及cgroup驱动配置。特别针对国内环境配置了镜像源代理,使用阿里云镜像仓库替代默认仓库。

运维攻城狮 3508

02_在多个RockyLinux10虚拟机上安装k8s集群

本文介绍在VirtualBox中搭建RockyLinux10虚拟机集群的步骤。主要内容包括:1)规划3节点k8s集群架构(1 master + 2 worker);2)详细说明创建第一个虚拟机rockylinux10-1的过程,包括下载VirtualBox和RockyLinux镜像、配置虚拟机参数(内存、CPU、磁盘、双网卡)、安装操作系统;3)系统基础配置:关闭防火墙、安装SSH服务、允许远程登录、设置静态IP(192.168.56.101)和主机名;4)网络配置确保宿主机与虚拟机互通,并配置hosts文

ShiJunzhiCome的博客 294
上一篇: yapi以及gitlab的容器化部署
下一篇: 编译NCNN时遇到Protobuf compiler version 3.20.3 doesn‘t match library version 3.6.1版本不匹配的问题
github_zwl
博客等级 码龄11年 300粉丝 171原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值