https://coreos.com/blog/introducing-operators.html

Site Reliability Engineer(SRE)是通过编写软件来运行应用程序的人员。 他们是工程师,开发人员,知道如何专门为特定应用领域开发软件。 由此产生的软件具有编程到其中的应用程序的操作领域知识。

我们的团队一直忙于Kubernetes社区设计和实现这一概念,以便在Kubernetes上可靠地创建,配置和管理复杂的应用程序实例。

我们将这类新的软件称为Operators。 Operator是一个特定于应用程序的控制器,它扩展了Kubernetes API,以代表Kubernetes用户创建,配置和管理复杂有状态应用程序的实例。 它建立在基本的Kubernetes resource and controller概念的基础上,但包括域或特定于应用程序的知识,以自动执行常见任务。

Stateless is Easy, Stateful is Hard

使用Kubernetes,开箱即用地管理和扩展Web应用程序,移动后端和API服务相对容易。为什么?由于这些应用程序通常是无状态的,因此基本的Kubernetes API(如deployments)可以在没有其他知识的情况下从故障中扩展和恢复。

更大的挑战是管理有状态的应用程序,如数据库,缓存和监控系统。这些系统需要应用领域知识才能正确扩展,升级和重新配置,同时防止数据丢失或不可用。我们希望将这种特定于应用程序的操作知识编码到软件中,利用功能强大的Kubernetes抽象来正确运行和管理应用程序。

一个operator是对该领域知识进行编码并通过第三方资源机制扩展Kubernetes API的软件,使用户能够创建,配置和管理应用程序。与Kubernetes的内置资源一样,operator不仅管理应用程序的单个实例,而是管理群集中的多个实例。

为了演示运行代码中的Operator概念,我们今天有两个具体的例子要宣布为开源项目:

etcd Operator创建,配置和管理etcd集群。 etcd是由CoreOS引入的可靠的分布式键值存储,用于维护分布式系统中最关键的数据,是Kubernetes本身的主要配置数据存储。

https://coreos.com/blog/introducing-the-etcd-operator.html

Prometheus Operator创建,配置和管理Prometheus监控实例。 Prometheus是一个功能强大的监控,指标和警报工具,以及CoreOS团队支持的Cloud Native Computing Foundation(CNCF)项目。

https://coreos.com/blog/the-prometheus-operator.html

operators基于两个核心的Kubernetes概念:Resources和Controllers。 例如,内置的ReplicaSet资源允许用户设置要运行的所需数量的Pod,而Kubernetes中的controllers通过创建或删除正在运行的Pod来确保ReplicaSet资源中设置的所需状态保持为真。 Kubernetes中有许多以这种方式工作的基本controllers和resources,包括Service,Deployments和Daemon Sets。

Example 1a: A single pod is running, and the user updates the desired Pod count to 3.

Example 1b: A few moments later and controllers inside of Kubernetes have created new Pods to meet the user's request.

operator基于Kubernetes的基本资源和控制器概念,并添加一组知识或配置,允许操作员执行常见的应用程序任务。 例如,当手动扩展etcd集群时,用户必须执行许多步骤:为新的etcd成员创建DNS名称,启动新的etcd实例,然后使用etcd管理工具(etcdctl成员添加)来告诉 关于这个新成员的现有集群。 而使用etcd operator,用户可以简单地将etcd簇大小字段增加1。

Example 2: A backup is triggered by a user with kubectl

operator可能处理的复杂管理任务的其他示例包括应用程序升级的安全协调,备份到异地存储的配置,通过本机Kubernetes API的服务发现,应用程序TLS证书配置和灾难恢复。

