在线精品99_中国九九盗摄偷拍偷看_91免费版在线观看_91.app_91高清视频在线_99热最新网站

如何理解kubernetes中的api多版本机制实现

112次阅读
没有评论

共计 1804 个字符,预计需要花费 5 分钟才能阅读完成。

今天就跟大家聊聊有关如何理解 kubernetes 中的 api 多版本机制实现,可能很多人都不太了解,为了让大家更加了解,丸趣 TV 小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

在 web 开发中随着版本的更新迭代, 通常要在系统中维护多个版本的 api, 多个版本的 api 在数据结构上往往也各不相同, 今天就来一起学习下 kubernetes 中的 Scheme 机制是如何解决这个问题的, 如何借助 HTTP 请求里面的数据进行反序列化操作

 1. web 请求的处理流程  1.1 HTTP 请求处理流程

如何理解 kubernetes 中的 api 多版本机制实现通常首先是 webServer 先进行 Http 协议的处理, 然后解析成基础的 webServer 内部的一个 Http 请求对象, 通常该对象持有对应请求的请求头和底层对应的字节序列 (从 socket 流中读取) 接着首先会通常根据对应的编码格式来进行反序列化,完成从字节序列到当前接口的业务模型的映射, 然后在交给业务逻辑处理,从而最终进行持久化存储, 本文的重点也就在反序列化部分

 2. 模型映射的实现  2.1 描述资源版本信息

/api/{version}/{resource}/{action}
 

上面是一个基础的 web url 通常我们都会为每个版本注册一个对应的 URL, 其中会包含很关键的两个信息即 version 与 resource, 通过这两个信息, 通常我们就可以知道这可能是某个资源的那个版本, 如果我们把后面的 action 也包裹进来, 我们通常就可以知道对应的资源的那个具体操作

 2.2 Group 组信息

如何理解 kubernetes 中的 api 多版本机制实现在微服务流行的今天我们通?;嵛凑找滴窆δ芾唇形⒎竦那蟹郑局噬弦桓鑫⒎窨赡芫褪鞘迪帜掣鼍咛逡滴癯【暗墓δ芗?,比如用户系统通常会包含用户的所有相关操作,在 kubernetes 中也有类似的概念就是所谓的 Group

POST /apis/batch/v1beta1/namespaces/{namespace}/cronjobs
POST /apis/apps/v1/namespaces/{namespace}/daemonsets
 

我们来看一个实例这是一个创建 daemonsets 和 cronjobs 的 url, 如果按照 Group、resource、version 来进行拆分可以拆成如下:batch、v1beta1、cronjobs 和 apps、v1、daemonsets,也就是大家尝试的 GroupVersionKind, 其中 kind 对应的就是 resource

 2.3 模型映射的实现

如何理解 kubernetes 中的 api 多版本机制实现我们通过 url 里面获取到资源的 GroupVersionKind 信息,如何将其映射为一个具体的类型呢?这貌似就很简单了结合反射和 map 来进行就可以了,我们通过 url 获取到对应想的 GVK 信息,然后在通过我们的映射表,就知道对应的模型是哪个,接下来就只需要进行转换就行了

gvkToType map[schema.GroupVersionKind]reflect.Type
 3. 反序列化实现  3.1 解码机制

那如何将对应的 Http 里面的数据流反序列化成内部的一个对象呢,别忘记了是 Http 协议, 肯定就是 header 头里面的信息了,我们通过 header 头里面的序列化就可以知道对应的编码格式,只需要调用对应格式的解码就可以完成了

Content-Type: application/json 

 3.2 默认对象

如何理解 kubernetes 中的 api 多版本机制实现如果要将 json 格式的字节数组进行解码通常要进行如下操作,我们需要传入一个目标对象的指针,然后由 json 将对应的字节数据解析到目标对象中,我们也需要这样一个对象,用于存储反序列化的结果  

func Unmarshal(data []byte, v interface{}) error {}
 

那只要我再提供一个当前版本对应的对象构造函数是不是就可以呢?答案是的

func() Object{ return 目标对象},

 4. 设计总结

如何理解 kubernetes 中的 api 多版本机制实现首先在进行 url 注册的时候,我们构造出对应 url 映射的资源的版本信息即 GroupVersionKind, 后续的很多操作我们可以通过对应的版本映射获取对应的目标操作或者对象, 然后再通过 Header 里面的字段获取对应的解码器, 并将 Body 里面的字节序列进行解码到目标对象,就可以实现多版本资源的映射和反序列化操作了。

看完上述内容,你们对如何理解 kubernetes 中的 api 多版本机制实现有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注丸趣 TV 行业资讯频道,感谢大家的支持。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-25发表,共计1804字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)
主站蜘蛛池模板: 免费无码又爽又刺激高潮的视频 | 国产精品自产拍高潮在线观看 | 欧美多毛肥胖老妇做爰 | 九九视频精品全部免费播放 | 国产精自产拍久久久久久 | 农夫在线精品视频免费观看 | 国产-第1页-浮力影院 | 欧美日韩国产精品 | 日韩视频一区二区三区 | 国产精品亚洲精品日韩已方 | 久久综合九色综合国产 | 模特精品一区二区三区 | 精品久久久久久久免费人妻 | 99久久99 | 欧美日本一道免费一区三区 | 飘花国产午夜精品不卡 | 一区二区三区在线免费观看视频 | 亚洲不卡一区二区三区在线 | 91www成人久久 | 麻豆主播精品视频在线观看 | 亚洲最新网站 | 久久99国产精品二区 | 国产精品污www一区二区三区 | 国产成人亚洲精品一区二区在线看 | 亚洲一区小说 | 高清国产精品人妻一区二区 | 日本大片在线观看免费视频 | 免费观看国产短视频的方法 | 99re在线精品视频 | 99久在线精品99re6视频 | 欧美日韩精品suv | 日本三级网 | 激情视频在线观看网站 | 4hu影院最新地址www | 亚洲产在线精品第一站不卡 | 亚洲日本韩国欧美 | 日本黄色免费看 | 国产欧美日韩综合 | 天天做天天爱夜夜爽 | 欧美乱妇日本无乱码特黄大片 | 久久久久99精品成人片三人毛片 |