【Kubernetes | Pod 系列】Pod的 YAML 清单文件详解

K8S之yaml文件详解 文章目录一、概述二、YAML文件优点三、YAML与 JSON 和 XML 的关系四、YAML 文件的结构五、YAML 在 Kubernetes 中的使用六、YAML文件模板生成/导出一、概述只支持YAML和JSON格式创建资源对象JSON格式用于接口之间消息的传递,格式用于配置和管理YAML是专门用来写配置文件的语言,非常简洁和强大,使用比json更方便。它实质上是一种通用的数据串行化格式。二、YAML文件优点。 阅读详情

3. Pod的 YAML 清单文件

3.1 获取资源对象 YAML

在 Kubernetes 中快速获取资源对象的 YAML 清单文件,以 Pod 为例,使用命令

kubectl run pod1 --image=nginx --dry-run=client -o yaml > pod1.yaml

此时,在当前目录下已经创建了一个最简单的 YAML 清单文件,其内容如下所示

apiVersion: v1
kind: Pod
metadata:
  creationTimestamp: null
  labels:
    run: pod1
  name: pod1
spec:
  containers:
  - image: nginx
    name: pod1
    resources: {}
  dnsPolicy: ClusterFirst
  restartPolicy: Always
status: {}

3.2 解析 YAML 清单文件

该 YAML 文件定义了一个 Pod 的属性。在K8S中所有的对象资源的 YAML 清单中都包含 五个基本属性:

  • apiVersion:表示对象资源的 API 版本,不同资源的 apiVersion 不一样。
  • kind:表示K8S中的对象资源种类,K8S中有很多对象资源,例如:Pod,Deployment,Service,Namespace等。
  • metadata:记录了对象资源的元数据,元数据字段下也包含多个属性。
  • spec:表示规约,定义对象资源一些属性。
  • status:记录了当前对象资源的状态参数。

(1)apiVersion

apiVersion: v1

apiVersion 顾名思义 API 版本其参数值的默认形式为:GROUP/VERSION,例如:policy.k8s.io/v1。

其中 GROUP 表示 API 组,即一组一起公开的资源。其中 核心(core) 也被称为 legacy组, 核心组并不作为 apiVersion 字段的一部分,所以其在 YAML 清单中的表现为: apiVersion: v1。

查看 Kubernetes API 中全部的 API 组

VERSION 表示 API组的迭代版本。不同 API 版本代表着不同稳定性和支持级别。Kubernetes API 组的级别(稳定性)分为3类:

  • Alpha:版本名称包含 alpha(例如:v1alpha1)。
  • Beta:版本名称包含 beta(例如:v2beta3)。
  • Stable:版本名称如 vX,其中 X 为整数。

Alpha 级别是最不稳定的,该级别的 API 默认被禁用且必须在 kube-apiserver 配置中显式启用才能使用。启动Alpha 级别的 API 可能会暴露出 Bug。由于缺陷风险增加和缺乏长期支持,建议该类 API 仅用于短期测试集群。

Beta 级别是相对稳定的,该功能被很好的测试过。启用某个特性被认为是安全的。内置的 Beta API 版本默认被禁用且必须在 kube-apiserver 配置中显式启用才能使用。该类 API 也不建议生产使用。后续发布版本可能会有不兼容的变动。 一旦 Beta API 版本被弃用且不再提供服务, 则使用 Beta API 版本的用户需要转为使用后续的 Beta 或 Stable API 版本。

Stable 级别是稳定版的 API。特性的 Stable 版本会出现在后续很多版本的发布软件中。 Stable API 版本仍然适用于 Kubernetes 主要版本范围内的所有后续发布, 并且 Kubernetes 的主要版本当前没有移除 Stable API 的修订计划。

(2)kind

kind: Pod

Kind 表示 K8S 中对象资源的类型。例如 Pod, ReplicationController, Service, Namespace, Node。在 K8S 中每个 API 组下又划分很多对象资源,为了区分它们的不同,使用 Kind 参数标识每个受支持的资源类型。

查看 Kubernetes 中全部的对象资源类型

