Kubernetes Operator是什么?
简介
我参加了最近的Kubernetes 新手东京第27次活动。在那次活动上,有一个关于Kubernetes Operator的LT,我对此产生了兴趣,所以我想将我所学到的东西输出出来。关于Kubernetes Operator,因为我是从零开始学习的,如果有错误的地方,请多多包涵。
什么是Kubernetes Operator?
Kubernetes Operator是在Kubernetes官方文档中被定义为”Operator模式”。
Operator模式是一种使用自定义资源(扩展Kubernetes API)来对Kubernetes进行软件扩展的机制。
Kubernetes的Operator模式可以在不修改Kubernetes源代码的情况下扩展集群的行为。
为实现这种“Operator模式”,我们将用户自定义资源的“定义”称为“自定义资源定义/自定义资源”,将处理用户定义的自定义资源的组件称为“Operator(自定义控制器)”。
为什么需要Kubernetes Operator?
Kubernetes Operator是一种必不可少的工具,能够实现自动化和效率化复杂应用程序,并在Kubernetes上以可扩展方式运行应用程序。它自动化应用程序的生命周期管理和运维任务,确保一致性。从而实现运维简化和减少人为错误,提高Kubernetes集群的运营。
操作者的机制 zhě de jī zhì)
自定义资源定义(CRD)
操作者使用CRD来定义应用程序或服务的自定义资源类型。这样一来,就可以向Kubernetes API中添加新的资源类型,并使Kubernetes能够对特定应用程序进行操作。
操作员(自定义控制器)
操作者与CRD协作,监测特定的自定义资源,检测状态变化或触发操作。操作者以代码形式编写,根据自定义资源的状态执行应用程序的实际操作(部署、扩展、备份等)。
自定义资源(CR)
用户可以创建自定义资源的应用程序和服务,以供运算符使用。这样,Kubernetes编排就可以支持自定义应用程序。CR指定了应用程序的要求和配置。
运营商的部署
Operator本身部署在Kubernetes集群中,与Kubernetes API进行协作。Operator会监控自定义资源,并执行在CRD中定义的特定于应用程序的操作。
Operator是一款强大的工具,可以自动化应用程序和服务的编排,并简化运维工作。通过使用CRD和Controller的组合,可以高效地在Kubernetes上管理复杂的应用程序。
Kubernetes Operator 的实现方法
使用以下这种第三方制作的工具,似乎能够相对简单地进行实施。(也有其他的实施方法)
-
- Operator SDK
- Kubebuilder
使用Go语言的kubernetes/client-go包,可以在接触k8s API的同时进行全新的实现。
我对此有一些想法
对此我有一些感受
这让我有所感触
我对此有些想法和感悟
对此我有一些感想和触动
关于Kubernetes Operator,在LT会上了解到的内容以及额外进行的研究,我简单总结如下。下次希望能够实际在本地运行并进行输出。