在谈operater之前,我觉得有必要先回顾下k8s资源。k8s中将所有的资源抽象为内存,资源实例化之后称之为对象。资源大体上分为两大块:
1.内资资源类型:
- 工作负载型资源:Pod、Deployment、DeamonSet、ReplicationController(1.11版本后废弃)、ReplicaSet、StatefulSet、Job、CronJob
- 服务发现及负载均衡型资源:Service、Ingress
- 配置与存储型资源:Volume(存储卷)、CSI(容器存储接口,可以扩展各种第三方存储)
- 特殊类型存储卷资源:ConfigMap(当配置中心来使用的资源类型)、Secret(保存敏感信息的存储类型)、DownwarAPI(把外部环境中的信息传输给容器)
- 集群型资源:Namespace、Node、Role、ClusterRole、ClusterRoleBinding、RoleBinding
- 元数据型资源:PodTemplate、LimitRange、HPA
- 自定义资源类型(CRD)
自定义资源类型,顾名思义就是定制化的资源类型,是结合自己实际需要自行创造的资源类型。
实际上,组合运用k8s内置资源类型基本能满足我们的需求,那么为何还需要CRD这种资源类型呢?
常言道,存在即合理。k8s内置资源毕竟是已经写好的统一模版,有时候也许并不能很好的满足我们的需求,所以我们才需要CRD这种资源类型。就像你安装nginx的时候,可以使用yum安装,也可以二进制编译安装。

Kubernetes Operator扩展了内置资源类型,通过Custom Resource和custom controller实现自定义应用管理。它允许创建和管理复杂的应用流程,如简化部署Pod和Service的过程,成为处理有状态应用故障状态的有效工具。构建Operator需要定义CR spec、实现custom controller和编写协调代码。
最低0.47元/天 解锁文章
890

被折叠的 条评论
为什么被折叠?