使用命令:kubectl api-resources。关于示例请查阅博文【输出内容详细版】查看Kubernetes集群基本信息(初学者版) 中的【4. 查看可用的 API 资源】。

(3)metadata

metadata:					#元数据字段
  creationTimestamp: null	#
  labels:					#标签字段,一个资源对象可以有多个标签,可根据标签来筛选
    run: pod1				#标签1
  name: pod1				#定义Pod名称
  namespace: default		#定义pod(资源对象)所在的命名空间。默认为当前命名空间。

关于资源的元数据,例如它的名称、类型、api 版本、注释和标签。这包含可能由最终用户和系统更新的字段(例如注释)。

K8S中的每个对象种类都必须有一个名为 metadata(元数据)的嵌套字段来保存该对象资源的,并且必须包含以下元数据(必选):

  • namespace(名字空间):名字空间是一个与DNS兼容的标签,对象资源被细分到其中。默认的命名空间是 “default”。
  • name(名称):对象资源名称,在当前的命名空间中唯一的标识这个对象资源。这个值在检索单个对象时用于检索路径上。
  • uid:一个在时间和空间上唯一的值(通常是RFC 4122生成的标识符),用于区分被删除和重新创建的具有相同名称的对象。

每个对象资源又可以包含以下元数据(可选):

  • resourceVersion:用于识别对象的内部版本,用于记录该资源对象何时被更新过。

  • generation:表示所需状态的特定生成的序列号。由系统设置,每个资源单调递增。可以进行比较,比如RAW和WAW的一致性。之后博文会以例子解释

  • creationTimestamp:用于记录对象被创建的日期和时间,详见 RFC 3339

  • deletionTimestamp:该日期和时间之后,对象资源将被删除。这个字段由服务器在用户请求优雅删除时设置,而不是由客户端直接设置。之后博文会以例子解释

  • labels:其值是键值对,用于区分组织和分类对象。通俗点说是给对象资源打标签,可用于筛选。

  • annotations:其值也是键值对,对象设置了该字段后可被外部工具用来存储和检索关于此对象的任意元数据。之后博文会以例子解释

(4)spec

spec:
  containers:
  - image: nginx
    name: pod1
    resources: {}
  dnsPolicy: ClusterFirst
  restartPolicy: Always

spec 规范是由用户自定义,描述了对象资源创建后的期望状态。spec 规范是对期望状态的完整描述,包括由用户提供的配置设置、由系统扩展的默认值,以及由其他生态系统组件(如调度器、自动缩放器)创建后初始化或以其他方式改变的属性,并与 API 对象一起被持久化在稳定存储中。如果spec 规范被删除,该对象将被从 K8S 中清除。

此字段在创建或更新对象时填写。

spec 定义Pod一些属性信息,包括container(容器),DNS策略(dnspolicy),重启策略(restartpolicy)。

用户被授予对 spec 的完全写权限。而相关的控制器被授予对 spec 的只读权限。

(5)status

status: {}

由服务器填写的,报告了系统的当前状态。在大多数情况下,用户不需要更改它。我们在 spec 中填入了对象资源创建后的期望状态,status 则是对象资源实际被创建后的状态。如果 spec 中的值与 status 中的值一致,说明该对象资源正常运行,状态良好。如果不一致,说明该对象资源是有问题的。

用户被授予对 status 的只读权限。而相关的控制器被授予对 status 的完全写权限。

示例中的 status 为一个空字典是正常现象,因为此时 Pod 对象还未创建,所以 status 为空。

3.3 K8S中 YAML 文件语法

关于 YAML 的语法,需要记住以下几点

  • 大小写敏感。
  • 通过缩进表示层级关系。
  • 对于缩进敏感,不支持tab缩进,只支持空格键。(缩进的空格数目不重要,相同层级左对齐即可)
  • 使用 # 表示注释。
  • 可与json格式转换,支持字典数据类型与列表数据类型。

(1)空格缩进,禁止tab

YAML 文件对缩进的要求很严格,禁止使用tab代替缩进,要使用空格缩进。

