当前位置: 首页 > news >正文

Kubernetes(K8s)从入门到精通系列之十八:使用 Operator Lifecycle Manager(OLM) 安装operator

Kubernetes从入门到精通系列之十八:使用 Operator Lifecycle Manager OLM 安装operator

  • 一、先决条件
  • 二、安装operator
  • 三、示例:安装最新版本的 Operator
  • 四、示例:安装特定版本的 Operator

从运算符目录中安装运算符

通过 CatalogSource 将 Operator 目录加载到集群后,可以通过创建特定通道的订阅来安装 Operator。

一、先决条件

在将运算符安装到命名空间之前,需要创建一个针对运算符计划监视的命名空间的 OperatorGroup,以便在这些命名空间中为运算符生成所需的 RBAC。

注意:OperatorGroup 所针对的命名空间必须与 Operator 包的 ClusterServiceVersion 中指定的 installMode 一致。

kubectl get packagemanifest <operator-name> -o jsonpath="{.status.channels[0].currentCSVDesc.installModes}"

注意:本文档示例中使用全局 OperatorGroup 来安装算子。

二、安装operator

要安装 Operator,只需为Operator 创建订阅即可。这表示从 CatalogSource 订阅此 Operator 的可用版本流的意图:

apiVersion: operators.coreos.com/v1alpha1
kind: Subscription
metadata:name: <name-of-your-subscription>namespace: <namespace-you-want-your-operator-installed-in>
spec:channel: <channel-you-want-to-subscribe-to>name: <name-of-your-operator>source: <name-of-catalog-operator-is-part-of>sourceNamespace: <namespace-that-has-catalog>installPlanApproval: <Automatic/Manual>

Subscription 对象创建一个 InstallPlan,它要么自动批准(如果 sub.spec.installPlanApproval:自动),要么需要批准(如果 sub.spec.installPlanApproval:手动),然后将 Operator 安装在您想要的命名空间中。

三、示例:安装最新版本的 Operator

如果想要从命名空间 olm 中名为 my-catalog 的目录在集群范围内的命名空间 foo 中安装名为 my-operator 的操作符(即 installModes:AllNamespaces),并且想要订阅稳定频道,

创建一个全局 OperatorGroup(选择所有命名空间):

$ cat og.yamlapiVersion: operators.coreos.com/v1kind: OperatorGroupmetadata:name: my-groupnamespace: foo$ kubectl apply og.yamloperatorgroup.operators.coreos.com/my-group created

然后,为operator创建订阅:

$ cat sub.yamlapiVersion: operators.coreos.com/v1alpha1
kind: Subscription
metadata:name: sub-to-my-operatornamespace: foo
spec:channel: stablename: my-operatorsource: my-catalogsourceNamespace: olminstallPlanApproval: Manual$ kubectl apply -f sub.yaml
subscription.operators.coreos.com/sub-to-my-operator created

由于installPlanApproval设置为Manual,所以我们需要手动进去审批InstallPlan

$ kubectl get ip -n fooNAME            CSV                   APPROVAL    APPROVED
install-nlwcw   my-operator.v0.9.2   Automatic     false$ kubectl edit ip install-nlwcw -n foo

然后将spec.approved从false更改为true。

这应该会在 foo 命名空间中启动操作员的 ClusterServiceVersion,随后操作员 pod 将启动。

为了确保 Operator 安装成功,请检查 ClusterServiceVersion 以及安装它的命名空间中的 Operator 部署。

$ kubectl get csv -n <namespace-operator-was-installed-in>NAME                  DISPLAY          VERSION           REPLACES              PHASE
<name-of-csv>     <operator-name>     <version>  <csv-of-previous-version>   Succeeded
...
$ kubectl get deployments -n <namespace-operator-was-installed-in>
NAME                         READY   UP-TO-DATE   AVAILABLE   AGE
<name-of-your-operator>      1/1     1            1           9m48s

如果 ClusterServiceVersion 无法显示或未达到成功阶段,请检查故障排除文档以调试您的安装。

四、示例:安装特定版本的 Operator

如果想安装特定版本的 Operator,请在订阅中指定startingCSV 属性,如下所示:

