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

南京公司网站建设怎么收费asp网页制作教程

南京公司网站建设怎么收费,asp网页制作教程,新手制作ppt详细步骤,网站建设下一步计划姚灿武#xff0c;Rancher 中国研发工程师#xff0c;拥有 7 年云计算领域经验#xff0c;热衷开源技术#xff0c;在云原生相关技术领域拥有丰富的开发和实践经验。 CRD#xff0c;即自定义资源定义#xff08;Custom Resource Definition#xff09;#xff0c;是 Ku… 姚灿武Rancher 中国研发工程师拥有 7 年云计算领域经验热衷开源技术在云原生相关技术领域拥有丰富的开发和实践经验。 CRD即自定义资源定义Custom Resource Definition是 Kubernetes API 中一个强大的扩展机制。通过 CRD用户可以定义自己的资源类型来扩展 Kubernetes 的 API 和资源类型。CRD 定义可以用于创建多个版本的资源这对于 Kubernetes 集群的演变和升级非常有用。 在本文中我们将介绍 Kubernetes CRD 的版本概念和使用方法讨论如何在 CRD 中定义多个版本的资源并讨论资源数据存储和数据转换的实现方式。最后我们将介绍如何开发 CRD webhook以便在 Kubernetes 中实现 CRD 版本兼容。 多版本 CRD 多版本 CRD 是指在 CRD 中定义多个版本的 API每个版本的 API 可以有自己的规则这样就可以在不影响旧版本应用程序的情况下对新版本应用程序进行更新和升级。 要创建多版本 CRD我们需要定义一个 Custom Resource Definition 对象该对象包含多个 version 字段。每个 version 字段都有一个 schema其中包含了自定义资源的属性和规则。 通过一个例子来说明以下是一个单版本 CRD 示例 apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata:name: foos.sample.webhook.io spec:conversion:strategy: Nonegroup: sample.webhook.ionames:kind: FoolistKind: FooListplural: foosshortNames:- foo- foossingular: fooscope: Namespacedversions:- name: v1schema:openAPIV3Schema:properties:apiVersion:type: stringkind:type: stringmetadata:type: objecttype: objectserved: truestorage: true文件中规定版本信息以及资源的名称、类型等信息。通过 kubectl apply 命令可以将该 CRD 文件应用到 Kubernetes 集群中从而在集群中创建一个新的资源类型 Foo例如 apiVersion: sample.webhook.io/v1 kind: Foo metadata:name: foo-sample上述自定义资源 Foo 只有一个 v1 版本如果我们需要更新自定义资源中的某个字段就需要更新 Foo 的版本例如更新为 v2 版本就要在 CRD 文件中添加 v2 版本的定义例如 apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata:name: foos.sample.webhook.io spec:versions:- name: v1schema:openAPIV3Schema:properties:apiVersion:type: stringkind:type: stringmetadata:type: objecttype: objectserved: truestorage: false- name: v2schema:openAPIV3Schema:properties:alias:type: stringapiVersion:type: stringkind:type: stringmetadata:type: objecttype: objectserved: truestorage: true在上述 CRD 文件中我们定义了两个版本v1 和 v2。v2 相比 v1 新增了一个 alias 字段。 资源数据存储 为确保 Kubernetes 能够正确地将自定义资源持久化到存储中并且能够正确地从存储中读取和还原自定义资源。CRD 中定义了 spec.versions.storage 字段用于指示使用哪个版本的 CRD 持久化到存储中。在一个 CRD 定义中只能有一个版本的 storage 字段的值为 true。 上述例子中我们定义了两个版本v1 和 v2。v1 版本 storage 字段为 falsev2 版本 storage 字段为 true这表明 Kubernetes etcd 中存储的是 v2 版本的资源数据。 那么对于未被选定的版本的数据如何存储呢以上面 foo-sample 为例我们来看下 etcd 中是怎么存储的结果如下 /registry/sample.webhook.io/foos/default/foo-sample {apiVersion:sample.webhook.io/v2,kind:Foo,metadata:{annotations:{kubectl.kubernetes.io/last-applied-configuration:{\apiVersion\:\sample.webhook.io/v1\,\kind\:\Foo\,\metadata\:{\annotations\:{},\name\:\foo-sample\,\namespace\:\default\}}\n},creationTimestamp:2023-05-22T09:49:03Z,generation:1,managedFields:[{apiVersion:sample.webhook.io/v1,fieldsType:FieldsV1,fieldsV1:{f:metadata:{f:annotations:{.:{},f:kubectl.kubernetes.io/last-applied-configuration:{}}}},manager:kubectl-client-side-apply,operation:Update,time:2023-05-22T09:49:03Z}],name:foo-sample,namespace:default,uid:3360f129-31f7-4a3f-8991-7694524d9a78}}第一行是 foo-sample 的 key第二行是 foo-sample json 格式表示的内容其中 apiVersion 为 sample.webhook.io/v2这表明即便 v1 版本的资源也以 v2 版本的格式存储。 数据转换 当自定义资源支持多个版本时因为只能以某一个版本的格式进行存储所以需要在存储的版本和提供的版本之间进行转换实现多版本兼容。 如果转换涉及模式变更 并且需要自定义逻辑则应该使用 Webhook 来完成。在 CRD 中配置 webhook 示例如下 apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition ... spec:  conversion:    strategy: Webhook    webhook:      clientConfig:        caBundle: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJ2akNDQVdPZ0F3SUJBZ0lCQURBS0JnZ3Foa2pPUFFRREFqQkdNUnd3R2dZRFZRUUtFeE5rZVc1aGJXbGoKYkdsemRHVnVaWEl0YjNKbk1TWXdKQVlEVlFRRERCMWtlVzVoYldsamJHbHpkR1Z1WlhJdFkyRkFNVFk0TkRjegpPRGswTXpBZUZ3MHlNekExTWpJd056QXlNak5hRncwek16QTFNVGt3TnpBeU1qTmFNRVl4SERBYUJnTlZCQW9UCkUyUjVibUZ0YVdOc2FYTjBaVzVsY2kxdmNtY3hKakFrQmdOVkJBTU1IV1I1Ym1GdGFXTnNhWE4wWlc1bGNpMWoKWVVBeE5qZzBOek00T1RRek1Ga3dFd1lIS29aSXpqMENBUVlJS29aSXpqMERBUWNEUWdBRUZYWDQzaEZRdjRyOApKelR1UkJ0b3lqUmRtWjhIRkExbWZnOXJnTWVlNnVXZ20wMXBNR3lSRnFna3Z1RHF5RUlMTUtCRDduQ2IrVFp3CitBR3loVWhTV0tOQ01FQXdEZ1lEVlIwUEFRSC9CQVFEQWdLa01BOEdBMVVkRXdFQi93UUZNQU1CQWY4d0hRWUQKVlIwT0JCWUVGRzg2VnpCcW1wRUcrUWlrS0d1SGNIQlJwS2R3TUFvR0NDcUdTTTQ5QkFNQ0Ewa0FNRVlDSVFDaQp5SFFyeGNXN3dUM0dwRWhyNklQQWpXWDVJOSt4Y0dkUGQzQURKS0hwZ2dJaEFJQmhTc00xd1hxMU80VUlaWWZwCkNWVkxwaCtvUVMvMzI5OHMwS0VqWW9FTAotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg        service:          name: webhook-sample          namespace: default          path: /v1/webhook/conversion          port: 443      conversionReviewVersions:      - v1如果没有模式变更则可使用默认的 None 转换策略为不同版本提供服务时只有 apiVersion 字段会被改变。 apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition ... spec:...conversion:strategy: NoneCRD webhook 开发 与 Admission Webhook一样CRD webhook 也是一个 HTTP 回调webhook service 就是一个 HTTP 服务。接口结构如下 // ConversionReview describes a conversion request/response. type ConversionReview struct {metav1.TypeMeta json:,inline// request describes the attributes for the conversion request.// optionalRequest *ConversionRequest json:request,omitempty protobuf:bytes,1,opt,namerequest// response describes the attributes for the conversion response.// optionalResponse *ConversionResponse json:response,omitempty protobuf:bytes,2,opt,nameresponse }Harvester 项目组在 harvester webhook框架中增加了 CRD webhook 的支持开发者只需要实现 Converter 接口并把它注册到 webhook server 中然后启动 webhook server 即可。 // Converter is a interface to convert object to the desired version type Converter interface {GroupResource() schema.GroupResourceConvert(Object *unstructured.Unstructured, desiredAPIVersion string) (*unstructured.Unstructured, error) }具体开发细节请参考示例 webhook sample。 总 结 在实际产品进化演变过程中多版本兼容一直是一个重要的问题。Kubernetes CRD 采用选定某一个版本进行持久化并使用 webhook 实现多版本数据转换的策略来解决多版本兼容性问题。在 Kubernetes 外的其他项目中这种策略也值得学习借鉴。 参 考 Versions in Custom Resource Definitionshttps://kubernetes.io/zh-cn/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definition-versioning
http://www.dnsts.com.cn/news/254382.html

