当前位置: 首页 > news >正文

风景名胜区建设部网站网站 廉政建设 板块

风景名胜区建设部网站,网站 廉政建设 板块,wordpress truepixel,wordpress jam关于Kubernetes REST API的工作方式#xff1a; 在哪里以及如何定义从REST路径到处理REST调用的函数的映射#xff1f; 与etcd的交互发生在哪里#xff1f; 从客户端发出请求到保存在etcd中对象的端到端路径是怎样的#xff1f; Kubernetes REST框架 Kubernetes REST实现可… 关于Kubernetes REST API的工作方式 在哪里以及如何定义从REST路径到处理REST调用的函数的映射 与etcd的交互发生在哪里 从客户端发出请求到保存在etcd中对象的端到端路径是怎样的 Kubernetes REST框架 Kubernetes REST实现可大致分为三个部分如下图所示。 客户端/服务器功能通过k8s.io包中的各种库实现。服务器端实现分布在多个包中。 服务器端的根目录包是apiserver, 其包含有endpointsserverregistry和storage等重要的包。 客户端在client-go包中实现其包含的主要包是rest。 几个关键Kubernetes概念 1组Group KubernetesREST API以层次结构组织并以/apis为根。 一个组为根下的一组REST资源集定义一个逻辑名称。例如API组名为apps它在层次结构中就表示为/apis/apps。 可以使用如下命令检查所有可用的API组 kubectl get --raw/apis | python -mjson.tool 2版本Version KubernetesREST API使用版本。版本名用于定义REST资源端点这些资源短点在组内不断演变。典型的版本名称有v1v1alpha1v1beta1。可以使用如下命令查找API组的所有可用版本 kubectl get-raw /apis/group-name 例如想找apps组下的所有可用版本可使用如下命令 kubectl get --raw/apis/apps | python -mjson.tool 3类型(Type) 表示概念的命名实体例如PodDeploymentService等。 4种类(Kind) Kubernetes类型的JSON/YAML表示。 5资源(Resource) 处理特定种类的REST请求的端点/路径。资源在api层次结构中通用表示为 /apis/group/version/namespaces/namespace/kind-plural 例如 deployments可表示为 /apis/apps/v1/namespaces/default/deployments 服务器端 服务器端集中探究以下问题 A 服务器中注册了哪些资源 B 与etcd的交互发生在哪里 1genericapiserver.go 文件先定义APIGroupInfo类型用于保存关于API组的信息例如存在哪些版本以及在这些版本中定义了哪些资源。其次定义GenericAPIServer类型,并实现为API组注册REST端点的InstallAPIGroup方法。该方法在api组版本实例中内部调用InstallREST方法。为运行服务器端GenericAPIServer还包含Run()方法。 2groupversion.go 文件先定义APIGroupVersion类型用于承载关于某api组的特定版本的信息例如引用提供实际REST端点实现(store.go)的对象的引用。还定义InstallREST方法内部调用安装程序上的Install方法来注册该版本的REST资源。 3installer.go 文件定义实现Install方法的APIInstaller类型。Install方法使用GroupVersion实例中的REST实现对象请参见第2点以将REST路径注册到go-restful库中的处理函数映射。当使用这个库时模式是为一个特定的REST路径定义一个可调用的handler函数。该模式在installer.go中用于设置处理对应于不同资源端点。 例如ws.GET(action.Path).To(handler), 其中handler是从GroupVersion实例的REST实现对象中获得的函数。它被定义为处理action.Path上的GET请求时被调用。 4master.go 文件先定义了包含指向GenericAPIServer实例的指针的Master类型。还定义了InstallAPIs方法通过调用genericapiserver的InstallAPIGroup方法启动注册工作流程。在创建Master的新实例时InstallAPIs方法被调用。 5registry/rest/rest.go 文件定义了不同的各种接口应该被任何想要提供Kubernetes-like REST端点的后端实现。该文件中的关键接口是Storage和StandardStorage。REST实现对象的引用属于rest.Storage接口类型该对象由在groupversion.go中的APIGroupVersion维护。 6registry/generic/registry/store.go 文件定义了实现rest.StandardStorage接口的Store类型。方法实现在由Store类型维护的Storage对象上的调用。此对象的类型为storage.Inte**ce请参见下文。 7storage/Interface.go 文件定义了一个名为Interface的接口包含一些方法。如果我们想可用于实际持久化的store必须实现这些方法。对于Interface接口中所有方法一个关键点是它们只返回error而没有其他的内容。如果任何数据需要由方法返回将通过一个指针作为参数传递的对象返回。作为一个例子检查签名的Get方法。 8storage/etcd3/store.go 文件定义了实现storage.Interface的Store类型它使用etcd 的clientv3库与etcd3进行交互。 客户端 在客户端我们主要探究REST调用如何进行 1request.go 文件定义了Request类型实现用于在资源上进行REST调用的方法。进行调用的模式是先创建一个NewRequest对象然后使用流式样方法链来调用REST方法(GETPOSTPUTDELETE)。资源和名称空间的名称是创建完整端点所必需的它们通过链式方法调用进行定义。 2client.go 文件首先定义了一个名为Interface的接口它包含返回Request对象指针在request.go中定义的REST方法包装器。其次定义了实现Interface接口的REST Client类型。 进行REST调用的模式是首先创建一个NewRESTClient然后通过其中一个REST方法包装体获取NewRequest对象。一旦NewRequest对象可用REST调用就像上面解释的那样使用方法链进行。 探究 1.   Kubernetes代码拥有丰富的文档这有助于理解一段代码作用。 2.   包含类型隐含地实现方法的地方可以很方便的在Interfaces中统计所有方法进而很容易明白该类型实现了哪些方法。 注册表包很好地实现了这一点但installer.go是一个不会发生这种情况的例子。 3.   Golang导入别名可以帮助确定一个方法来自哪个包。虽然代码确实使用了别名但还有更广泛的使用它们的空间。 转载于:https://www.cnblogs.com/CCE-SWR/p/9915905.html
http://wiki.neutronadmin.com/news/6786/

