Kubernetes crd.yaml和crd-status-subresource.yaml之间有什么区别?

Kubernetes crd.yaml和crd-status-subresource.yaml之间有什么区别?,kubernetes,kubernetes-custom-resources,Kubernetes,Kubernetes Custom Resources,我是新的自定义控制器,并试图了解这一点。我已经开始引用示例控制器,但无法找到示例文件之间的差异或正确理解 除了crd-status-subresource.yaml中的以下部分之外,这两个文件看起来与我相似 subresources: status: {} 有人能帮忙或提出建议吗 同样,这里是Kubernetes控制器的一个快速总结: 它监视特定状态(通常是可以使用CustomResourceDefinitions(CRD)定义的CustomResources(CRs)),并根据您在代

我是新的自定义控制器,并试图了解这一点。我已经开始引用示例控制器,但无法找到示例文件之间的差异或正确理解

  • 除了crd-status-subresource.yaml中的以下部分之外,这两个文件看起来与我相似

    subresources:
      status: {}
    

    有人能帮忙或提出建议吗

    同样,这里是Kubernetes控制器的一个快速总结:

    它监视特定状态(通常是可以使用CustomResourceDefinitions(CRD)定义的CustomResources(CRs)),并根据您在代码中定义的规则执行操作

    我已经开始引用示例控制器,但无法找到示例文件之间的差异或正确理解

    您所指的文件与您已经指出的文件没有任何区别,因此确实没有什么可查找的了

    如果详细查看本地Kubernetes对象,例如Pod(
    kubectl get Pod-o yaml
    ),您将看到它有一个
    .status
    字段,该字段仅存储附加信息。通过启用
    status
    子资源,您告诉Kubernetes创建一个CR,然后您可以继续并通过访问一个新的REST API路径来编辑额外的
    .status
    字段:
    /API///namespace/*//status
    。如果你不需要它,那么就不要定义它,就这样

    至于为什么要添加
    状态
    子资源,这取决于CR的使用情况。有时,您只是希望有一个更详细的字段来存储信息,以便用户查看,有时,您告诉控制器从那里获取数据,因为它代表对象的当前状态。只要看一看Pods
    .status
    字段,就会看到一些很好的附加数据,比如Pod是否准备就绪、容器的信息等等


    话虽如此,
    状态
    并不是唯一的子资源。您可能还希望查看
    比例
    子资源(取决于用例)。有关子资源的更多信息,您可以参考:

    Kubernetes文档是否足够作为起点?@DavidMaze Hi,感谢您参考此文档,但根据文档,似乎在crd-status-subresources.yaml中启用了子资源状态,但在crd.yaml中未启用。还有其他区别吗?