k8s operator
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的更多相关文章
- 使用k8s operator安装和维护etcd集群
关于Kubernetes Operator这个新生事物,可以参考下文来了解这一技术的来龙去脉: https://yq.aliyun.com/articles/685522?utm_content=g_ ...
- 在Kubernetes上运行有状态应用:从StatefulSet到Operator
一开始Kubernetes只是被设计用来运行无状态应用,直到在1.5版本中才添加了StatefulSet控制器用于支持有状态应用,但它直到1.9版本才正式可用.本文将介绍有状态和无状态应用,一个通过K ...
- 基于 K8s 做应用发布的工具那么多, 阿里为啥选择灰姑娘般的 Tekton ?
作者 | 邓洪超,阿里云容器平台工程师, Kubernetes Operator 第二人,云原生应用标准交付与管理领域知名技术专家 导读:近年来,越来越多专门给 Kubernetes 做应用发布的 ...
- 容器编排系统K8s之StatefulSet控制器
前文我们聊到了k8s的configmap和secret资源的说明和相关使用示例,回顾请参考:https://www.cnblogs.com/qiuhom-1874/p/14194944.html:今天 ...
- [源码解析] 深度学习分布式训练框架 horovod (20) --- Elastic Training Operator
[源码解析] 深度学习分布式训练框架 horovod (20) --- Elastic Training Operator 目录 [源码解析] 深度学习分布式训练框架 horovod (20) --- ...
- 在 Nebula K8s 集群中使用 nebula-spark-connector 和 nebula-algorithm
本文首发于 Nebula Graph Community 公众号 解决思路 解决 K8s 部署 Nebula Graph 集群后连接不上集群问题最方便的方法是将 nebula-algorithm / ...
- 开源 serverless 产品原理剖析 - Kubeless
背景 Serverless 架构的出现让开发者不用过多地考虑传统的服务器采购.硬件运维.网络拓扑.资源扩容等问题,可以将更多的精力放在业务的拓展和创新上. 随着 serverless 概念的深入人心, ...
- CNCF 宣布成立应用交付领域小组,正式开启云原生应用时代
作者|赵钰莹 作为云原生领域的顶级开源社区, Cloud Native Computing Foundation (云原生基金会,以下简称 CNCF)近日宣布成立 Application Delive ...
- 【译】Kubernetes监控实践(2):可行监控方案之Prometheus和Sensu
本文介绍两个可行的K8s监控方案:Prometheus和Sensu.两个方案都能全面提供系统级的监控数据,帮助开发人员跟踪K8s关键组件的性能.定位故障.接收预警. 拓展阅读:Kubernetes监控 ...
随机推荐
- java 模拟浏览器发送post请求
java使用URLConnection发送post请求 /** * 向指定 URL 发送POST方法的请求 * * @param url * 发送请求的 URL * @param param * 请求 ...
- crawlspider 多分页处理
提问:如果想要通过爬虫程序去爬取”糗百“全站数据新闻数据的话,有几种实现方法? 方法一:基于Scrapy框架中的Spider的递归爬取进行实现(Request模块递归回调parse方法). 方法二:基 ...
- is和==的区别
is 比较的是内存地址 == 比较的是内容 当两个变量指向同一个对象的时候. is是True, ==也是True
- 微信小程序笔记<三>入口app.js —— 注册小程序
小程序开发框架在逻辑层使用的语言就是JavaScript,所以想玩小程序JavaScript的基本功一定要扎实.但小程序基于js做了一些修改,以方便开发者更方便的使用微信的一些功能,使得小程序更好的贴 ...
- javafx链接实现
方式一: Desktop.getDesktop().browse(new URI(manualUrl)); 在linux环境bug 方式二: 转载自:https://stackoverflow.com ...
- 关于php中的exec命令
这个命令 一般是被禁用的 一些特殊需求的时刻 可以启用 比如 调用系统上的一些数据或者命令 $command ='/www/wwwroot/t.6328.net/Public/cfile/test' ...
- Flex自定义组件、皮肤,并调用
标签:Flex 自定义组件 自定义皮肤 主应用调用模块 本程序样例学习自flex 实战教程.但因原教程代码不全,且根据个人需求有更改. 1文件列表 自定义as类Reveal.as,该类实现组件的 ...
- django之urlresolver
>>> from django.utils.regex_helper import normalize >>> bits=normalize(r'^static/( ...
- asp.net Log4Net错误日志个人总结
1)创建Global.asax protected void Application_Start(object sender, EventArgs e) { log4net.Config.XmlCon ...
- [记录] Linux Apache隐藏index.php
1. 在项目更目录下新建 .htaccess <IfModule mod_rewrite.c> Options +FollowSymlinks -Multiviews RewriteEng ...