Helm vs Operator

Kubernetes提供声明式API对标准对象进行生命周期管理,例如Deployment,Pod,Service以及ConfigMap等。基于这种原子能力,开发人员可以自由组合各种对象,以Yaml,Json等格式文件进行定义,构建自己的业务应用。

随着应用自身的复杂度增加,依赖条件变多,部署环境的多样性,这种原始的声明式API使用方式显得低效且不够灵活;另外,在应用与声明式API之间缺少一个构建标准,也不利于应用的共享,分发,以及应用市场的发展。Helm和Operator应运而生,在声明式API之上进行了一层抽象和封装,成为解决这种困境的两个主要流派。

Helm Chart

Helm是基于Kubernetes的应用包管理工具,可实现应用程序封装、版本管理、依赖检查、应用分发,是对容器应用所需资源组件进行集中管理,并通过模板化和配置分离提高声明式API的开发和使用效率。Chart包则是应用的载体,实现了应用的分发和共享,支撑了应用市场的发展。

Operator

Operator主要包含CRD和Controller两个部分:

  • CRD是在Kubernetes的标准对象之上构建一层直接面向应用的扩展对象,例如Mysql Operator提供的InnoDBCluster和MySQLBackup这两个扩展对象。
  • Controller是指自定义控制器,以Deployment的形式在Kubernetes中运行,监听CRD的配置变化,并转换成标准对象进行实现。控制器自动化智能化的灵活实现应用生命周期管理能力以及运维能力,是Site Reliability Engineering (SRE)思想在容器集群领域的一个落地实践。

Helm与Operator的比较

Helm和Operator从不同角度衔接了应用和声明式API,两者之间有着明显的差异,下面从不同角度对Helm以及Operator进行了一个比较:

Helm Operator
资源类型 标准对象,自定义对象 自定义对象
编排能力 支持应用全生命周期管理 支持应用全生命周期管理
运维能力 手工,较弱 自动故障恢复及异常处理
设计理念 资源模板化,配置分离 复杂应用的自动化管理
实现方式 传统镜像 k8s控制器
实现难度 较低 偏高
灵活性 高度灵活修改yaml文件 依赖控制程序,不太灵活
适宜场景 通用,普适 有状态服务,较复杂应用场景

关于应用场景方面,其实不太好区分,因为这两项技术本身就致力于解决不同的问题:

  • Helm本质是包管理工具,适合于安装标准的通用的应用程序。
  • Operator本质是一种设计模式,强项在于支持有状态应用的复杂生命周期管理,将运维过程中的知识和方法固化在控制器中,实现自动化运维。

