系列文章目录
文章目录
- 系列文章目录
- 前言
- 一、CRD操作命令
- 1.1 定义一种资源并查看
- 1.2 使用刚刚定义的资源
- 二、CRD效果演示
- 2.1 实践:定义一种资源并查看
- 2.2 实践:使用刚刚定义的资源
- 总结
前言
CRD就是自定义资源,就是自定义 apiVersion+Kind
一、CRD操作命令
1.1 定义一种资源并查看
当你创建新的 CustomResourceDefinition(CRD)时,Kubernetes API 服务器会为你所指定的每个版本生成一个新的 RESTful 资源路径。 基于 CRD 对象所创建的自定义资源可以是名字空间作用域的,也可以是集群作用域的, 取决于 CRD 对象 spec.scope 字段的设置。
执行创建
这样一个新的受名字空间约束的 RESTful API 端点会被创建在:
对象的 kind 将是来自你上面创建时 所用的 spec 中指定的 CronTab。
Kubernetes(k8s)API 的 操作可以参考我之前的文章:Kubernetes(k8s)API Server详解
1.2 使用刚刚定义的资源
在创建了 CustomResourceDefinition 对象之后,你可以创建定制对象(Custom Objects)。定制对象可以包含定制字段。这些字段可以包含任意的 JSON 数据。 在下面的例子中,在类别为 CronTab 的定制对象中,设置了cronSpec 和 image 定制字段。类别 CronTab 来自你在上面所创建的 CRD 的规约。
并执行创建命令:
你就可以使用 kubectl 来管理你的 CronTab 对象了。例如:
3)删除 CustomResourceDefinition
当你删除某 CustomResourceDefinition 时,服务器会卸载其 RESTful API 端点,并删除服务器上存储的所有定制对象。
二、CRD效果演示
2.1 实践:定义一种资源并查看
步骤1:定义资源
步骤2:应用资源
步骤3:查看资源
在外网访问,要么打开匿名权限,要么手动添加一个secret,操作方式见博客: https://192.168.100.152:6443/apis/stable.example.com/v1/
2.2 实践:使用刚刚定义的资源
restful接口:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/
kubectl命令:https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#patch
swagger:https://raw.githubusercontent.com/kubernetes/kubernetes/master/api/openapi-spec/swagger.json
https://192.168.100.152:6443/apis/apps/v1/namespaces/default/deployments
https://192.168.100.152:6443/apis/stable.example.com/v1/namespaces/default/crontabs
总结
很简单,照着操作就好了,理解就好了,一种资源就是 apiVersion + name + metadata+ spec,创建完成之后,在postman/外网能访问到,就算成功了。
唯一注意的是 kind: CustomResourceDefinition 这个好像要在比较高的版本里面才能用,我用 k8s 1.14 不行,用 k8s 1.21 才完成的。
天天打码,天天进步!!