apiVersion: operators.coreos.com/v1alpha1
kind: Subscription
metadata:name: sub-to-my-operatornamespace: foo
spec:channel: stablename: my-operatorsource: my-catalogsourceNamespace: olminstallPlanApproval: ManualstartingCSV: 1.1.0

请注意,批准也已设置为手动,以便在 1.1.0 碰巧被我的目录中的较新版本取代时,OLM 无法立即更新Operator。按照上一示例中的说明批准此订阅的初始安装计划,以便允许安装 1.1.0。

如果是将已安装的 Operator 固定到特定版本 1.1.0,则无需执行任何操作。批准初始安装计划后,OLM 将安装Operator 1.1.0 版本并保持该版本。当在目录中发现更新时,OLM 将等待,除非手动批准更新,否则不会继续。

相关文章:

Kubernetes(K8s)从入门到精通系列之十八:使用 Operator Lifecycle Manager(OLM) 安装operator

Kubernetes从入门到精通系列之十八&#xff1a;使用 Operator Lifecycle Manager OLM 安装operator 一、先决条件二、安装operator三、示例&#xff1a;安装最新版本的 Operator四、示例&#xff1a;安装特定版本的 Operator 从运算符目录中安装运算符 通过 CatalogSource 将 …...

request、response请求转发和重定向

Request&Response request是请求对象&#xff0c;获取请求数据&#xff1b;response是响应对象&#xff0c;设置响应数据。 request获取请求数据 获取请求方式:request.getMethod()&#xff1b; 获取访问路径&#xff1a;request.getContextPath()&#xff1b; 获取UR…...

MySql学习路线

学习MySQL数据库的路线可以分为不同的阶段&#xff0c;从入门到高级&#xff0c;逐步掌握数据库管理和开发技能。以下是一个关于MySQL学习的路线&#xff1a; ### 初级阶段 1. **数据库基础知识**&#xff1a; - 学习数据库的基本概念&#xff0c;了解关系数据库管理系统&…...

Vue实现首页导航和左侧菜单,介绍mock.js并实现登录注册间的跳转,实现左侧栏折叠效果,优化Main.vue组件,使用mock.js生成随机响应数据

目录 1. mockjs 1.1 mockjs介绍 1.2 mockjs使用步骤 1.2.1 安装mockjs依赖 1.2.2 在项目中引入mockjs 1.2.3 创建目录和文件 1.2.4 为每个组件准备模拟数据 1.2.5 测试 1.2.6 前端调试 1.2.7 mockjs生成随机响应数据 1.2.8 根据不同响应&#xff0c;给出不同提示 2…...

汇总下之RobotFramework自动化框架的系列文章

总下之前分享的RobotFramework自动化框架的系列文章&#xff0c;有需要的同学可关注收藏 python自动化测试框架RobotFramework基础环境安装/使用&#xff08;一&#xff09; python自动化测试框架RobotFramework内置库BuiltIn介绍&#xff08;二&#xff09; python自动化测…...

0052【Edabit ★☆☆☆☆☆】Learn Lodash: _.drop, Drop the First Elements of an Array

0052【Edabit ★☆☆☆☆☆】Learn Lodash: _.drop, Drop the First Elements of an Array arrays Instructions According to the lodash documentation, _.drop creates a slice of an array with n elements dropped from the beginning. Your challenge is to write your…...

从无人机到实景三维海洋系统

无人机&#xff08;比如大疆的测量无人机&#xff09;测量的影像数据一般通过Pix4d处理以后生成OBJ或者FBX格式&#xff0c;在CesiumLab&#xff0c;转成3dtiles&#xff0c;就可以做成实景三维系统。Pix4d的教程在B站有很多&#xff0c;想了解的同学可直接在B站搜索学习&#…...

第二章前端开发ES6基础

目录 扩展运算符 概述 语法 应用 模板字符串 概述 应用 内置对象扩展 概述 数组扩展方法 字符串扩展方法 set数据结构 概述 基本使用 操作方法 遍历方法 认识symbol 概述 作用 基本使用 项目 扩展运算符 概述 扩展运算符(spread operator)是 ES6 中新…...

使用Python将PDF转为图片

将PDF转为图片能方便我们将文档内容上传至社交媒体平台进行分享。此外&#xff0c;转换为图片后&#xff0c;还可以对图像进行进一步的裁剪、调整大小或添加标记等操作。 用Python将PDF文件转JPG/ PNG图片可能是大家在一些项目中会遇到的需求&#xff0c;下面将详细介绍如何使用…...