k8s operator的更多相关文章

  1. 使用k8s operator安装和维护etcd集群

    关于Kubernetes Operator这个新生事物,可以参考下文来了解这一技术的来龙去脉: https://yq.aliyun.com/articles/685522?utm_content=g_ ...

  2. 在Kubernetes上运行有状态应用:从StatefulSet到Operator

    一开始Kubernetes只是被设计用来运行无状态应用,直到在1.5版本中才添加了StatefulSet控制器用于支持有状态应用,但它直到1.9版本才正式可用.本文将介绍有状态和无状态应用,一个通过K ...

  3. 基于 K8s 做应用发布的工具那么多, 阿里为啥选择灰姑娘般的 Tekton ?

    作者 | 邓洪超,阿里云容器平台工程师, Kubernetes Operator 第二人,云原生应用标准交付与管理领域知名技术专家   导读:近年来,越来越多专门给 Kubernetes 做应用发布的 ...

  4. 容器编排系统K8s之StatefulSet控制器

    前文我们聊到了k8s的configmap和secret资源的说明和相关使用示例,回顾请参考:https://www.cnblogs.com/qiuhom-1874/p/14194944.html:今天 ...

  5. [源码解析] 深度学习分布式训练框架 horovod (20) --- Elastic Training Operator

    [源码解析] 深度学习分布式训练框架 horovod (20) --- Elastic Training Operator 目录 [源码解析] 深度学习分布式训练框架 horovod (20) --- ...

  6. 在 Nebula K8s 集群中使用 nebula-spark-connector 和 nebula-algorithm

    本文首发于 Nebula Graph Community 公众号 解决思路 解决 K8s 部署 Nebula Graph 集群后连接不上集群问题最方便的方法是将 nebula-algorithm / ...

  7. 开源 serverless 产品原理剖析 - Kubeless

    背景 Serverless 架构的出现让开发者不用过多地考虑传统的服务器采购.硬件运维.网络拓扑.资源扩容等问题,可以将更多的精力放在业务的拓展和创新上. 随着 serverless 概念的深入人心, ...

  8. CNCF 宣布成立应用交付领域小组,正式开启云原生应用时代

    作者|赵钰莹 作为云原生领域的顶级开源社区, Cloud Native Computing Foundation (云原生基金会,以下简称 CNCF)近日宣布成立 Application Delive ...

  9. 【译】Kubernetes监控实践(2):可行监控方案之Prometheus和Sensu

    本文介绍两个可行的K8s监控方案:Prometheus和Sensu.两个方案都能全面提供系统级的监控数据,帮助开发人员跟踪K8s关键组件的性能.定位故障.接收预警. 拓展阅读:Kubernetes监控 ...

随机推荐

  1. pycharm的各种设置,配置

      http://blog.csdn.net/pipisorry/article/details/39909057# 目录(?)[+] pycharm学习技巧 Learning tips PyChar ...

  2. 第十届蓝桥杯JavaB组总结

    去年参加了第九届蓝桥杯C/C++B组,很捞,做了大概5道题,就好像就做对了2道结果填空题,编程题只做了一个(只通过了部分测试数据),最后拿了个省三,但是班上那些平时没有认真准备的都拿了省二 今年想好好 ...

  3. glob获取指定目录下的东西+更改工作目录

    一:不更改工作目录 import glob path = 'image/imgs/*.jpg' # 正则匹配 指定路径 file_path = glob.glob(path) # 即可获取所有jpg的 ...

  4. vmware三种网络模式:桥接模式|仅主机|NAT模式

    VMware 网络模式 1. Bridged(桥接)桥接模式下,宿主机物理网卡(主机网卡)和虚拟网卡通过 VMnet0 虚拟交换机进行桥接,物理网卡和虚拟网卡在拓扑图上处于同等地位,物理网卡和虚拟网卡 ...

  5. Git工作流基础简介【与产品经理.jpg】

    基于可视化界面的操作可使用Sourcetree这个软件进行操作. 下面将描绘的几个命令主要是 git init git add git commit git status git reset HEAD ...

  6. 如何利用Social Listening从社会化媒体中“提炼”有价值的信息?

    本文转自知乎 作者:苏格兰折耳喵 ----------------------------------------------------- 在本文中,笔者将会介绍大数据分析主要的处对象---社会化媒 ...

  7. Maven下载私服上的jar包

    1.配置M2_HOME/conf/settions.xml <server> <id>maven-public</id> <username>admin ...

  8. Timer TimerTask schedule scheduleAtFixedRate

    jdk 自带的 timer 框架是有缺陷的, 其功能简单,而且有时候它的api 不好理解. import java.util.Date; import java.util.Timer; import ...

  9. C# NPOI生成Excel文档(简单样式)

    效果图: 代码:  /// <summary> /// 导出Excel /// </summary> /// <param name="DeptId" ...

  10. mezzanine的page表

    class Orderable(with_metaclass(OrderableBase, models.Model)): """ Abstract model that ...