使用OperatorHub.io自动化群集上的操作

作者:Diane Mueller,红帽云平台社区发展总监

开发者和Kubernetes管理员面临的重要挑战之一,是缺乏快速查找在Kubernetes提供运营就绪的公共服务的能力。通常情况下,存在特定服务的Operator - 这种模式在2016年推出并获得了动力 - 对于Kubernetes服务的运营就绪是一个很好的信号。但是,迄今为止还没有Operator注册表来简化发现此类服务。

为了帮助应对这一挑战,今天Red Hat与AWS、Google Cloud和Microsoft合作推出OperatorHub.io。OperatorHub.io使开发者和Kubernetes管理员能够查找和安装策划好的、Operator支持的服务,其中包括基础文档、社区或供应商的主动维护、基本测试以及Kubernetes优化生命周期管理的打包。

目前在OperatorHub.io中的Operator只是开始。我们邀请Kubernetes社区加入我们,通过在OperatorHub.io上开发、打包和发布Operator,为Operator建立一个充满活力的社区。

OperatorHub.io提供什么?

OperatorHub.io旨在满足Kubernetes开发者和用户的需求。对于前者,它提供了通用的注册表,他们可以在其中发布他们的Operator以及描述、相关的详细信息,如版本、镜像、代码仓库,并打包准备方便安装。他们也可以对已发布的Operator发布更新版本。

用户可以在一个中心位置发现和下载Operator,该Operator的内容已根据前面提到的标准进行筛选并扫描已知漏洞。此外,开发者可以使用他们引入的CustomResources的说明性示例,指导其Operator的用户,与应用程序进行交互。

Operator是什么?

Operator最初由CoreOS于2016年推出,并已被Red Hat和Kubernetes社区用作打包、部署和管理Kubernetes原生应用程序的方法。Kubernetes原生应用程序是一个部署在Kubernetes上的应用程序,使用Kubernetes API和众所周知的工具进行管理,如kubectl。

Operator实现为自定义控制器,用于监视某些Kubernetes资源的显示、修改或删除。这些通常是Operator“拥有”的CustomResourceDefinition。在这些对象的spec属性中,用户声明应用程序或操作的所需状态。Operator的协调循环将选择这些,并执行所需的操作以实现所需的状态。例如,可以通过创建EtcdCluster类型的新资源,来表达创建高可用性etcd集群的意图:

apiVersion: "etcd.database.coreos.com/v1beta2"
kind: "EtcdCluster"
metadata:name: "my-etcd-cluster"
spec:size: 3version: "3.3.12"

这样,EtcdOperator将负责创建运行版本v3.3.12的3节点etcd集群。类似地,可以定义类型为EtcdBackup的对象,以表示创建etcd数据库一致备份到S3存储桶的意图。

如何创建和运行Operator?

一种入门方法是使用Operator框架,这是一个开源工具包,提供SDK、生命周期管理、计量和监视功能。它使开发者能够构建、测试和打包Operator。Operator可以用几种编程和自动化语言实现,包括Go、Helm和Ansible,这三种语言都直接由SDK支持。

如果你有兴趣创建自己的Operator,我们建议你查看Operator框架以开始使用。

Operator的功能范围各不相同,从基本功能到应用程序的特定操作逻辑,以及备份、恢复或调整等高级方案的自动化。除了基本安装之外,高级Operator可以更加无缝地处理升级并自动应对故障。目前,OperatorHub.io上的Operator来自不同成熟度范围,但我们预计它们会随着时间而持续成熟。

虽然不需要使用SDK实现OperatorHub.io上的Operator,但它们是打包给通过Operator Lifecycle Manager(OLM)进行部署。格式主要由称为ClusterServiceVersion的YAML清单组成。它提供有关Operator拥有或要求的CustomResourceDefinitions的信息、所需的RBAC定义、存储图像的位置等。此文件通常附带定义Operator自己的CRD的其他YAML文件。OLM在用户请求安装Operator以提供依赖性解析和自动化时处理此信息。

OperatorHub.io上的Operator列表是什么意思?

要列出,Operator必须成功显示群集生命周期功能,打包为CSV并通过OLM维护,以及为其预期用户提供可接受的文档。

目前在OperatorHub.io上列出的Operator的一些示例包括:Amazon Web Services Operator、Couchbase Autonomous Operator、CrunchyData’s PostgreSQL、etcd Operator、Jaeger Operator for Kubernetes、Kubernetes Federation Operator、MongoDB Enterprise Operator、Percona MySQL Operator、PlanetScale’s Vitess Operator、Prometheus Operator和Redis Operator。

想要将你的Operator添加到OperatorHub.io?跟着这些步骤

如果你有现有的Operator,请遵循贡献指南使用社区Operator仓库的分支。每个贡献包含CSV、所有CustomResourceDefinitions、访问控制规则以及安装和运行Operator所需的容器映像的资料,其功能描述和支持的Kubernetes版本等其他信息。EtcdOperator可以作为完整的示例,包括Operator的多个版本。

在你自己的集群上测试Operator之后,将PR提交到社区存储库,其中包含此目录结构的所有YAML文件。可以以相同的方式发布Operator的后续版本。刚开始这将是手动审查,但往后会自动化。由维护者合并之后,它将显示在OperatorHub.io上,以及其文档和方便的安装方法。

想了解更多?

  • 参加即将举行的Kubernetes Operator框架实践研讨会:3月7日在Pasadena的ScaleX举行,以及3月11日在Santa Clara的OpenShift Commons Gathering on Operating举行
  • 听听Daniel Messer和Diane Mueller关于“Operator现况”的OpenShift Commons简报
  • 加入社区Kubernetes-Operator Slack Channel和Operator框架Google Group的在线对话
  • 最后,阅读如何将你的Operator添加到OperatorHub.io:https://operatorhub.io/contri...

