6

深入理解 Kubernetes Operator

 3 years ago
source link: https://www.infoq.cn/article/GFri77dOXlacilLZ7LFu
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

本文要点:

  • Kubernetes API为所有云资源提供了单个集成点,以此来促进云原生技术的采用。

  • 有一些框架和库可以用来简化Operator的编写。支持多种语言,其中Go生态系统是最为成熟的。

  • 你可以为非自有的软件创建Operator。DevOps团队可能会通过这种方式来管理数据库或其他外部产品。

  • 难点不在于Operator本身,而是要学会理解它的行为。

多年来,Operator 一直是 Kubernetes 生态系统的重要组成部分。通过将管理界面移动到 Kubneretes API 中,带来了“单层玻璃”的体验。对于希望简化 kuberentes 原生应用程序的开发人员或者希望降低现有系统复杂性的 DevOps 工程师来说,Operator 可能是一个非常有吸引力的选择。但如何从头开始创建一个 Operator 呢?

深入理解 Operator

Operator 是什么?

如今,Operator 无处不在。数据库、云原生项目、任何需要在 Kubernetes 上部署或维护的复杂项目都用到了 Operator。CoreOS 在 2016 年首次引入了 Operator,将运维关注点转移到软件系统中。Operator 自动执行操作,例如,Operator 可以部署数据库实例、升级数据库版本或执行备份。然后,这些系统可以被测试,响应速度比人类工程师更快。

Operator 还通过使用自定义资源定义对 Kubenretes API 进行了扩展,将工具配置转移到了 API 中。这意味着 Kubenretes 本身就变成了“单层玻璃”。DevOps 工程师可以利用围绕 Kubernetes API 资源而构建的工具生态系统来管理和监控他们部署的应用程序:

  • 使用Kubernetes内置的基于角色的访问控制(RBAC)来修改授权和身份验证。

  • 使用“git ops”对生产变更进行可复制的部署和代码审查。

  • 使用基于开放策略代理(OPA)的安全工具在自定义资源上应用策略。

  • 使用Helm、Kustomize、ksonnet和Terraform等工具简化部署描述。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK