美文网首页
k8s中自定资源(CRD)的使用

k8s中自定资源(CRD)的使用

作者: 郭青耀 | 来源:发表于2021-07-28 23:57 被阅读0次

    创建自定义API对象(CRD:Custom Resource Definition)

    名Installment

    1. 通过官方文档了解CRD的定义:
      https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions/#create-a-customresourcedefinition
    2. 创建自己CRD, install.yaml 其内容如下:
    apiVersion: apiextensions.k8s.io/v1beta1
    kind: CustomResourceDefinition
    metadata:
      # metadata.name的内容是由"复数名.分组名"构成,如下,installments是复数名,uihcloud.cn是分组名
      name: installments.uihcloud.cn
    spec:
      # 分组名,在REST API中也会用到的,格式是: /apis/分组名/CRD版本
      group:  uihcloud.cn
      # list of versions supported by this CustomResourceDefinition
      versions:
        - name: v1
          # 是否有效的开关.
          served: true
          # 只有一个版本能被标注为storage
          storage: true
      # 范围是属于namespace的
      scope: Namespaced
      names:
        # 复数名
        plural: installments
        # 单数名
        singular: installment
        # 类型名
        kind: Installment
        # 简称,就像service的简称是svc
        shortNames:
        - inst
    
    1. 将CRD 写入k8s 的存储,并查看创建的 crd
    kubectl  apply  -f install.yaml
    kubectl  get  crd
    kubectl  describe  crd inst
    
    image.png
    1. 创建Installmens 的自定义对象 cgs-installer.yaml
    apiVersion:  uihcloud.cn/v1
    kind: Installment
    metadata:
      name: cgs-installer
    spec:
      name: "cgs"
      chart_path: "http://chartrepos/cgs-1.0.tgz"
      image_path: "http://chartrepos/cgs.tar"
    
    1. 将Installmens 对象写入k8s 的存储,并查看
    kubectl  apply  -f cgs-installer.yaml
    kubectl  get  inst
    kubectl  get  inst -o yaml
    
    image.png

    至此,k8s自定资源(也就是CRD)就创建成功了,此刻我们只是让k8s能识别到Installment,但是当我们创建Installment对象的时候,只是做了存储,还没有触发任何逻辑操作(比如内建资源创建Pod对象的时候,会触发选择节点,并在节点创建容器),这就是后面对应的controller的要做事情。

    相关文章

      网友评论

          本文标题:k8s中自定资源(CRD)的使用

          本文链接:https://www.haomeiwen.com/subject/mtitvltx.html