KubeCon + CloudNativeCon和Open Source Summit大会日期:

  • 会议日程通告日期:2019 年 4 月 10 日
  • 会议活动举办日期:2019 年 6 月 24 至 26 日

KubeCon + CloudNativeCon和Open Source Summit赞助方案
KubeCon + CloudNativeCon和Open Source Summit多元化奖学金现正接受申请
KubeCon + CloudNativeCon和Open Source Summit即将首次合体落地中国
KubeCon + CloudNativeCon和Open Source Summit购票窗口,立即购票!

使用OperatorHub.io自动化群集上的操作相关推荐

  1. Web自动化文件上传操作_Chrom

    web自动化中适用于Chrom浏览器的文件上传操作: import win32gui import win32con#谷歌浏览器,固定用法 def file_upload(path):dialog=w ...

  2. python上传文件到windows_python自动化-WinSpy+pywin32文件上传操作

    '''百度首页搜索上传图片为例''' #前提条件 1.使用winspy定位绝对路径 #前提条件 2.安装库pywin32 采用pip安装pip install pywin32 或其他途径安装 #1.访 ...

  3. 利用计算机技术执行如自动化生产线精密操作,计算机控制技术在自动化生产线上的应用探讨...

    计算机控制技术作为科技时代下的产物,其涵征,各个环节密切相连而不能出错,否则会对整个盖诸多技术内容,如计算机应用技术.自动控制技术自动化生产流程产生严重影响[2].和电子技术等,并综合应用计算机网络技 ...

  4. UI自动化第七讲:winspy+pywin32实现文件上传操作

    以下实例使用百度搜索框上传文件图片搜索演示文件上传 from selenium import webdriver import time from selenium.webdriver import ...

  5. 防微杜渐,未雨绸缪,百度网盘(百度云盘)接口API自动化备份上传以及开源发布,基于Golang1.18

    奉行长期主义的开发者都有一个共识:对于服务器来说,数据备份非常重要,因为服务器上的数据通常是无价的,如果丢失了这些数据,可能会导致严重的后果,伴随云时代的发展,备份技术也让千行百业看到了其" ...

  6. linux系统编程:IO读写过程的原子性操作实验

    所谓原子性操作指的是:内核保证某系统调用中的所有步骤(操作)作为独立操作而一次性加以执行,其间不会被其他进程或线程所中断. 举个通俗点的例子:你和女朋友OOXX的时候,突然来了个电话,势必会打断你们高 ...

  7. python 手机自动化操作_Python自动化办公之word操作

    Python自动化办公之word操作,主要是用到python-docx库,针对word操作,对大批量重复性工作,使用python可以节省大量的时间和经历 python-docx word文档中的文字有 ...

  8. 教你三分钟上手阿里云OOS上传操作

    教你三分钟上手阿里云OOS上传操作 1.注册登录 如果小伙伴需要进行使用阿里云oss操作,第一步我们得注册/登录阿里云 https://www.aliyun.com/,小编建议大家尽量使用支付宝登录, ...

  9. python实现自动按键_Python使用pyautogui模块实现自动化鼠标和键盘操作示例

    本文实例讲述了Python使用pyautogui模块实现自动化鼠标和键盘操作.分享给大家供大家参考,具体如下: 一.pyautogui模块简要说明 ## 使用 pyautogui 模块相关函数,可以模 ...

最新文章

  1. Pheatmap热图的绘制及如何调整图片
  2. 禁用引导模态区域之外的单击以关闭模态
  3. 阿里云发布勒索病毒专杀工具:一键修复 彻底查杀
  4. Boost.MultiIndex 使用散列索引的示例
  5. Java中数组的地址问题(hashCode解析):
  6. 计算机免修考试题库,计算机免修考试内容和样卷.doc
  7. JavaScript对SEO的影响及解决之道
  8. 在html中怎么写加起来的,css可以在html里面写吗?
  9. php 模拟客户端访问,PHP通过伪造和模拟客户端COOKIE登陆来采集抓取远程网址
  10. Android 8.0系统源码分析--开篇
  11. Mac实用技巧:如何关闭笔记本的Fn功能
  12. java生成KML文件
  13. Python 高级编程笔记之测试驱动开发
  14. Java 解压 gzip 和 tar.gz 文件
  15. 我是如何纯靠技术在大学月入上万,收获人生第一个10W
  16. 石墨烯的晶格和能带结构
  17. 使用ML 和 DNN 建模技巧总结
  18. 某机主存容量为4Nx16位,且存储字长等于指令字长,若该机指令系统可完成108种操作,操作码位数固定,且具有直接、间接、变址、基址、相对、立即等六种寻址方式
  19. 前端程序员常用办公工具(持续更新)
  20. PC端、手机端在线预览文档组件react-file-viewer与npm构建内存溢出

热门文章

  1. 100内奇数之和流程图_七月刷题挑战,100%获奖的法考速记本活动来啦!
  2. CRT远程连接不上的解决办法
  3. ar面部识别_增强现实(AR)结合人脸识别技术在手机产品的应用
  4. 【无人机 学习笔记 5】天线之全向天线与定向天线工作原理
  5. graphpad分组百分比柱状图_Graphpad prism7作图教程|单维度分组散点图、二维度分组柱形图...
  6. android wifi坏了,Android 8.0背锅WiFi掉线,Android P突然变脸
  7. 谷歌创始人布林:Android和Chrome未来或合并
  8. 自己玩玩ios逆向工程
  9. 33个优秀的网站底部设计案例欣赏
  10. linux下chm阅读器的安装与使用