缩进的空格数目不重要,只需要相同层级左对齐即可。为了保持 YAML 清单的赏心悦目,一般默认每个缩进为两个空格。

metadata:
  creationTimestamp: null
  labels:
    run: pod1
  name: pod1

(2)参数名遵循驼峰命名法

K8S 对象清单中每个参数名首字母小写,后面的每个单词的首字母都要大写

apiVersion: v1

(3)参数值大小写随意,关键字除外

K8S 对象清单中的参数值在一般情况下可以随意大小写,但如果该参数值是关键字则必须首字母大写。

关键字的意思是:有些参数值是固定的,可能一个参数的值只有三个关键字可选。这三个关键字是被写死的。

spec:
  containers:
  ...
    name: pod2
    ...
  dnsPolicy: ClusterFirst
  restartPolicy: Always

(4)字典与列表的区别

在 YAML 清单中,一般状态下的格式是字典类型,而如同:- image 属于列表。

spec:
  containers:		    #container字段,定义容器属性
  - image: nginx	    #定义容器使用的镜像
    name: vmware-nginx  #定义容器名称
    resources: {}	    #定义容器的计算资源约束,例如最多能消耗多少cpu或内存
  - image: tomcat 	    #定义第二个容器
    name: vmware-tmcat  #容器名称不能重复
    resources: {}

上述示例可表示为

{'spec': {'containers': [{'image': 'nginx','name': 'vmware-nginx','resources': {},},
                         {'image': 'tomcat','name': 'vmware-tmcat','resources': {},}
                        ],
         }
}

与 - image: nginx中 image 参数左对齐平级的参数都在同一个列表下,直至遇到下一个 - xxx 参数。

  • 最外层是字典A:{'spec': {字典B}},即 spec 参数的值为一个字典。
  • 字典B:{'containers': [列表A]},即 containers 参数值为一个列表。
  • 列表A:[{字典C}, {字典D}],即列表A中两个元素是两个字典。
  • 字典C定义了容器vmware-nginx。字典D定义了容器vmware-tmcat 。

我们可以简单将 YAML 文件理解为字典与列表的嵌套集合,字典中嵌套列表,列表中嵌套字典,两者相互嵌套。

请大家务必搞清 K8S 对象 YAML 文件的各项参数与其值的嵌套关系,在后续进阶博客中,我们会使用编程语言的客户端来对 K8S 对象的增删改查进行细微操控。
其中的难点是对 YAML 文件中字典与列表嵌套关系的理解。

3.3 查看 YAML 清单中参数关键字

除了使用K8S官方文档中给出的 YAML 对象清单之外,我们还可以借助 kubectl 工具提供 查询K8S 对象结构(YAML 清单)。使用命令

kubectl explain object_name

以对象 Pod 为例

查看 Pod 对象结构下存在的属性
kubectl explain pod #或者kubectl explain pods

如下图所示:

  • 红框位置表示字段名
  • 黄框位置表示该字段值的数据类型
  • 篮筐位置表示该字段的含义,以及涉及到的K8S文档

在这里插入图片描述

查看对象 Pod 的 spec 字段下的属性

查看某一对象或字段下的属性,使用英文符号的句号 . 连接。

Pod 的 spec 字段下有很多属性。

kubectl explain pod.spec

在这里插入图片描述

查看 Pod 的 spec 字段下 containers 参数的属性
kubectl explain pod.spec.containers

在这里插入图片描述

其它的资源对象的参数关键字仿照例子查询即可。

参考资料

  • Kubernetes Documentation:https://kubernetes.io/docs/home/
  • Kubernetes Github:https://github.com/kubernetes/kubernetes
kubernetes pod yaml文件解析 Statupprobe(启动探针):如果这个探针没有成功,其他探针不会运行,readinessprobe和livenessprobe是同时进行的,确定两个设置不能有冲突。livenessprobe(存活检查):设定一定的业务探测手段,ok才正常,如果不ok,会根据restatrpolicy决定重启或者是杀死。-(initialDelaySeconds: 10)检查的开始时间,pod启动后10秒开始,给容器一定的启动时间。-(path: /usr/share/nginx/html/)宿主机的路径。 阅读详情

