带你读《云原生应用开发 Operator原理与实践》第一章引言1.1云原生介绍(六)

1.1.4     云原生应用开发与管理

虽然 Kubernetes提供了 Pod、Deployment、Service、Configmap 等资源来抽象应用特征,并且通过编写 Yaml 文件来编排应用,但是这样的方式仍然不太可行,特别是在编写复杂应用时。同时,从应用生命周期来看,kubectlapply-fmyapp.yaml只是其中一个步骤,在实际的生产环境中,还需要进行应用的生命周期管理,例如,对应用进行升降级、版本管理、扩缩容、运维管理、配置管理等。

2015年,第一个尝试解决这些问题的管理工具Helm诞生。它受到Yum(Yellowdog Updater,Modified、APT(AdvancedPackagingTool、Homebrew等包管理工具的影响,通过将应用的部署模板压缩成包Chart,并标明版本号来管理、分发应用。它支持部署、更新、回滚、版本管理等功能,通过构建HelmRepository,允许查找、分享 HelmChart。

Helmisthebestwaytofind, andusesoftwarebuiltforKubernetes(摘自 Helm官网)。随着 Kubernetes的应用越来越广泛,很多复杂的有状态应用也逐渐使用Kubernetes

部署,这不是Helm 所擅长的。2016年,CoreOS 公司(2018 年被RedHat 收购)推出了Operator。它的核心理念是将日常的运维工作通过软件的方式内置到应用中,以满足业务应用的管理、监控、运维等需求。RedHatOpenshift官网这样描述Operator:

Automatethecreation,configuration,andmanagementofinstancesofKubernetesnativeapplications

例如,Operator可以将以下工作实现自动化。

(1)按需部署应用。

(2)备份、恢复应用的状态和数据。

(3)  有状态应用的升级,例如包含数据库Schema 变更的升级。

(4)  当应用不支持服务发现时,Operator可以将 KubernetesService暴露给应用。

(5)  在高可用测试中,Operator可以模拟 Kubernetes集群故障。

(6)  当分布式应用内部未实现选举功能时,Operator可以帮助应用实现选举。

2019年初,RedHat联合 AWS、Google、Microsoft等公司推出了 OperatorHub.io,类似于DockerHub,供开发者和用户分享、使用Operator(如图1-8所示)。目前已经有 180多款 Operator,涉及众多方面,如数据库、大数据、人工智能、监控、日志、网络、安全。在 GitHub上,也有大量优秀的Operator 开源方案,可以说,Operator 已经成为分布式应用在 Kubernetes集群上部署的首选方案。


 

 

带你读《云原生应用开发 Operator原理与实践》第一章引言1.1云原生介绍(六)

 

图 1—8OperatorHub.o

 

本书将对 Operator进行深度分析和实践, 帮助大家快速掌握使用 Operator编写Kubernetes-native应用的方法。

上一篇:工信部将开展电信和互联网行业网络安全试点示范工作


下一篇:纷享销客助力上海医疗器械行业互联网+