JAVA 同城服务货运搬家小程序系统开发时应注意哪些?

在开发JAVA同城服务货运搬家小程序系统时&#xff0c;需要注意以下几点&#xff1a; 需求分析与设计&#xff1a;在开始开发前&#xff0c;需要对系统进行详细的需求分析与设计。这包括了对用户需求的理解、业务流程的梳理、数据库的设计以及界面设计等。确保系统的功能完善、…...

uniapp开发小程序 小米手机真机bottom:0无效 底部间隙 设备安全区域处理办法

uniApp自定义导航 CSS设置 bottom:0竟然无效&#xff0c;而iphone和开发模拟器没有问题 height: 150rpx;position: fixed;left: 0;right: 0;bottom: calc(var(--window-bottom,0)); 网上查了各种方法&#xff0c;包括设置bottom:-20啊以及 padding-bottom: constant(safe-are…...

四十、【进阶】索引失效情况2

1、or的使用 在使用索引查询时&#xff0c;如果使用了or&#xff0c;会出现以下情况&#xff1a; &#xff08;情况一&#xff09;or左边是索引查询&#xff0c;or右边不是索引查询 结果&#xff1a;索引查询失效 &#xff08;情况二&#xff09;or左边不是索引查询&#x…...

敏感词过滤--golang

目录 1. 建立敏感词数据库表2. 定时任务&#xff0c;读数据并建立敏感词树2.1 开启定时任务2.2 读数据并建立敏感词树 3. 使用 思路&#xff1a; 将敏感词都存到数据库表中定时读取数据到内存中&#xff0c;构建敏感词前缀树写工具方法&#xff0c;使用内存中的前缀树判断消息…...

NVIDIA cuda安装时全部失败

查看了很多博客&#xff0c;有写的非常详细清楚的博客&#xff0c;csdn上真的是一个很好的学习平台&#xff0c;我在学习过程中遇到的好多bug&#xff0c;都能在这上面找到解决方法&#xff0c;就是一个老师的存在。 我安装NVIDIA cuda安装时失败了N次&#xff0c;数不清了&am…...

APScheduler-调度器AsyncIOScheduler

AsyncIOScheduler 是一个调度器&#xff0c;基于异步IO的库 AsyncIO。它允许你按照指定的时间表执行异步任务。 下面是实现 AsyncIOScheduler 的步骤&#xff0c;我将使用表格展示每个步骤以及需要做的事情。 1 导入必要的库2 创建异步函数3 创建调度器对象4 添加任务到调度器…...

二十三种设计模式全面解析-原型模式(Prototype Pattern)详解:创造对象的奇妙之道

在软件开发的世界中&#xff0c;创新和效率是永恒的追求。然而&#xff0c;频繁的对象实例化过程可能成为我们创新和效率的绊脚石。随着技术的不断进步&#xff0c;一种被广泛应用的设计模式——原型模式&#xff08;Prototype Pattern&#xff09;应运而生。通过克隆现有对象来…...

el-input 给icon图标绑定点击事件

选择suffix-icon&#xff0c;添加点击事件 <temeplate><el-form-item :label"$t(company[Company address])" prop"address"><el-input v-model"enterpriseForm.address"><i slot"suffix" class"el-icon-m…...

计算机网络——物理层

一、物理层的基本概念 &#xff08;一&#xff09;四大特征 机械特性 接口是怎样的 电器特性 用多少伏的电 功能特性 线路上电平电压的特性 过程特性 实现不同功能所发射的信号的顺序 &#xff08;二&#xff09;两种信号 &#xff08;三&#xff09;调制和编码 &#xff08…...

常用排序算法

目录 直接插入排序 希尔排序 ​编辑 选择排序 堆排序 冒泡排序 快速排序 hoare版 挖坑法 前后指针法 非递归 归并排序 非递归 计数排序 直接插入排序 直接插入排序跟依次模扑克牌一样&#xff0c;将最后一张牌依次与前面的牌比较&#xff0c;最后将牌插入到指定位…...

MGRE环境下的OSPF