相关推荐

Kubernetes K8S之通过yaml文件创建Pod与Pod常用字段详解

YAML语法规范;在kubernetes k8s中如何通过yaml文件创建pod,以及pod常用字段详解

踏歌行的专栏 3306

pod的yaml文件各个参数的介绍

因为busybox中没有常驻进程,所以我们需要再其中加入常驻进程来保持容器时启动的状态,其中 stdin为i,tty为t,也就是咱们,kubectl exec -it 容器 中的it,来进行交互式的输入输出的。而需要明确的是,preStop 操作的执行,是同步的。因为如果这样的话,当容器出现意外情况down机时,再重新启动容器的话,会将原来编写的/etc/hosts文件覆盖掉,所以你可以直接再yaml中编写,这样重新启动时也会自动配置,或者说你制作容器时,就直接数据写入/etc/hosts中。

qq_48480384的博客 2396

python中frida的安装+frida-server(雷电模拟器)保姆级安装教程

frida的安装,安卓逆向,adb

2301_80224944的博客 4582

Pod yaml文件详解

●NodePort:在每个Node上打开一个端口以供外部访问,Kubernetes将会在每个Node上打开一个端口并且每个Node的端口都是一样的,通过 NodeIp:NodePort 的方式Kubernetes集群外部的程序可以访问Service。//为deployment的nginx创建service,并通过Service的80端口转发至容器的80端口上,Service的名称为nginx-service,类型为NodePort。

m0_75000405的博客 997

从零到千兆:KSZ9031 PHY芯片在Zynq PS端的驱动移植心路历程

本文详细记录了在Xilinx Zynq-7000平台(基于XC7Z020芯片)上,为KSZ9031千兆以太网PHY芯片移植LwIP协议栈驱动的完整过程。从硬件连接配置、Vivado工程设置到LwIP库的深度修改与调试,分享了解决PHY识别、自协商及性能优化等关键问题的实战经验,助力开发者实现稳定的千兆网络连接。

honey的博客 1106

倍福Beckhoff运动控制功能块实战解析:从MC_ReadActualPosition到MC_GearInVelo

本文深入解析倍福(Beckhoff)TwinCAT运动控制功能块,从基础的MC_ReadActualPosition、MC_Power等轴状态读取与使能操作,到MC_MoveAbsolute、MC_MoveRelative等单轴定位指令,并重点剖析了用于动态速度同步的核心功能块MC_GearInVelo在飞锯等场景的应用。文章结合实战经验,详细介绍了齿轮耦合、电子凸轮(MC_CamIn)等高级同步功能的参数配置、调试技巧及常见问题,旨在帮助工程师快速掌握倍福运动控制工具箱,实现复杂的同步工艺。

transformer2023的博客 981

k8s查看pod的yaml文件_Kubernetes Pod操作篇

前言在上文Kubernetes入门篇中对kubernetes有一个初步的介绍,本文继续介绍kubernetes的核心组件Pod,当然还是以实际操作为主;另外说明一点的是本系列是本人的学习笔记。Pod介绍Pod是Kubernetes中最为重要的核心概念,代表了Kubernetes中的基本构建模块;一个Pod可以包含一个容器或者多个容器,Pod本身是轻量级的,所以经常会创建很多Pod,紧密相关的容器进...

weixin_33456452的博客 1万+

ANSYS APDL齿轮建模实战:从渐开线方程到完整3D模型的保姆级教程

本文详细介绍了使用ANSYS APDL进行齿轮建模的全过程,从渐开线方程的数学基础到完整3D模型的创建。通过参数化命令流实现高精度齿轮建模,特别适合机械设计和仿真分析需求。教程包含关键参数计算、APDL环境配置、单齿齿廓建模以及全齿轮阵列复制等实用技巧,帮助工程师快速掌握ANSYS APDL在齿轮建模中的应用。

lg888的博客 447

K8S中 yaml 文件详解(pod、deployment、service)

