深入Kubernetes 的“无人区” — 蚂蚁金服双十一的调度系统

【学习笔记】浅识蚂蚁金服中间件产品“任务调度Schedule” 【背景】 从蚂蚁金服官方网站资料上,初步了解任务调度的功能,把关键信息记录下来加深印象。 编号 信息项 详情 1 产品概述 任务调度提供分布式任务调度框架,实现任务的分布式处理。 产品优势: 金融级高可用:支持机房级容灾,单机或单机房故障都不影响当前任务的执行,保障业务的正常执行。 高可靠高扩展:支持无限水平扩展,无性能容量瓶颈,监控任务的... 阅读详情

Kubernetes & Cloud Native X Service Mesh Meetup 活动现场分享

一、前言

经过超过半年的研发,蚂蚁金服在今年完成了 Kubernetes 的全面落地,并使得核心链路100% 运行在 Kubernetes。到今年双十一,蚂蚁金服内部通过 Kubernetes 管理了数以万计的机器以及数十万的业务实例,超过90%的业务已经平稳运行在 Kubernetes 上。整个技术切换过程平稳透明,为云原生的资源基础设施演进迈好了关键的一步。

本文主要介绍 Kubernetes 在蚂蚁金服的使用情况,双十一大促对 Kubernetes 带来史无前例的挑战以及我们的最佳实践。希望通过分享这些我们在实践过程中的思考,让大家在应用 Kubernetes 时能够更加轻松自如。

二、蚂蚁金服的 Kubernetes 现状

2.1 发展历程与落地规模

Kubernetes 在蚂蚁金服落地主要经历了四个阶段:

  • 平台研发阶段:2018年下半年蚂蚁金服和阿里集团共同投入 Kubernetes 技术生态的研发,力求通过 Kubernetes 替换内部自研平台;

  • 灰度验证:2019年初 Kubernetes 在蚂蚁金服灰度落地,通过对部分资源集群进行架构升级以及灰度替换生产实例两种方式,让 Kubernetes 得以小规模的验证;

  • 云化落地(蚂蚁金服内部基础设施上云):2019年4月蚂蚁金服内部完成 Kubernetes 适配云化环境的目标,并于618之前完成云化机房100% 使用 Kubernetes 的目标,这是 Kubernetes 第一次在蚂蚁金服内部得到规模化的验证;

  • 规模化落地:2019年618之后,蚂蚁金服内部开始全面推动 Kubernetes 落地,在大促之前完成核心链路100% 运行在 Kubernetes的目标,并完美支撑了双十一大考。

2.2 统一资源调度平台

Kubernetes 承载了蚂蚁金服在云原生时代对资源调度的技术目标:统一资源调度。通过统一资源调度,可以有效提升资源利用率,极大的节省资源成本。要做到统一调度,关键在于从资源层面将各个二层平台的调度能力下沉,让资源在 Kubernetes 统一分配。

蚂蚁金服在落地 Kubernetes 实现统一调度目标时遵循了标准化的扩展方式:

  • 一切业务扩展均围绕 Kubernetes APIServer,通过CRD + Operator方式完成业务功能的适配和扩展;

  • 基础服务通过 Node 层定义的资源接口完成个性化适配,有益于形成资源接入的最佳实践;

得益于持续的标准化工作,我们在落地 Kubernetes 的大半年内应用了多项技术,包含安全容器,统一日志,GPU 精细调度,网络安全隔离及安全可信计算等,并通过 Kubernetes 统一使用和管理这些资源服务了大量在线业务以及计算任务型业务。

三、双十一 Kubernetes 实践

下面我们通过以下几种场景介绍蚂蚁金服内部是如何使用 Kubernetes,以及在此过程中我们面对的挑战和实践之路。

3.1 资源分时复用

在大促过程中,不同业务域的洪峰流量通常都是在不同时间段来临,而应对这些不同时间到来的业务流量往往都需要大量的额外计算资源做保障。在以往的几次活动中,我们尝试了通过应用快速腾挪的方式来做到资源上的分时复用,但是服务实例上下线需要预热,腾挪耗时不可控,大规模调度的稳定性等因素都影响了最终腾挪方案的实践效果。

