什么是Kubernetes CRD
什么是Kubernetes CRD?
Kubernetes中的CRD代表自定义资源定义,允许我们在Kubernetes中创建自定义对象。通过它的帮助,我们可以轻松地在Kubernetes集群中创建自定义资源或对象,并且可以像正常或本地可用的Kubernetes对象一样使用它。这个CRD的概念是在Kubernetes 1.7中引入的,当我们想要将自己创建的对象添加到Kubernetes集群中以满足需求时,这非常有用。在本文中,我们将看到如何创建和注册我们的自定义对象到Kubernetes,并进行详细解释和内部工作以提高初学者的清晰度和理解。
使用自定义资源
正如我们已经讨论过的,CRD用于创建自定义资源,这为我们添加了很多用户,其中一些如下所述:
CRD用于创建自定义资源,其中包含以下几点:
- 运行CRD时,我们不需要任何额外的服务器;它可以由API独立处理。
- 它可以用任何语言编写,用户或我们不需要担心编程。
- 一旦创建了CRD,则不需要持续支持。如果出现任何大问题,则会被视为Kubernetes主节点升级。
- 使用此功能时,我们不需要维护多个版本的API,使用起来很容易。
- 当我们在公司内部使用此资源或作为小型开源项目的一部分时,它是最适合的。
考虑到以上所有观点,我们可以决定何时在Kubernetes中使用CRD,所有这些观点将帮助我们轻松地找出答案。
添加Kubernetes CRD 在Kubernetes中,我们有两种创建自定义资源的方法。让我们详细讨论每种方法,以便更好地理解,请参见下面:
- 制作使用CRD的一种方法,可以正常创建而无需编程。
- 我们拥有的第二种方法是API聚合,但是要使用此方法需要编程,并为我们提供对API创建和行为的更多控制,例如数据存储方式以及API不同版本之间的转换等。
CRD: Custom Resource Definition,此API允许我们创建自定义资源。它将根据我们提供的架构和名称为我们创建新的自定义资源。就存储而言,由Kubernetes服务器进行管理和处理。因此,这是在Kubernetes集群中创建自定义资源的一种方法,无需太多编程即可完成。
Kubernetes CRD的类型
如果我们谈论类型,那么没有特定的CRD类型,但是我们在Kubernetes中有自定义资源类型。它为我们提供了两种方式,可以在Kubernetes集群中轻松创建自定义资源,让我们更详细地了解它们的情况如下:
1)CRD即自定义资源定义:这是在Kubernetes中创建自定义资源的形式之一,我们不需要具备编程知识来创建它。我们可以创建CRD,删除它等等。我们遵循.yaml结构定义和少量命令即可创建它。
2)API聚合:这也是在Kubernetes中创建自定义资源的形式之一,但需要具备编程知识。它有点难以管理等等。
这两点我们已经在本文的前一部分中看到并讨论了,这里我们更多地谈论自定义资源定义,API聚合我们将在下一篇文章中讨论。
创建Kubernetes CRD对象和Kubernetes CRD示例
为了创建Kubernetes CRD,我们必须遵循标准的.yml文件,它将帮助我们创建CRD,这是标准的,应该是相同的,只有少量更改,让我们开始创建Kubernetes CRD,如下所示:
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
name: appconfigs.stable.example.com
spec:
group: stable.example.com
versions:
- name: v1
served: true
storage: true
scope: Namespaced
names:
plural: your_name
singular: appconfig
kind: AppConfig
shortNames:
- ac
现在我们需要仔细看一下每一行,以便更详细地了解这个 .yml 文件定义;
a) 在 yml 文件的前两行中,我们试图告诉它们我们正在创建一个自定义资源定义;‘metadata’ 是用来定义我们的 CRD 名称的关键字。
b) 我们在 ‘names’ 和 ‘plural’ 下定义了名称。
c) 现在我们可以定义 CRD 的组名,在这里我们使用 ‘Spec’ 属性来定义。在 ‘Spec’ 下,我们使用 ‘group’ 属性来定义它。
d) 现在我们可以使用 ‘version’ 属性来定义自定义资源定义的版本。’versions’ 本身就在 ‘Spec’ 属性下,定义为 ‘v1’。同时将 ‘storage’ 键设置为 ‘true’,这意味着这个版本将是我们的存储版本。
e) 在此之后,我们也设置了作用域。
f) 接着,我们也为自定义资源定义定义了复数和单数名称。
g) 它还为我们提供了定义 CRD 的 ‘shortNames’ 和 ‘kind’ 名称的规定,然后我们可以使用以下命令来创建它,
命令:
kubectl create -f crd.yaml
f) 在此之后,我们现在可以根据以下语法找到我们CRD的API端点,然后根据您的CRD文件的名称和配置进行相应的操作,以获得更好的清晰度,见下文:
例如:
/group name / version/namespaced/*/crd_name
现在要使用上面的CRD,我们必须使用以下.yml文件定义来表达它:
例如:
apiVersion: "we can give api version"
kind: ann=me of crd
name: this name
spec:
uri: "your uri"
Command: “command if any”
image: demo-image
通过以上的步骤,我们可以在 Kubernetes 中创建和使用自定义资源定义(CRD),可以按照上述的 .yml 文件定义来操作。
结论
到目前为止,我们已经学习了如何创建自定义资源定义,并将它们添加到Kubernetes集群中,并使用它们提供的所有功能。所有这些都可以通过命令行界面或Google客户端来完成。它易于使用,易于处理,由开发人员进行维护。请查看完整文章以更好地了解它。
常见问题FAQ
- 程序仅供学习研究,请勿用于非法用途,不得违反国家法律,否则后果自负,一切法律责任与本站无关。
- 请仔细阅读以上条款再购买,拍下即代表同意条款并遵守约定,谢谢大家支持理解!