目录前言一、K8S中的 yaml 文件二、写一个 yaml 文件,通过声明式创建pod例子:deployment.yaml 文件详解例子:Pod yaml 文件详解例子:Service yaml 文件详解 https://blog.youkuaiyun.com/duanbaoke/article/details/119238309?spm=1001.2014.3001.5501 前言 一、K8S中的 yaml 文件 Kubernetes 支持 YAML 和 JSON格式 管理资源对象 JSON 格式:主要用于ap

段小宝的博客 2万+

避坑实录:用certificate-manager重置vCenter 6.7证书时遇到的三个致命陷阱

本文详细解析了使用certificate-manager重置vCenter 6.7证书时可能遇到的三大致命陷阱,包括进度卡在85%的服务启动僵局、脚本突然退出的静默杀手以及密码错误锁死的隐藏机制。通过实战验证的解决方案和高级恢复技巧,帮助系统管理员有效避免vCenter环境瘫痪,确保证书更新过程顺利进行。

g5h6i7j的博客 919

22、狭义相对论与曲线坐标空间相关知识解析

本文深入解析了狭义相对论与曲线坐标空间的核心概念,涵盖能量-动量张量的定义与守恒、曲线坐标系下的度量张量与基向量性质、协变与逆变张量的变换规则,并介绍了克里斯托费尔符号与协变导数的计算方法。进一步探讨了在弯曲空间中进行微积分运算的基础理论及其在广义相对论中的关键应用,如爱因斯坦场方程如何描述物质-能量对时空曲率的影响,为理解黑洞等引力现象提供了理论框架。

lambda的博客 116

K8S集群中Yaml文件详解

K8S集群中对资源管理和资源对象编排部署都可以通过声明YAML文件来解决,也就是可以把需要对资源对象操作编辑到 YAML 格式文件中,我们把这种文件叫做资源清单文件,通过kubectl命令直接使用资源清单文件就可以实现对大量的资源对象进行编排部署了。YAML 文件 : 就是资源清单文件,用于资源编排。

YUEAwb的博客 3055

PX4从放弃到精通(十一):混控及PWM输出

文章目录前言一、混控脚本二、使用步骤1.引入库2.读入数据总结 前言 一个人可以走的更快,一群人才能走的更远,交流学习加qq:2096723956 更多保姆级PX4+ROS学习视频:https://b23.tv/ZeUDKqy 分享知识,传递正能量,如有疏漏或不当之处,恳请指出. 一、混控脚本 混控脚本定义了不同 示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。 二、使用步骤 1.引入库 代码如下(示例): import numpy as np import pand

超维空间科技的博客 1万+

K8S中 yaml 文件详解

K8S中 yaml 文件详解一、K8S中的 yaml 文件二、写一个 yaml 文件,通过声明式创建pod创建 Deployment 资源 - kind: Deployment创建 Service 资源 - kind-Service导出 yaml 格式方式例子:deployment.yaml 文件详解例子:Service yaml 文件详解 一、K8S中的 yaml 文件 Kubernetes 支持 YAML 和 JSON格式 管理资源对象 JSON 格式:主要用于 api 接口之间消息的传递 YAML

kele_baba 1万+

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

K8S之yaml 文件详解(pod、deployment、service)

K8S之yaml 文件详解(pod、deployment、service)

墨鸦的博客 1万+

Statistics and Machine Learning Toolbox

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

​K8s中yaml文件详解(超详细)​

上述例子中,使用两个空格作为缩进,但空格的数据量并不重要,只是至少要求一个空格并且所有缩进保持一致的空格数。除了上述的基本属性外,还能够指定复杂的属性,包括容器启动运行的命令、使用的参数、工作目录以及每次实例化是否拉取新的副本。注:上述的YAML文件中,metadata这个KEY对应的值为一个Maps,而嵌套的labels这个KEY的值又是一个Map。上述例子只是一个简单的最小定义:一个名字(front-end)、基于nginx的镜像,以及容器将会监听的指定端口号(80)。YAML对用户更加友好。

Java后端技术栈 1万+

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

k8s查看pod的yaml文件_K8S教程(6)YAML资源配置清单