相关文章:

  • 仙居手机网站开发三只松鼠的网站建设
  • 临沂网站建设首选浩瀚网络网站建设及维护成本
  • 百度文库怎么做网站排名app做好了网站怎么做
  • 新服务器做网站如何配置chinacd.wordpress变身
  • 南通网站关键词优化网易企业邮箱域名怎么设置
  • 安徽股票配资网站建设政务信息网站建设工作方案
  • 咖啡网站设计蚌埠企业网站建设
  • 诚客网站建设怎么做家政的网站
  • 医院网站信息化有哪些建设规范长沙seo公司排名
  • 单页网站制作系统南安市城乡住房建设局网站
  • php网站 源码天津网站开发网站
  • 网站需要做404页面吗一张图看懂企业所得税
  • 企业网站建设中有哪几个重要点注册公司费用会计分录
  • 深圳模板建站多少钱程序员做外包网站
  • 培训课程网站那些网站专门做棋牌推广的
  • 天津做个网站需要多少钱中国建筑报道网
  • 莆田企业自助建站网站色调搭配
  • 万网建设网站的步骤湖南常德红网百姓呼声
  • 宁夏建设工程质量安全监督总网站北京网站设计公司哪家公司好
  • python一句做网站小企业网站建设的连接方式
  • 网站开发天晟合益想自己做网站吗
  • 邢台开发区建设小学官方网站专业建设网站哪家好
  • 适合网站开发的python专业网站设计建设公司
  • 黑色系 网站云南做网站哪家好
  • 全国妇联官方网站儿童之家建设建一个c2c网站要多少钱
  • 美食网站中饮食资讯该怎么做制作图片的电脑软件
  • 做盈利的设计素材网站有前途全部浏览器下载大全
  • 镇江做网站哪家公司好南做网站
  • wordpress网站制作教程视频电商平台网站建设
  • 做设计用的常用网站学seo如何入门