相关文章:

  • 网站建设基础入门西安网站制作 西安彩铃400电话
  • 个人宽带备案网站wordpress考试系统
  • 非常好的网站建设公司网站建设的定位是什么意思
  • 网站建设为什么不清晰阿里云网站怎么备案域名
  • asp.net怎么生成网站龙华网站建设推广平台
  • 网站建设与制作教程下载做外贸网站服务器要选择哪里的
  • 门户网站如何帮企业做宣传曲靖网站微信建设
  • 唐山手机网站建设网站快备案
  • 域名之后怎么做网站网站手机采集
  • 分类网站上怎么做锚文本广东
  • 网站建设公司 信科便宜垂直购物网站建设
  • 成都网站搜索优化手游网页版
  • 网站建设企业排行培训机构专业
  • 邢台网站网页设计公司php网站模板怎么安装
  • 医生工作室网站建设建一个做笔记的网站
  • 北京市建设厅网站首页深圳网站建设app开发
  • 建设厅网站进不去中国机械加工网商城
  • 河南科技网站建设比亚迪新能源汽车报价大全一览表
  • 做电影网站多少钱wordpress用户组阅读文章
  • 深圳快速网站制作为什么选择当网站设计人员
  • 学什么可以做视频网站wordpress 对象存储插件
  • 史志网站建设网站怎么申请域名
  • 如何网站客户案例哪个网站可以做全网推广
  • 网站框架怎么建设专业做股权众筹的网站
  • 江西省建设招标网站怎么看网站是否被收录
  • 网站 租用服务器价格泰安房产网签数据
  • 东营seo网站排名网站 二级域名
  • 手机p2p网站广东深圳今天最新通知
  • app开发网站公司百度地图官网
  • 网站营销活动策划成都市住房和城乡建设厅官方网站