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. parameterized之unittest参数化

    unittest没有想testNG那么方便,可以进行参数化,但是有一个第三方库可是实现参数化 安装 pip install parameterized 该库可以在python的所有单元测试框架中使用 ...

  2. python3.5安装Numpy、mayploylib、opencv等额外库

    安装Python很简单,但是安装额外的扩展库就好麻烦,没有了第三方库的Python就是一个鸡肋~~  我们现在安装NumPy库 1. 首先这里假设你已经安装了Python了,不会的去看我的另一篇博文( ...

  3. Shell流程控制(if,else,case,while,for,until)

    1.条件选择 1.1.if 语句 语法十分简单 #!/bin/bash MATH_SCORES="$1" NAME="$2" if [ -z "${M ...

  4. TIDB资料收集

    https://github.com/pingcap/docs-cn https://github.com/pingcap/docs-cn/blob/master/op-guide/binary-de ...

  5. swt text 回车 defaultSelected

    今天试了一下SWT控件 TEXT 中的回车事件,使用 defaultSelected 进行处理,结果怎么也不能触发事件. 经过仔细排查,发现是TEXT选中了 wrap 的原因,毕竟如果是多行的话,肯定 ...

  6. javafx链接实现

    方式一: Desktop.getDesktop().browse(new URI(manualUrl)); 在linux环境bug 方式二: 转载自:https://stackoverflow.com ...

  7. remote staging type or host is not specified

    idea在tomcat配置中显示此错误 配置下面选上就好了

  8. 33. 完全卸载oracle11g步骤

    完全卸载oracle11g步骤:1. 开始->设置->控制面板->管理工具->服务 停止所有Oracle服务.2. 开始->程序->Oracle - OraHome ...

  9. 微信支付开发出现redirect_uri参数错误的解决方法

    我们在进行微信支付开发的时候会遇到出现“redirect_uri参数错误”这种情况,怎么办呢?下面就是我总结出现这种“redirect_uri参数错误”的七种可能情况,以及解决方式. 1.可能原因①: ...

  10. centos7.5安装golang

    1.下载 [root@localhost bin]#wget https://dl.google.com/go/go1.10.2.linux-amd64.tar.gz [root@localhost ...