今年双十一我们采用了资源共享调度加精细化切流的技术以达到资源分时利用的目标,为了达到资源充分利用和极速切换的目标,我们在以下方面做了增强:

  • 在内部的调度系统引入了联合资源管理(Union-Resource Management),他可以将波峰波谷不重叠的业务实例摆放在相同的资源集合内,达到最大化的资源利用;

  • 研发了一套融合资源更新,流量切换及风险控制的应用分时复用平台,通过该平台 SRE 可以快速稳定的完成资源切换以应对不同的业务洪峰;

整套平台和技术最终实现了令人激动的成果:蚂蚁金服内部不同业务链路数以万计的实例实现了最大程度的资源共享,这些共享资源的实例可分钟级完成平滑切换。这种技术能力也突破了当下资源水平伸缩能力的效率限制,为资源的分时复用打开了想象空间。

3.2 计算型任务混部

Kubernetes 社区的落地案例中,我们往往看到的都是各种各样的在线业务,计算型业务往往通过“圈地”式的资源申请和独立的二层调度跑在 Kuberentes 集群中。但是在蚂蚁内部我们从决定使用 Kubernetes 的第一天起,就将 Kubernetes 融合计算型业务实现资源的统一调度作为我们的目标。

在蚂蚁金服内部我们持续的使用 Kubernetes 支持各类计算业务,例如各类AI 训练任务框架,批处理任务和流式计算等。他们都有一个共同的特点:资源按需申请,即用即走。

我们通过 Operator 模型适配计算型任务,让任务在真正执行时才会调用 Kubernetes API 申请 Pod 等资源,并在任务退出时删除 Pod 释放资源。同时我们在调度引擎中引入了动态资源调度能力和任务画像系统,这为在线和计算的不同等级业务提供了分级资源保障能力,使在线业务不受影响的情况下资源被最大化的利用。

今年双十一除了洪峰时间段(00:00~02:00),蚂蚁金服 Kubernetes 上运行的任务均未做降级,每分钟仍有数以百计的计算任务在 Kubernetes 上申请和释放。未来蚂蚁金服内部将会持续推动业务调度融合,将 Kubernetes 打造成为资源调度的航空母舰。

3.3 规模化核心

蚂蚁金服是目前少数运行了全球最大规模的 Kubernetes 集群的公司之一,单集群机器规模过万,Pods 数量数十万。随着类似计算型任务混部和资源分时复用这类业务的落地,资源的动态使用以及业务自动化运维都对 Kubernetes 的稳定性和性能带来的巨大的挑战。

首先需要面对的挑战是调度性能,社区的调度器在5k规模测试中调度性能只有1~2 pods/s,这显然无法满足蚂蚁金服的调度性能需求。

针对同类业务的资源需求往往相同的特点,我们自研了批量调度功能,再加上例如局部的filters性能优化等工作,最终达到了百倍的调度性能提升!

在解决了调度性能问题后,我们发现规模化场景下 APIServer 逐渐成为了影响 Kubernetes 可用性的关键组件,CRD+Operator 的灵活扩展能力更是对集群造成巨大的压力。业务方有100种方法可以玩垮生产集群,让人防不胜防。造成这种现象一方面是由于社区今年以前在规模化上的投入较少 APIServer 能力较弱,另一方面也是由 Operator 模式的灵活性决定。开发者在收益于 Operator 高灵活度的同时,往往为集群管理者带来业务不受控制的风险。即使对 Kubernetes 有一定熟悉程度的开发者,也很难保障自己写出的 Operator 在生产中不会引爆大规模的集群。

面对这种“核按钮”不在集群管理员手上的情况,蚂蚁内部通过两方面入手解决规模化带来的问题:

1. 我们通过持续总结迭代过程中的经验,形成了内部的最佳实践原则,以帮助业务更好的设计Operator

  • CRD 在定义时需要明确未来的最大数量,大量CR 业务最好采用 aggregate-apiserver 进行扩展;

  • CRD 必须 Namespaced scope,以控制影响范围;

  • MutatingWebhook + 资源 Update 操作会给运行时环境带来不可控破坏,尽量避免使用这种组合;

  • 任何 controllers 都应该使用 informers,并且对写操作配置合理限流;

  • DaemonSet 非常高阶,尽量不要采用这类设计,如果必需请在 Kubernetes 专家的辅导下使用;