实验拓扑 需求 1 R6为ISP只能配置IP地址&#xff0c;R1-R5的环回为私有网段 2 R1/4/5为全连的MGRE结构&#xff0c;R1/2/3为星型的拓扑结构&#xff0c;R1为中心站点 3 所有私有网段可以互相通讯&#xff0c;私有网段使用OSPF完成。 IP规划 配置IP R1 # interface GigabitEt…...

JVM垃圾回收机制全解析

Java虚拟机&#xff08;JVM&#xff09;中的垃圾收集器&#xff08;Garbage Collector&#xff0c;简称GC&#xff09;是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象&#xff0c;从而释放内存空间&#xff0c;避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...

基础测试工具使用经验

背景 vtune&#xff0c;perf, nsight system等基础测试工具&#xff0c;都是用过的&#xff0c;但是没有记录&#xff0c;都逐渐忘了。所以写这篇博客总结记录一下&#xff0c;只要以后发现新的用法&#xff0c;就记得来编辑补充一下 perf 比较基础的用法&#xff1a; 先改这…...

以光量子为例,详解量子获取方式

光量子技术获取量子比特可在室温下进行。该方式有望通过与名为硅光子学&#xff08;silicon photonics&#xff09;的光波导&#xff08;optical waveguide&#xff09;芯片制造技术和光纤等光通信技术相结合来实现量子计算机。量子力学中&#xff0c;光既是波又是粒子。光子本…...

排序算法总结(C++)

目录 一、稳定性二、排序算法选择、冒泡、插入排序归并排序随机快速排序堆排序基数排序计数排序 三、总结 一、稳定性 排序算法的稳定性是指&#xff1a;同样大小的样本 **&#xff08;同样大小的数据&#xff09;**在排序之后不会改变原始的相对次序。 稳定性对基础类型对象…...

AI+无人机如何守护濒危物种?YOLOv8实现95%精准识别

【导读】 野生动物监测在理解和保护生态系统中发挥着至关重要的作用。然而&#xff0c;传统的野生动物观察方法往往耗时耗力、成本高昂且范围有限。无人机的出现为野生动物监测提供了有前景的替代方案&#xff0c;能够实现大范围覆盖并远程采集数据。尽管具备这些优势&#xf…...

k8s从入门到放弃之HPA控制器

k8s从入门到放弃之HPA控制器 Kubernetes中的Horizontal Pod Autoscaler (HPA)控制器是一种用于自动扩展部署、副本集或复制控制器中Pod数量的机制。它可以根据观察到的CPU利用率&#xff08;或其他自定义指标&#xff09;来调整这些对象的规模&#xff0c;从而帮助应用程序在负…...

基于鸿蒙(HarmonyOS5)的打车小程序

1. 开发环境准备 安装DevEco Studio (鸿蒙官方IDE)配置HarmonyOS SDK申请开发者账号和必要的API密钥 2. 项目结构设计 ├── entry │ ├── src │ │ ├── main │ │ │ ├── ets │ │ │ │ ├── pages │ │ │ │ │ ├── H…...

macOS 终端智能代理检测

&#x1f9e0; 终端智能代理检测&#xff1a;自动判断是否需要设置代理访问 GitHub 在开发中&#xff0c;使用 GitHub 是非常常见的需求。但有时候我们会发现某些命令失败、插件无法更新&#xff0c;例如&#xff1a; fatal: unable to access https://github.com/ohmyzsh/oh…...

前端高频面试题2:浏览器/计算机网络

本专栏相关链接 前端高频面试题1&#xff1a;HTML/CSS 前端高频面试题2&#xff1a;浏览器/计算机网络 前端高频面试题3&#xff1a;JavaScript 1.什么是强缓存、协商缓存&#xff1f; 强缓存&#xff1a; 当浏览器请求资源时&#xff0c;首先检查本地缓存是否命中。如果命…...

篇章二 论坛系统——系统设计

目录 2.系统设计 2.1 技术选型 2.2 设计数据库结构 2.2.1 数据库实体 1. 数据库设计 1.1 数据库名: forum db 1.2 表的设计 1.3 编写SQL 2.系统设计 2.1 技术选型 2.2 设计数据库结构 2.2.1 数据库实体 通过需求分析获得概念类并结合业务实现过程中的技术需要&#x…...