范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

Operator生命周期管理

  01 背景
  随着 Kubernetes 成为云原生时代容器编排的事实标准,社区统一使用 CRD + Controller 的方式来扩展 Kubernetes 的能力,开发云原生应用程序。这也就是 Operator 的实现。而构建 Operator 的门槛相对比较高,开发者需要了解 Kubernetes 的知识并具备相关的经验。
  Operator Framework 的出现为开发制定了一整套框架,它整合了很多 Kubernetes 的专业知识,提供了一整套标准化工具方便在 Kubernetes 上轻松地创建应用程序。 其中 Operator Lifecycle Manager,简称 OLM,用来管理 Operator 的生命周期。 OLM 扩展了 Kubernetes 的能力,遵循 Kubernetes 交互设计理念,提供声明式的方式来安装、更新和管理 Operator 及其在集群中的依赖。
  Operator 和 OLM 的关系,就如同在操作系统里,通过软件包管理去安装更新软件。OLM 在设计时,自身组件也是用 Operator 方式进行部署。接下来着重介绍 OLM 的模型定义、组件和安装使用。  02 模型
  OLM 主要定义了以下资源对象模型:
  2.1 CatalogSource
  目录源可以理解成 Operator 仓库 ,它用来存储 Operator 的元数据信息,包括了集群服务版本信息、自定义资源信息、软件包信息。可以查询该目录源下有哪些 Operator 可以提供使用。以下示例是 OLM 默认安装提供的目录源,利用社区 Operator 这个 repo 构建出的镜像。该 repo 存放了大量社区 Operator 的元数据信息,并且各个 Operator 的开发者也会不定期地更新该仓库,保证最新开发的 Operator 能够提供给社区使用。官方 OperatorHub 也使用了这个 Operator 仓库。
  2.2 Subscription
  订阅表示要在某个目录源下,安装指定版本的 Operator。 通过订阅某个频道,获取 Operator 的版本更新信息,以及在安装时指定自动或者手动的批准策略。不同的批准策略会影响 Operator 的安装升级。另外在订阅信息里可以添加一些配置,如环境变量、文件挂载等,用于最终 Operator 控制器的部署。
  2.3. InstallPlan
  在安装 Operator 时,会创建一个如上所述的订阅对象,然后会创建安装计划。 安装计划表示安装 Operator 或者升级 Operator 到特定版本时,需要创建的一组资源。安装版本就是 ClusterServiceVersion 的对应版本。这里会根据上面订阅对象里定义的不同批准策略,进行以下操作:  当设置为自动批准策略,则安装计划会自动执行,OLM 会自动管理并升级 Operator,确保集群始终运行最新版本。  当设置为手动批准策略,需要由管理员或者拥有批准权限的用户进行批准,方可执行。
  安装计划会创建指定的资源,这里主要包括 ClusterServiceVersion、CRD 和 Operator SDK 打包 Bundle 里的其他一些依赖资源,并在订阅所在的命名空间下安装 Operator。 这里需要特别注意,当有一个 Operator 正在进行审批时,其他的 Operator 无法直接安装。
  2.4. OperatorGroup
  Operator 组为 Operator 的安装提供多租户支持。 当开发 Operator 时,可以设置该 Operator 部署集群后的作用范围,也就是通常说 watch 哪些命名空间。可以在 ClusterServiceVersion 里设置具体的安装模式。OLM 默认会在 operators 命名空间下安装一个 global-operators 的 Operator 组,该组定义安装在所有命名空间。当选择安装某个 Operator 时,根据不同的安装模式,来确定是否创建 Operator 组。分为以下几种情形:  可以将全局作用范围的 Operator 安装在 operators 命名空间下。  可以在其他命名空间下创建一个全局的 Operator 组,然后进行 Operator 安装。  针对只作用于某些命名空间的 Operator,可以创建 Operator 组,定义好要选择安装 Operator 的命名空间列表。OLM 会在这些命名空间下创建 Operator 所需要的 RBAC 权限。
  2.5. ClusterServiceVersion
  集群服务版本,简称 CSV,记录了某个 Operator 具体的版本信息。 它提供了 Operator 元数据清单信息,主要包括了 Operator 的名称、版本、图标、描述、安装模式、能力级别、维护者信息、安装所需资源并提供 Operator 使用的一些 sample。在发布新版本 Operator 时会提供版本更新策略。
  03 架构
  如图所示,OLM 的组件包括 Package Server、Operator Registry、Catalog Operator、OLM Operator。
  Package Server: 会在集群上注册 packagemanifest 的 APIService,通过 gRPC 协议调用 operator registry 服务,获取 package 信息,并生成一个个 packagemanifest 对象。
  Operator Registry: 上面 catalogsource 创建后,运行的 pod 其实就是 registry 服务。该服务存储了 CSV、CRD、软件包和频道的元数据信息。package manifest 是 registry 中的一个实体对象,软件包里会包含多个频道,每个频道会指向特定的 CSV 版本。各个 CSV 版本之间会明确替换关系以及升级规则,这样可以完成 Operator 每个中间版本的替换和安装,最终达到运行频道中最新版本的目的。
  Catalog Operator: 负责目录源的创建,并负责完成 Operator 部分资源的安装。主要包括以下步骤:
  1. 监听目录源,可以定义不同类型的 catalogsource 资源对象。
  2. 当目录源是 gRPC 类型时,可以使用 catalogsource 镜像去运行 registry server 的 pod 或者直接指定一个已存在 registry server 的 gRPC 地址。当目录源是 configmap 或 internal 类型时,会创建 configmap server。
  3. 由上述 Package Server 组件完成相应的功能。
  4. 安装 Operator 时,会创建订阅,订阅信息里会指定需要安装 Operator 的版本。此时 Catalog Operator 控制器会运行 bundleUnpack job,该 job 会运行 pod 去解压指定 Operator 的 bundle 镜像,将 bundle 镜像里Operator 的元数据信息,写入到 configmap 资源对象里。
  5. 控制器会为订阅创建相对应的 installplan 资源对象。
  6. 基于 configmap 里提供的 Operator 元数据信息,调和 installplan 对象,添加需要安装的资源信息。包括 CSV 资源、CSV 里定义的依赖资源如 CRD、APIService 和 webhook、RBAC 相关资源以及 Operator 运行依赖的其他资源对象。
  7. 根据 installplan 对象里的安装内容,进行资源对象的创建。
  另外控制器会监听目录源中,安装包对应的频道版本是否有更新,当有更新时,同样会创建出新版本的 CSV 资源和 installplan 对象,以便进行更新升级。
  OLM Operator: 在 Catalog Operator 控制器完成一些资源对象创建后,OLM Operator 的控制器主要调和 CSV 资源和 Operator 组资源,执行以下逻辑:
  8. OLM Operator 控制器会处理 CSV 的版本升级,并保持使用最新的版本。
  9. 当 Operator 作用在所有命名空间时,会将安装命名空间下的 role、rolebinding 提升到 clusterrole 和 clusterrolebinding,这样可以拥有集群管理的权限。
  10. Operator 作用在指定多个命名空间或所有命名空间时,根据 olmconfig 里 disableCopiedCSVs 的功能配置,在其他命名空间下拷贝安装的源 CSV 去创建新的 CSV。
  11. 根据不同的安装模式会选择创建 Operator 组,当 Operator 作用在指定多个命名空间时,会到这些命名空间下创建 Operator 运行需要的 RBAC 权限。
  12. 根据订阅信息里的 config 配置和 CSV 里定义的 deployment 的安装信息,由 OLM Operator 完成每个 Operator 控制器部署。  04 安装
  在了解 OLM 的功能和基础架构后,可以看一下 OLM 的安装。这里以 0.21.2 版本为例,提供脚本和命令行安装两种方式。
  4.1. 脚本
  通过执行以下命令来安装 OLM。
  4.2. 命令行
  大概的安装过程如下:
  1. 部署 OLM 资源对象模型,即各个自定义资源对象 CRD;
  2. 部署 OLM olm-operator 和 catalog-operator 组件,创建名为 olm-operator 和 catalog-operator 的 deployment ;
  3. 部署 OLM package-server 组件,先创建名为 packageserver 的 CSV,CSV 创建后会部署一个名为 packageserver 的 deployment;
  4. 部署一个 operator-registry组件,先创建名为 operatorhubio-catalog 的 catalogsource CR,catalog-operator 组件 watch 该资源并使用 catalogsource CR 里指定镜像生成 pod,该 pod 提供50051端口的 gRPC 服务;
  安装完后,可以调用 packagemanifest 的 API,获取到目录源提供了哪些 Operator。
  05 使用
  在完成 OLM 默认安装后,用户可以去安装自己需要的 Operator。如安装Elasticsearch Operator,去创建一个订阅信息。
  创建一个 Operator 组,只在 eck1 和 eck2 命名空间下安装Elasticsearch Operator。
  订阅创建后,会创建安装计划,并进行 CSV 等资源的创建。
  安装成功后,会在集群上安装 CRDs,并在 eck1 命名空间下运行 elastic-operator 的deployment,此时就可以在 eck1 和 eck2 命名空间下,创建 CR 使用 ECK 的功能。
  06 总结
  目前  Operator 技术已经成为扩展 Kubernetes 能力的标准方式 ,Operator 的开发从像使用原生资源对象一样扩展应用,发展到了封装自己的组件,开发一些有状态的、持久化的中间件,将能力以标准的方式暴露出来。在开发过程中,OLM 会提供软件的打包、安装和升级,并实现一些监控告警能力,更加高效地进行 Operator 的生命周期管理,简化运维的复杂度。目前官方 OperatorHub 上提供的 Operator 已经有 297 个,涉及应用运行时、数据库、可观测性、消息中间件、开发工具等众多类别。随着像红帽、亚马逊、腾讯云等巨头公司的使用,Operator 的技术发展也会更加地成熟稳定。
  参考资料
  [1]  https://operatorhub.io/
  [2] https://github.com/k8s-operatorhub/community-operators
  [3] https://operatorframework.io/operator-capabilities/
  [4]https://github.com/operator-framework/operator-sdk
  [5] https://github.com/operator-framework/operator-lifecycle-manager
  [6] https://github.com/operator-framework/operator-registry
  [7] https://github.com/operator-framework/community-operators
  [8] https://olm.operatorframework.io/docs/getting-started/#installing-olm-in-your-cluster
  本文作者 : 潘桂才
  云原生高级后端开发工程师
  热门推荐: 快来 0 成本体验云原生数字底座。
  https://docs.daocloud.io/download/dce5/