2. 我们已经在 Kubernetes 实施了一系列的优化,包含多维度流量控制,WatchCache 处理全量 List 请求,controller 自动化解决更新冲突,以及 APIServer 加入自定义索引等。

通过规范和优化,我们从 client 到 server 对 API 负载做了整体链路的优化,让资源交付能力在落地的大半年内提升了6倍,集群每周可用率达到了3个9,让 Kubernetes 平稳顺滑的支撑了双十一的大促。

3.4 弹性资源建站

近几年大促蚂蚁金服都会充分利用云化资源,通过快速弹性建站的方式将全站业务做“临时”扩容,并在大促后回收站点释放资源。这样的弹性建站方式为蚂蚁节省了大量的资源开支。

Kubernetes 提供了强大的编排能力,但集群自身的管理能力还比较薄弱。蚂蚁金服从 0 开始,基于 Kubernetes on Kubernetes 和面向终态的设计思路,开发了一套管理系统来负责蚂蚁几十个生产集群的管理,提供面向大促的快速弹性建站功能。

通过这种方式我们可以自动化的完成站点搭建,3小时内交付可立即使用的包含数千个 Nodes 的 Kubernetes 集群。今年双十一我们在一天内交付了全部弹性云化集群,随着技术的不断提升和磨练,我们期望未来能够按天交付符合业务引流标准的集群,让蚂蚁金服的站点随时随地可弹。

四、展望未来,迎接挑战

云原生时代已经到来,蚂蚁金服内部已经通过 Kubernetes 迈出了云原生基础设施建设的第一步。虽然当前在实践中仍然有许多挑战在等着我们去应对,但相信随着我们在技术上持续的投入,这些问题会一一得到解决。

4.1 平台与租户

当前我们面对的一大挑战是多租户带来的不确定性。蚂蚁金服内部不可能为每个业务部门都维护一套Kubernetes集群,而单个 Kubernetes 集群的多租户能力十分薄弱,这体现在以下两个维度:

  • APIServer 和 etcd 缺少租户级别的服务保障能力;

  • Namespace 并不能有效的隔离全部资源,并且由于Namespace 只提供了部分资源能力,对平台型的接入方也很不友好;

未来我们会在核心能力如 Priority and Fairness for API Server Requests 以及 Virtual Cluster 上持续的做技术投入和应用,有效保障租户的服务能力保障和隔离。

4.2 自动化运维

除了资源调度,Kubernetes 下一阶段的重要场景就是自动化运维。这涉及到应用资源全生命周期的面向终态自行维护,包含但不限于资源自动交付及故障自愈等场景。

随着自动化程度的不断提升,如何有效控制自动化带来的风险,让自动化运维能够真正提升效率而不是任何时刻都需要承担删库跑路的风险是接下来的一个重要难题。

蚂蚁金服在落地 Kubernetes 的过程中经历过类似的情况:从初期高度自动化带来无限的兴奋,到遭遇缺陷不受控制最终爆炸引发故障后的无比沮丧,这些都说明了在 Kubernetes 上做自动化运维仍有很长的路要走。

为此我们接下来和阿里集团兄弟部门一起推动 Operator 的标准化工作。从接入标准,Operator 框架,灰度能力建设和控制治理上入手,让 Kubernetes 上的自动化运维变的更加可视可控。

五、结束语

今年我们实现了 Kubernetes 由 0-1 的落地,经受了双十一双大促真实场景的考验。但云原生的基础设施建设仍是刚刚起步,接下来我们将在弹性资源交付,集群规模化服务以及技术风险与自动化运维上持续发力,以技术支撑和推动业务服务完成云原生的落地。

最后,也欢迎志同道合的伙伴加入我们,一起参与建设云原生场景下的基础设施!

作者介绍

曹寅,蚂蚁金服 Kubernetes 落地负责人,2015年加入蚂蚁金服,主要从事容器技术及平台研发相关工作,2018年开始负责蚂蚁Kubernetes的研发落地。 曾在阿里云弹性计算工作四年,对云计算基础设施领域有着深刻的理解。

本文归档在 sofastack.tech。