一、K8S配置清单作用虽然使用kubectl或者dashboard都可以创建Pods,但在实际使用中基本都是使用yaml配置清单来对资源进行一个声明,然后K8S按照声明信息进行创建。对于K8S来说,它会将YAML配置清单中的内容自动转换成JSON格式,然后传送给API Server完成创建。二、创建YAML配置清单的办法1、导出已有的Pod为YAML格式kubectl get deployment...

weixin_39926739的博客 1万+

K8S:Yaml文件详解

详解k8s中的port:●portport 是 k8s 集群内部访问service的端口,即通过 clusterIP: port 可以从 Pod 所在的 Node 上访问到 service●nodePortnodePort 是外部访问 k8s 集群中 service 的端口,通过 nodeIP: nodePort 可以从外部访问到某个 service。

m0_71493671的博客 6360

Kubernetes(k8s) YAML文件详解

一、yaml文件简介 Kubernetes只支持YAML和JSON格式创建资源对象,JSON格式用于接口之间消息的传递,适用于开发;YAML格式用于配置和管理,适用于云平台管理,YAML是一种简洁的非标记性语言。 1)yaml的语法规则: 大小写敏感 使用缩进表示层级关系 缩进时不允许使用Tal键,只允许使用空格 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可 ”#” 表示注释,从这个字符一直到行尾,都会被解析器忽略 注:- - - 为可选的分隔符 ,当需要在一个文件中定义多个结构的时候需要使用

匠人精神,持之以恒! 4161

Kubernetes 中 YAML 文件详解

一个 YAML 文件中可以定义多个资源,使用 — 分隔不同的资源定义。

zhangyongze_z的博客 2642

k8s之yaml文件详解

没有相关资源,使用run命令--dry-run选项#已有相关资源,使用get命令导出。

2301_81272194的博客 3556

k8s——Kubernetes配置yaml文件详解

Kubernetes配置yaml文件 一:Yaml文件详解 1.介绍 YAML是专门用来写配置文件的语言,非常简洁和强大,使用比json更方便。它实质上是一种通用的数据串行化格式。 kubernetes中用来定义YAML文件创建Pod和创建Deployment等资源。 2.使用YAML用于K8s的定义的好处 便捷性: 不必添加大量的参数到命令行中执行命令 可维护性:YAML文件可以通过源头控制,跟踪每次操作 灵活性: YAML可以创建比命令行更加复杂的结构 3.YAML语法规则 大小写敏感 使用缩

weixin_55985097的博客 4863

【k8s】Kubernetes(K8s)YAML 配置文件

Kubernetes(K8s)YAML 配置文件讲解,Kubernetes(K8s)YAML 配置文件编写教程,Kubernetes

DreamSun的博客 1811

kubernetes(k8s) Yaml 文件详解

没有相关资源,使用run命令--dry-run选项已有相关资源,使用get命令--export选项httpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttps。

weixin_56270746的博客 7659

Kubernetes中yaml文件Pod模板详解编写yaml文件启动服务

编写Kubernetes中编写yaml文件,Pod模板详解 K8s的yaml文件功能十分强大,对于新手来说,想要快速照掌握且灵活运用就显得有些困难。下文将给出Pod模板常用的一些代码及解释,如何快速运用。 Pod中 yaml 的详解 注意:都是以两个空格为递进,而非tab apiVersion: v1 #必选,版本号,例如v1 kind: Pod   #必选,资源类型,例如 Pod,Deployment,ReplicaSet,Replication metadata:  

cbc_19的博客 8932
上一篇: 安装 Red Hat Enterprise Linux 9.1 虚拟机
下一篇: 【VC7升级VC8】将vCenter Server 7.X 升级为 vCenter Server 8 (上)—— VC 8系统要求与升级前的说明
NOWSHUT
NOWSHUT 优质创作者: 云计算技术领域 优质创作者: 云计算技术领域 领域专家: 操作系统技术领域 领域专家: 操作系统技术领域
博客等级 码龄9年 2万+粉丝 193原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NOWSHUT

给点饭钱谢谢,我会努力更新!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值