仙三外传问情篇的正统结局之争,补全断代史指日可待在仙剑奇侠传七上市后,有细心的网友发现,本作中不但包含了许多前代作品的彩蛋,还交代了部分重要角色的去向。如,在霜染尺素支线中,玩家通过帮助余霞真人寻找双鲤玉佩,可以得知仙二男主角王6月25日,北湖柳堤消夏节一键开启夏日嘉年华6月25日北湖柳堤消夏节将在北湖国家湿地公园盛大开幕一键开启夏日嘉年华盛夏已至,来北湖给心灵放个假下面,小北带您先睹为快一览柳堤之美,尽享消夏之乐首先来到美食商街,琳琅满目的小吃美一家人!加索尔为科比小女儿庆生,弥补科比遗憾,照顾母子三人近日,科比的小女儿卡普里迎来了她的三岁生日,许多名人都送上了祝福,作为科比的好友加索尔也表示了对卡普里的祝福,对卡普里十分照顾。加索尔发文表示祝卡普里三岁生日快乐,加索尔的妻子也表瓜迪奥拉携家人,在加勒比海巴巴多斯享受假期直播吧6月24日讯曼城主帅瓜迪奥拉目前携夫人以及孩子,在加勒比海的巴巴多斯享受假期。据悉,有媒体拍到了瓜迪奥拉与家人在海岸休闲阳光浴以及冲浪的画面。一位旁观者透露,瓜迪奥拉在此期间失眠?水饮作祟!名方五苓散,温阳化饮,帮你睡得好,吃得香失眠现象在当今可以说是非常普遍,但是让我奇怪的是,很多人并不重视失眠的调理,不把失眠当回事,总认为睡不着就睡不着,影响不大。其实是错的!失眠,睡不好,从短时间来看会导致第二天精神状云南特色菜随便说几道,你听到名字就敢赌你不敢吃!别不服前阵子小编写烧烤的时候对于云南的烤昆虫提过一嘴,了解后,才发现云南的本土饮食还真不是一般人能接受的。现在随便说几道菜,你听到名字我就敢赌你不敢吃!别不服,一起来看看!云南昆虫宴第一红酒保质期是多久存放多久算过期?存放10年后还能喝吗?我的老丈人爱饮酒,特别喜欢白酒,主要原因他自己也说不清楚,只是单纯的喜欢,不讲究白酒的品牌度数,是否是纯粮食酒他也不在意,按照老丈人的话说,农村人哪有那么讲究,有酒喝就不错了,喝过豆腐的传说如雾里看花哪个是真哪个是假豆腐是一种营养丰富又历史悠久的食材。它内含人体必需的多种微量元素,还含有丰富的优质蛋白,素有植物肉的美称。我国是豆腐的发源地。关于豆府的传说也是源源流长,影响最大的一说是西汉淮南王明白人!大将军阿里纳斯1985年以前打球的,都不在我前十名单中前NBA球员大将军阿里纳斯近日在直播节目中说起历史前十,阿里纳斯表示我不喜欢很久之前的球员出现在我的前十名单中,1985年以前打球的?算了吧!看大O我不如看威少。用当下的眼光审视过两位风格迥异的中式直板大师,马琳王皓的国际赛场战绩,马琳占优中式直板大师马琳,直拍横打宗师王皓,两人国际赛场战绩如何?在二王一马中,有两位是直板选手,马琳是中式直板大师,王皓是直拍横打一代宗师,两人风格迥异,都把直板的魅力发挥到了极致,留下新世纪日本征战世界杯有一个奇葩现象本土教练成绩远胜洋帅今年卡塔尔世界杯,日本的签运可以说糟糕透顶。当时看到自己的球队和德国,西班牙同组时,主教练森保一露出了苦涩的笑容,他的内心一定是崩溃的。论实力,日本也许稍强于哥斯达黎加,但和德国西
复古传奇自古以来法师血量最少?脆皮法师实现血量自由每次玩传奇的时候都非常纠结职业的选择战士的话血量多适合PK但是缺点是刷怪贼慢法师是刷怪最爽的按道理来说装备等级都是最全缺点是血量少得可怜啊道士是最平稳的血量中等技能也是比较中庸的最炉石传说新手与回归玩家可获得的免费套牌更新新手玩家与回归玩家可获得的免费套牌已经更新!现在可以更轻松地领取免费套牌。只要你连续120天未登录过游戏,在登录时便会获得免费套牌通知!在此提醒,新玩家获取免费套牌的方式如下登录炉乒乓球冠军王楠的传奇人生日本奥运会期间,乒乓健儿们取得了优异的成绩。这时候王楠夫妇做出一个决定,奖励奥运会上获得乒乓球金牌和银牌的运动员每人一套住房。当时有很多人会问王楠怎么有钱。她以前也是乒乓球冠军,乒最不像专属的宝可梦招式,下个世代或加入技能学习机1。神奇蒸汽威力不错的妖精系特攻(90),有时会让对方混乱(20)。伽勒尔双弹瓦斯的专属招式。这招是伽勒尔双弹瓦斯重要输出技能,毕竟它不会月爆,不过双弹瓦斯85特攻也别指望打多少伤1。76传奇传奇运九套项链之最,真让人大开眼界热血传奇中运九套的作用不用老道多赘述大家都知道。关于运九套那些稀奇古怪的搭配多数玩家就不一定知道了。咱们今天就说说原始三根幸运项链搭配而成的那些运九套之最,全都见过的必须是资深老玩热血传奇十大家族之一霸气家族你听说过他们的事迹吗霸气家族是05年的家族,曾经的布联盟中的小弟,在热血传奇十大家族中排名第三。家族人气一直是霸气法宝,王者师从未掉下1000,加上天浪师一直以复古第一师的自居,论战斗力或许比布拉格强热血传奇新冰雪传奇侠客冰雪技能升级及获取方式新冰雪传奇侠客冰雪内测第五天,开服的火爆画面现在已经不见了,大部分玩家都已经熟悉了玩法,静等开服了,现在只有部分玩家再继续玩,这是一群真正热爱玩的玩家。等公测人数肯定会变多,那么侠传奇世界群英版金装裁决新手玩法详解哈喽!大家好,我是动若。传奇世界群英版之金装裁决的火热程度在各个平台都有了彰显,新老玩家都在此有了自己的属地。这款还原度极高的传世手游已经深深打动各位玩家,现在就和小编一起进入游戏国际乒联新加坡总决赛,第一轮就看点满满12月47号,国际乒联新加坡总决赛,男女各16位高手巅峰对决华山论剑,梁决出年度男女单冠军。刚看了比赛赛程,12月4号第一天就看点满满,绝对会很好看很精彩。看点一,冤家路窄两大美女插混十年前画下的饼,终于兑现了日常通勤用电,自驾烧油!十一年以前,随着这样一句宣传语,史上第一种插电式混合动力汽车(PHEV),双模混动的比亚迪F3DM上市。采用混动系统,同时安装了较一般混动汽车更大的电池包,美韩巨头瓜分94全球市场,国产存储芯片还有机会吗?本文来源时代周报作者杨玲玲缺芯潮持续,何时缓解仍未有定论。5G带动半导体需求增加,加上地缘政治和疫情驱动恐慌性备货,晶圆代工产能供不应求的情况依然存在。近日,在TrendForce