???? 奖励支持 SOFAStack 的你~

* 点下右下角“在看”

* 到公众号对话框发送“电脑包”,试试手气~

* 本期互动奖品“15寸电脑包”

蚂蚁金服Java岗社招面试5面历程 牛逼的来了! 一面: 介绍一下自己; 问项目经历, 聊"数据同步" 接着聊上了 K8S 的项目 有没有什么钻研得比较深的技术? kubernetes 的架构是怎么样的? golang 与 java 的比较 golang 的 gc 算法 怎么扩展 kubernetes scheduler, 让它能 handle 大规模的节点调度? 你有什么想问我的? 二面: 先聊了聊项目。 给 Prometheus 做了哪些改动? 自研配置中心, 具体做了哪些内容? . 阅读详情

相关推荐

技术抉择:阿里云13年后重构全部核心调度系统

简介:在阿里云十三年的发展历史上,重新设计调度系统算得上是一个重要的技术抉择。 在阿里云十三年的发展历史上,重新设计调度系统算得上是一个重要的技术抉择。 云计算是一个庞大的技术工程。2009 年,阿里云从 0 到 1 自建国产云计算系统“飞天”,为了确保对每一行代码都有控制力,阿里云选择了一条艰难的道路:自主研发。伏羲调度系统是“飞天”三大服务之一。调度系统作为云计算的核心技术,无论是对亚马逊、谷歌还是其他云计算企业来说,都是他们最保守的秘密,而伏羲凭借自研与优异的性能,与 YARN、Mesos 等技术

阿里云云栖号 1235

备战双 11!蚂蚁金服万级规模 K8s 集群管理系统如何设计?

作者丨蚂蚁金服技术专家 沧漠来源:阿里巴巴云原生导读:Kubernetes 的出现使得广大开发同学也能运维复杂的分布式系统,它大幅降低了容器化应用部署的门槛,但运维和管理...

weixin_45727359的博客 320

鲍永成:京东弹性云技术.pdf

2016 Gdevops全球敏捷运维峰会杭州站 鲍永成:京东弹性云技术.pdf

阿里蚂蚁金服技术栈

阿里蚂蚁金服技术栈 一、SOFARPC 服务发布、引用以及调用的简单流程图如下: 当一个 SOFARPC 的应用启动时,如果发现当前应用需要发布 RPC 服务,那么 SOFARPC 会将该服务注册到配置中心,就是图中蓝色实线所示的过程。 当引用这个服务的 SOFA 应用启动时,会从配置中心订阅对应服务的地址,当配置中心收到订阅请求后,会将发布方的地址列表推送给订阅方,就是图中绿色实线所示的过程。 当引用服务的一方拿到地址以后,就可以调用服务了,就是图中蓝色虚线所示的过程。 使用步骤 依赖 <d

qq_36744175的博客 2228

AWR1642+DCA1000EVM 不使用mmWave Studio软件采集原始ADC数据 Timeout问题汇总

DCA1000 EVM Timeout问题汇总

Jesy_Hsu的博客 1476

GitLab中国区注册终极解决方案:绕过+86手机验证的实战技巧(2023最新)

本文详细解析了GitLab中国区注册时绕过+86手机验证的三种实战技巧,包括开发者工具调试方案、使用国际号码的变通方案以及本地化部署替代方案。通过技术分析和实践验证,帮助开发者顺利注册GitLab账号,提升团队协作效率。

rl6adventurer的博客 1498

十问 | 关于Service Mesh 和Kubernets的最前沿思考

小蚂蚁说: 在7月6日ArchSummit全球架构师峰会2018深圳站上,蚂蚁金服平台数据技术部的杨冰、Service Mesh布道师敖小剑、蚂蚁金服技术专家毛小云和来自阿里大文娱UC基础部的曾彬,四位技术专家围绕着Service Mesh和Kubernets领域最前沿的问题展开了深度的讨论。本文是此次讨论实录。 嘉宾组...

weixin_34032792的博客 232

赛灵思Xilinx 7系列FPGA硬件设计知识总结

本文讲述了赛灵思7系列FPGA硬件设计的关键点,为使用该系列FPGA提供硬件设计参考。

csdn_dsw的博客 3621