Helm vs Operator相关推荐

  1. Kubernetes CRD开发工具Operator-SDK简介

    原文连接:https://blog.csdn.net/weixin_33918114/article/details/92211707 概览 原文来自:https://github.com/opera ...

  2. 2021 阿里云容器服务年度盘点:企业级容器应用变化和技术趋势观察

    作者:溪洋 在云原生浪潮的推动下,容器和 Kubernetes 技术和应用发展迅猛.最近,云原生计算基金会 CNCF 发布了与 SlashData 联手撰写的 最新版<云原生开发现状报告> ...

  3. 直播回顾|论道原生:云原生时代的中间件

    " 在基础软件领域,中间件与操作系统.数据库并列为三大基础软件.中间件 (Middleware) 是处于操作系统和应用程序之间的一大类软件的统称,主要管理计算资源和网络通信,可以通过屏蔽底层 ...

  4. 10. Kubernetes的日志与监控

    Kubernetes的日志处理 日志对比: 传统服务的日志:固定机器.固定目录不受重启影响不用关注stdout.stderrk8s服务的日志:节点不固定重启服务会漂移需要关注stdout.stderr ...

  5. 互联网摸鱼日报(2023-02-26)

    互联网摸鱼日报(2023-02-26) InfoQ 热门话题 迁移工具 Air2phin 宣布开源,2 步迁移 Airflow 至 Dolphinscheduler 专访奇安信董国伟博士:目前开源安全 ...

  6. 解读云原生的2021:抢占技术C位,迎来落地大爆发

    来源 | InfoQ 作者 | 褚杏娟 2021年,云原生迎来黄金时代 本文是"2021 InfoQ 年度技术盘点与展望"系列文章,重点聚焦云原生领域在 2021 年的重要进展.动 ...

  7. kubernets controller 和 CRD的扩展

    sample git repo 各个组件开发指导 operator 介绍 此图来自谷歌员工的实践介绍 client-go的使用和源码分析 (dlv) p pods *k8s.io/api/core/v ...

  8. Kubernetes生态,从繁荣走向碎片化

    云计算的拐点已至进入成熟期,云原生成为驱动业务发展的动力引擎,作为新型基础设施,不仅是企业数字化转型的最佳技术路径,同时也成为兴领域人工智能.大数据.边缘计算.5G 等底层平台基础设施.随着云原生技术 ...

  9. 开源简史基础:CNCF与全景图Landscape

    这篇文章介绍一下在云原生领域极为重要的一个组织CNCF,以及CNCF目前最新的Landscape的全景图的详细信息. 基本概念 CNCF是什么 什么是云原生(Cloud Native) TOC(Tec ...

  10. 云原生生态周报 Vol. 19 | Helm 推荐用户转向 V3

    作者| 禅鸣.忠源.天元.进超.元毅 业界要闻 Helm 官方推荐用户迁移到 V3 版本 Helm 官方发布博客,指导用户从 v2 迁移到 v3,这标志着官方开始正式推进 helm 从 v2 转向 v ...

最新文章

  1. 基于软件开发对嵌入式开发的思考
  2. Docker: Failed to get D-Bus connection: No connection to service
  3. iOS7 UIKit Dynamics 的初步研究
  4. json相关,浏览器打开json格式的api接口时,进行格式化,chrome插件
  5. 交公粮了:国庆在家我都逛哪些技术网站?
  6. dj鲜生-34-存档-用户中心地址页重复查询默认地址的优化-利用自定义模型管理器的方法来实现
  7. java http 双向认证_HttpsURLConnection使用,并实现双向认证
  8. 项目周期一般多久_收藏!布袋除尘器清灰周期一般多久合适?
  9. Xcode10适配之libstdc++.6.0.9.tdb
  10. java豆瓣查书api_如何通过豆瓣API获取图书和电影列表
  11. win10管理员权限怎么获得_实用技巧:如何在win10中安装没有管理员权限的软件...
  12. 1054: 【排队买票】
  13. 最长子序列DP和二分法
  14. 589. N 叉树的前序遍历(javascript)589. N-ary Tree Preorder Traversal
  15. iOS网络监测如何区分2、3、4G(Reachability)
  16. shell学习杂记(-)
  17. 为什么事件的最早发生时间是源点到顶点的最长路径长度?(关键路径详解)
  18. 计算机等级良好什么意思,计算机二级多少分算过?
  19. 怎样判断c语言编程错误,C语言编程出错
  20. tlwdr5660间歇性掉线_tplink路由器频繁掉线的原因及解决办法

热门文章

  1. js 数字不足位数补0
  2. java short 转char_byte,short,char的类型转换
  3. thermal系列(4)-Thermal Core框架
  4. Python练习题——第六题:编写函数计算弧长的计算公式。弧长计算公式是一个数学公式,为L=n(圆心角度数)× π×2 r(半径)/360(角度制)。其中n是圆心角度数,r是半径,L是圆心角弧长。
  5. HC Bridge容器网络模式分享
  6. WireShark基本使用(5)第 5 章 文件输入/输出及打印
  7. mongo配置项说明
  8. JDK的可视化工具——Java监视与管理控制台(JConsole)。
  9. zzuli OJ 2331:小新同学的智商
  10. chrome浏览器怎么把整个网页截图保存