跳转到节

什么是Kubernetes操作员?

复制URL

Red Hat被提名为2023年Gartner®Magic Quadrant™的领导者

在Gartner 2023集装箱管理幻方图中,Red Hat在执行能力方面排名最高,在实现愿景方面排名最靠前。

A类Kubernetes操作员是一种打包、部署和管理Kubernetes应用程序的方法。Kubernetes应用程序都部署在库伯内特斯并使用Kubernetes API(应用程序编程接口)和kubectl工具进行管理。

Kubernetes操作符是一个特定于应用程序的控制器,它扩展了KubernetesAPI的功能,以代表Kubernete用户创建、配置和管理复杂应用程序的实例。

它建立在基本的Kubernetes资源和控制器概念之上,但包括领域或应用程序特定的知识,以自动化其管理的软件的整个生命周期。 

在Kubernetes中,控制平面的控制器执行控制循环,反复将集群的期望状态与其实际状态进行比较。如果集群的实际状态与所需状态不匹配,则控制器会采取措施解决问题。 

操作符是一个自定义Kubernetes控制器,它使用自定义资源(CR)来管理应用程序及其组件。高级配置和设置由用户在CR中提供。Kubernetes操作员根据嵌入操作员逻辑的最佳实践,将高级指令转换为低级操作。

自定义资源是美国石油学会Kubernetes的扩展机制。自定义资源定义(CRD)定义CR并列出操作员用户可用的所有配置。 

Kubernetes操作符监视CR类型并采取特定于应用程序的操作,以使当前状态与该资源中所需的状态相匹配。

Kubernetes操作符通过自定义资源定义引入新的对象类型。自定义资源定义可以像内置对象一样由Kubernetes API处理,包括通过kubectl进行交互以及包含在基于角色的访问控制(RBAC)策略中。

Kubernetes运营商继续监控其应用程序的运行,并可以自动备份数据、从故障中恢复,以及随着时间的推移升级应用程序。 

Kubernetes操作员执行的操作几乎可以包括任何内容:扩展复杂的应用程序、应用程序版本升级,甚至使用专用硬件管理计算集群中节点的内核模块。

了解更多有关Kubernetes操作员如何工作的信息,包括实际示例,以及如何使用Operator Framework和软件开发工具包构建它们。

Kubernetes可以管理和扩展无状态应用程序,例如web应用程序、移动后端和API服务,而无需了解这些应用程序的操作方式。Kubernetes的内置功能旨在轻松处理这些任务。

然而,有状态应用程序,如数据库和监控系统,需要Kubernetes没有的额外的特定于域的知识。它需要这些知识来扩展、升级和重新配置这些应用程序。

Kubernetes操作符将此特定领域的知识编码到Kubernete扩展中,以便它可以管理和自动化应用程序的生命周期。 

通过消除困难的手动应用程序管理任务,Kubernetes操作员使这些过程具有可扩展性、可重复性和标准化。

对于应用程序开发人员来说,运营商可以更轻松地部署和运行其应用程序所依赖的基础服务。 

对于基础架构工程师和供应商,运营商提供了一致的方式在Kubernetes集群并通过识别和纠正应用程序问题来减轻支持负担。 

除了Kubernetes提供的基本自动化功能外,操作员还允许您编写代码来自动化任务。对于遵循DevOps或现场可靠性工程该方法中,运营商被开发用于将SRE实践应用于Kubernetes。 

操作员模式的功能是捕获操作员如何管理服务的意图。操作员需要完全了解应用程序或服务的工作方式、部署方式以及如何修复可能出现的任何问题。

现场可靠性工程师或操作团队通常编写软件来管理应用程序,但操作员的设计目的是获取人类操作知识并将其编码到软件中,以管理和部署Kubernetes工作负载,同时消除手动任务。 

操作员最好由安装、运行和升级特定应用程序的业务逻辑方面的专家构建。

创建操作员通常从自动化应用程序的安装和自助供应开始,然后是更复杂的自动化功能。

还有一个Kubernetes操作员软件开发工具包(SDK),可以帮助您开发自己的操作员。SDK提供了构建、测试和打包操作符的工具,可以选择使用Helm图表、Ansible Playbooks或Golang创建操作符

Operator Framework是一个开放源码项目,它提供了开发人员和运行时Kubernetes工具,使您能够加速操作员的开发。

运营商框架包括:

  • 操作员SDK:使开发人员能够基于其专业知识构建操作员,而无需了解Kubernetes API的复杂性。
  • 操作员生命周期管理:监督跨Kubernetes集群运行的所有运营商的安装、更新和生命周期管理。
  • 操作员计量:为提供专业服务的运营商启用使用情况报告。

Red Hat®OpenShift®是一个企业级的Kubernetes容器平台,具有全栈自动化操作来管理混合云多云部署。

Red Hat OpenShift使用Kubernetes操作符自动运行整个平台,同时通过Kubernete对象以本机方式公开配置,从而实现快速安装和频繁可靠的更新。 

包含在Red Hat OpenShift中的是嵌入式OperatorHub,它是软件供应商和开源项目的认证运营商注册中心。在OperatorHub中,您可以浏览并安装一个操作员库,该库已验证可与Red Hat OpenShift一起使用,并且已打包以便于生命周期管理。

继续阅读

第条

什么是Linux容器?

Linux容器是一组与系统隔离的进程,从一个不同的映像中运行,该映像提供了支持进程所需的所有文件。

第条

容器与虚拟机

Linux容器和虚拟机(VM)是组合了各种IT组件并将其与系统其余部分隔离的打包计算环境。

第条

什么是容器编排?

容器编排自动化了容器的部署、管理、扩展和联网。

有关容器的详细信息

产品

一个企业应用程序平台,具有一组经过测试的统一服务,可根据您选择的基础设施将应用程序推向市场。

资源

播客

《命令行英雄》第1季第5集:
“集装箱德比”

电子图书

通过混合云和容器提高灵活性

培训

免费培训课程

使用Red Hat运行容器技术概述

免费培训课程

容器、Kubernetes和Red Hat OpenShift技术概述

免费培训课程

使用微服务架构开发云计算应用程序