终极指南:Kubernetes核心组件与源码深度剖析,云原生面试必问知识点

在当今云原生技术飞速发展的时代,**Kubernetes**已成为后端工程师面试中的必考内容。无论是蚂蚁金服、字节跳动还是PingCAP这样的顶级科技公司,在面试中都会深入考察候选人对Kubernetes核心组件的理解程度。本文将为你深度解析Kubernetes四大核心组件的源码实现,帮助你在云原生面试中脱颖而出!🚀 ## 为什么Kubernetes面试如此重要? **Kubernetes*

gitblog_00192的博客 1047

【同等学力】2004-数学⭐✨

1.有些人勤奋,但并非所有人都勤奋。2.不管白猫黑猫,抓住老鼠就是好猫

super_mochi1 511

后摄模块辐射超标整改

某行车记录仪在EMI测试中出现辐射超标问题,通过模块剥离法定位到后摄模块的Ethernet数据线为噪声源。深入检查发现TYPE-C延长线屏蔽层未有效接地,形成辐射泄漏通道。整改措施包括加强屏蔽层360°接地、使用导电布改善连接处屏蔽等,最终使辐射降至EN55032 Class B限值以内。案例揭示了高速信号延长线中屏蔽连续性的重要性,建议设计阶段就重视连接器屏蔽设计和共模干扰抑制。

硬核科技 255

再见!蚂蚁金服

生活没有彩排 好的坏的都精彩每个认真生活的人 都值得被认真对待本文由“135编辑器”提供技术支持据相关报道,6月22日,在使用“蚂蚁金服”这个简称6年之后,支付宝的母公司不久前已启用新...

民工哥的博客 1460

《多模态融合改进》目录一览 | 专栏介绍 :全网 第一份 完整的多模态改进教程,提供《多模态模型改进完整项目包》-开箱即用

在大家订阅专栏后,便可获得多模态模型改进完整项目包-开箱即用,方便简单

Limiiiing的博客 1万+

蚂蚁金服 CEO 突然辞职!去向很意外。。。

点击下方“民工哥技术之路”,选择“设为星标”回复“1024”获取独家整理的学习资料!据媒体曝料,3月12日晚间,蚂蚁金服CEO胡晓明(花名孙权)发布内部邮件,宣布自己将辞去蚂蚁金服CEO一...

民工哥的博客 1687

【2023年】云计算比赛——金砖挑战赛正式题

文章摘要 本文详细记录了OpenStack私有云平台与Kubernetes容器云平台的部署与运维过程,涵盖环境初始化、组件安装、服务配置及自动化运维等关键任务。主要内容包括: OpenStack部署 环境初始化(主机名、Yum源、FTP服务等) 核心组件安装(Keystone、Glance、Nova、Neutron等) 运维任务(安全组管理、镜像上传、存储服务配置等) Kubernetes集群搭建 节点配置(时间同步、免密登录) 容器运行时(Docker)与网络插件(Flannel)部署 Harbor私有仓

geekgold的博客 313

【第1章】基于FPGA的图像形态学处理学习教程——目录

本课程介绍图像形态学处理技术,通过腐蚀、膨胀、开运算、闭运算等算子对图像进行优化。腐蚀可去除边缘杂色使线条更清晰,膨胀能填补缺口修复图像,开运算擅长去噪,闭运算则用于修补断裂。课程内容涵盖四大形态学处理的理论分析、MATLAB仿真和FPGA开发实现,包括腐蚀、膨胀、开闭运算以及顶帽变换等操作,最后探讨形态学处理的实际应用场景。通过仿真测试和FPGA开发实践,帮助学员掌握图像"美容塑型"的核心技术。

MATLAB,verilog,python,opencv,tensorflow,caffe,C,C++ 338

备战双11 蚂蚁金服10k规模k8s集群管理设计分享笔记

前言   Kubernetes 以其超前的设计理念和优秀的技术架构,在容器编排领域拔得头筹。越来越多的公司开始在生产环境部署实践 Kubernetes,在阿里巴巴和蚂蚁金服 Kubernetes 已被大规模用于生产环境。   Kubernetes 的出现使得广大开发同学也能运维复杂的分布式系统,它大幅降低了容器化应用部署的门槛,但运维和管理一个生产级的高可用 Kubernetes 集群仍十分困难。...

