您当前位置:资讯中心 >云计算 >浏览文章

Kubernetes CRD & Operator 简介

来源:互联网 日期:2024/1/1 21:57:41 阅读量:(0)

Kubernetes CRD

在 kubernetes 中有一系列内置的资源,诸如:pod、deployment、configmap、service …… 等等,它们由 k8s 的内部组件管理。而除了这些内置资源之外,k8s 还提供了另外一种方式让用户可以随意地自定义资源,这就是 CRD (全称 CustomResourceDefinitions) 。

例如,我可以通过 CRD 去定义一个 mypod、myjob、myanything 等等资源,一旦注册成功,那么这些自定义资源便会享受与内置资源相同的待遇。具体而言就是:

  • 我们可以像使用 kubectl 增删改查 deployment 一样去操作这些 CRD 自定义资源。
  • CRD 自定义资源的数据跟 pod 等内置资源一样会存储到 k8s 控制平面的 etcd 中。

需要注意的是,CRD 在不同的语境下有不同的含义,有时候可能只是指 k8s 中的 CustomResourceDefinitions 这一种特定的资源,有时候也可能是指用户通过 CRD 所创建出来的自定义资源。

狭义上的 CRD (全称 CustomResourceDefinitions) 是 k8s 中的一种特殊的内置资源,我们可以通过它去创建我们自定义的其它资源。例如,我们可以通过 CRD 去创建一个叫 CronTab 的资源:

apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  # 名称必须匹配 <plural>.<group>
  name: crontabs.stable.example.com
spec:
  # group 名称,用于 REST API: /apis/<group>/<version>
  group: stable.example.com
  versions:
    - name: v1
      served: true
      storage: true
      schema:
        openAPIV3Schema:
          type: object
          properties:
            # 定义属性
            spec:
              type: object
              properties:
                cronSpec:
                  type: string
                image:
                  type: string
  # 作用范围可以是 Namespaced 或者 Cluster
  scope: Namespaced
  names:
    # 复数名称,使用于 URL: /apis/<group>/<version>/<plural>
    plural: crontabs
    # 单数名称,可用于 CLI
    singular: crontab
    # 驼峰单数,用于资源清单
    kind: CronTab
    # 名字简写,可用于 CLI
    shortNames:
    - ct
关键字:
声明:我公司网站部分信息和资讯来自于网络,若涉及版权相关问题请致电(63937922)或在线提交留言告知,我们会第一时间屏蔽删除。
有价值
0% (0)
无价值
0% (10)

分享转发:

发表评论请先登录后发表评论。愿您的每句评论,都能给大家的生活添色彩,带来共鸣,带来思索,带来快乐。