Enzo 1097

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Kubernetes学习总结(3)——一年时间打造全球最大规模之一的Kubernetes集群,蚂蚁金服怎么做到的?

一、背景 去年 6 月份,蚂蚁金服的 Kubernetes 开发团队刚刚下载 Kubernetes 代码,从零开始尝试在内部落地 Kubernetes 集群,并推动云原生实践。2019 年天猫 618 大促,蚂蚁金服首次在调度系统和技术栈全量应用 Kubernetes,平稳度过大促并突破Kubernetes 单集群万节点规模,机房和集群数量达到数十个,总节点达到数十万个,这是世界最大规模的 Ku...

科技D人生 2290

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

从零到破万节点!支撑618大促背后的蚂蚁金服Kubernetes集群

2019年天猫618大促,蚂蚁金服首次在大促中对调度系统和技术栈全面应用Kubernetes,突破了Kubernetes单集群万节点的规模,总节点数达到数十万个,这是世界最大规模的 Kubernetes 集群之一,而这距离开发团队下载Kubernetes代码仅一年之久。 背景 去年6月份,蚂蚁金服的 Kubernetes开发团队刚刚下载Kubernetes代码,从零开始尝试在内部落地Kub...

阿里云云栖号 1486

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

kubernetes :2019 容器云概况

2019年接近尾声, 容器云市场,特别是k8s有什么表现呢?可以看看本文 K8s容器云业内近况 1.概况 目前公有云厂商基本都推出了 kubernetes service服务 , 针对各个行业在推解决方案,典型的像 AWS,Azure ,阿里云 ,灵雀云 容器编排技术也从以前的厂家自研到k8s走向统一。 私有云厂商以国内的为主,青云的kuebrsphere ,rancherlab ,kubeope...

feiger的专栏 900

蚂蚁金服 Service Mesh 大规模落地系列 - 运维篇

《蚂蚁金服 Service Mesh 大规模落地系列》将会从核心、RPC、消息、无线网关、控制面、安全、运维、测试等模块对 Service Mesh 双十一大规模落地实践...

ServiceMesher 790

CNCF案例研究:蚂蚁金服

CNCF案例研究:蚂蚁金服 蚂蚁金服利用Kubernetes的高速增长策略 公司:蚂蚁金服地点:中国杭州行业:金融服务 挑战 蚂蚁金服于2014年10月正式成立,源自2004年推出的全球最大的在线支付平台支付宝。该公司还利用技术创新提供众多其他服务。随着支付宝处理其全球9亿多用户(通过其本地和全球合作伙伴)的交易量 - 在2017年双十一的高峰期每秒256,000笔交易,以及2018年...

weixin_44100234的博客 363

蚂蚁金服 Service Mesh 大规模落地系列 – 运维篇

本文为《蚂蚁金服 Service Mesh 大规模落地系列》第三篇 – 运维篇,该系列将会从核心、RPC、消息、无线网关、控制面、安全、运维、测试等模块对 Service Mesh 双十一大规模落地实践进行详细解析。文末包含往期系列文章。 引言 Service Mesh 是蚂蚁金服下一代架构的核心,也是蚂蚁金服内部向云原生演进的重要一环。本文为 Service Mesh 系列文章的运维...

weixin_40253011的博客 1131

蚂蚁金服万级规模 K8s 集群管理系统设计--分享整理

Kubernetes 以其超前的设计理念和优秀的技术架构,在容器编排领域拔得头筹。越来越多的公司开始在生产环境部署实践 Kubernetes,在阿里巴巴和蚂蚁金服 Kubernetes 已被大规模用于生产环境。 Kubernetes 的出现使得广大开发同学也能运维复杂的分布式系统,它大幅降低了容器化应用部署的门槛,但运维和管理一个生产级的高可用 Kubernetes 集群仍十分困难。 今年双 11...

garmoo的博客 1202
上一篇: Service Mesh 在『路口』的产品思考与实践:务实是根本
下一篇: SOFA Weekly | 每周精选【12/2 - 12/6】
SOFAStack
博客等级 码龄7年 747粉丝 389原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值