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 将等待,除非手动批准更新,否则不会继续。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/119229.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

InstructionGPT

之前是写在[LLM&#xff1a;提示学习Prompt Learning]里的&#xff0c;抽出来单独讲一下。 基本原理 在做下游的任务时&#xff0c;我们发现GPT-3有很强大的能力&#xff0c;但是只要人类说的话不属于GPT-3的范式&#xff0c;他几乎无法理解。例如&#xff0c;我们说把句子A变…

Android Studio Logcat日志VIVO手机显示*号问题

咨询VIVO客服 1、拨盘输入 *#06# 获取串码&#xff0c;发送给客服 2、拨号盘输入*#*#112#*#*-右上角菜单-更多-一键授权 注意不要刷机&#xff0c;恢复出厂设置&#xff0c;手动取消授权哦

# 算法与程序的灵魂

文章目录 前言算法与程序的关系例子1&#xff1a;冒泡排序例子2&#xff1a;斐波那契数列算法优化与进阶总结 前言 大家好我是艾老虎尤&#xff0c;算法与程序是计算机科学中两个非常重要的概念。算法是解决问题的方法和步骤&#xff0c;而程序是算法的具体实现。在计算机科学…

【Linux】Linux任务管理与守护进程

Linux任务管理与守护进程 一、任务管理1、进程组概念2、作业概念3、会话概念4、相关操作 二、守护进程1、守护进程的创建2、守护进程的库函数 一、任务管理 1、进程组概念 在Linux中&#xff0c;每个进程除了有一个进程ID之外&#xff0c;还有一个属性是进程组(PGID)&#xff…

OpenCV 根据极线确定点匹配

import numpy as np import cv2 from backend.__detector import detect_markers_solo from backend._gs_ import aruco_dict, stereo_camera# 通过基础矩阵 验证左右两幅图像中的点是否是匹配点 def check_match_by_fundentalmat(uvs1, uvs2, F):for i in range(len(uvs1)):u…

AI是未来?——神经网络篇

AI是未来&#xff1f;——神经网络篇 文章目录 AI是未来&#xff1f;——神经网络篇1. 神经网络小记 1. 神经网络小记 疑问&#xff1a;假如让神经网络识别一张猫的图片&#xff0c;他经过了n个神经元节点最终识别为了狗。那么此时观察产生反应的这些神经元节点&#xff0c; 是…

CAD迷你看图 mac v4.4.5

CAD迷你看图是一款小巧的DWG文件浏览小工具&#xff0c;支持AutoCAD DWG/DXF等常用图纸文件&#xff0c;可脱离AutoCAD快速浏览DWG图纸&#xff0c;并提供了平移、缩放、全屏等功能。该软件采用独特的云技术&#xff0c;根据不同DWG图纸的需要自动装载相应字体&#xff0c;解决…

MySQL基础入门教程(InsCode AI 创作助手)

MySQL基础入门教程&#xff1a;从安装到查询 MySQL是一种广泛使用的开源关系型数据库管理系统&#xff0c;它提供了强大的数据存储和查询功能。无论是新手还是有经验的开发人员&#xff0c;本篇技术博客将带深入了解MySQL的基础知识&#xff0c;包括安装、配置、数据库操作和查…

木马文件检测系统 毕业设计 JAVA+Vue+SpringBoot+MySQL

项目编号&#xff1a;S041&#xff0c;源码已在 Bilibili 中上架&#xff0c;需要的朋友请自行下载。 https://gf.bilibili.com/item/detail/1104375029为了帮助小白入门 Java&#xff0c;博主录制了本项目配套的《项目手把手启动教程》&#xff0c;希望能给同学们带来帮助。 …

Linux网络编程:IP协议

目录 一. IP协议的功能 二. IP协议报头 2.1 IP报头的格式 2.2 IP报头各部分含义 三. IP报文的分片问题 3.1 什么是分片 3.2 分片的原理 3.3 合并报文 四. 网段划分 4.1 网络号和主机号 4.2 网络号和主机号的划分策略 4.3 特殊的IP地址 4.4 IP地址数量不足问题 五.…

SpringBoot整合redis集群和redis单节点

// 连接redis单节点配置类Configuration public class RedisConfig {Value("${spring.redis.host}")private String host;Value("${spring.redis.port}")private Integer port;Value("${spring.redis.password}")private String password;/*** d…

「滚雪球学Java」:Java前序篇(章节汇总)

&#x1f3c6;本文收录于「滚雪球学Java」专栏&#xff0c;专业攻坚指数级提升&#xff0c;助你一臂之力&#xff0c;带你早日登顶&#x1f680;&#xff0c;欢迎大家关注&&收藏&#xff01;持续更新中&#xff0c;up&#xff01;up&#xff01;up&#xff01;&#xf…

竞赛选题 深度学习卷积神经网络垃圾分类系统 - 深度学习 神经网络 图像识别 垃圾分类 算法 小程序

文章目录 0 简介1 背景意义2 数据集3 数据探索4 数据增广(数据集补充)5 垃圾图像分类5.1 迁移学习5.1.1 什么是迁移学习&#xff1f;5.1.2 为什么要迁移学习&#xff1f; 5.2 模型选择5.3 训练环境5.3.1 硬件配置5.3.2 软件配置 5.4 训练过程5.5 模型分类效果(PC端) 6 构建垃圾…

文心一言 VS 讯飞星火 VS chatgpt (121)-- 算法导论10.4 2题

二、用go语言&#xff0c;给定一个n结点的二叉树&#xff0c;写出一个 O(n)时间的递归过程&#xff0c;将该树每个结点的关键字输出。 文心一言&#xff1a; 在Go语言中&#xff0c;你可以使用递归函数来遍历二叉树的所有节点&#xff0c;并输出每个节点的关键字。以下是一个…

ES 11 新特性

1. 类的私有属性 ES11 提供了类的私有属性,在类的外部无法访问该属性。只有再类的内部能访问。 class Person{//公有属性name;//私有属性#age;#weight;//构造方法constructor(name, age, weight){this.name = name;this.#age = age;this.#weight = weight;}intro(){console.…

OpenLayers入门,OpenLayers从vue的assets资源路径加载geojson文件并解析数据叠加到地图上,以加载世界各国边界为例

专栏目录: OpenLayers入门教程汇总目录 前言 本章以加载世界各国边界的GeoJSON格式数据为例,讲解如何使用OpenLayers从vue的assets资源路径加载geojson文件并解析数据叠加到地图上。 二、依赖和使用 "ol": "^6.15.1"使用npm安装依赖npm install ol@…

css 计算函数属性:calc() 不起效 原因

踩坑&#xff1a;注意事项(- 减号或加号前后需要空格&#xff01;&#xff01;&#xff01;) calc(100% - 251px); 这里错误写法中-两边没加空格&#xff0c;导致width不生效。但并不是所有运算符间都需要加空格&#xff0c;只有 和 - 需要加空格&#xff0c;因为运算允许负…

redis爆满导致数据丢失

记一则redis爆满导致数据丢失的一场事故 某功能上线后&#xff0c;发现出现问题&#xff0c;最后定位到了 redis. 由于存储的数据过多&#xff0c;导致阿里云4G大小的 redis 爆满&#xff0c;触发了回收策略。 于是临时扩容,运维同学当时未找到阿里云配置。 后面我用工具连接了…

Redis集群分布式锁主节点宕机锁丢失问题

Redis系列目录 redis系列之——分布式锁 redis系列之——缓存穿透、缓存击穿、缓存雪崩 redis系列之——Redis为什么这么快&#xff1f; redis系列之——数据持久化&#xff08;RDB和AOF&#xff09; redis系列之——一致性hash算法 redis系列之——高可用&#xff08;主从、哨…

【递归、搜索与回溯算法】第七节.257. 二叉树的所有路径和46. 全排列

作者简介&#xff1a;大家好&#xff0c;我是未央&#xff1b; 博客首页&#xff1a;未央.303 系列专栏&#xff1a;递归、搜索与回溯算法 每日一句&#xff1a;人的一生&#xff0c;可以有所作为的时机只有一次&#xff0c;那就是现在&#xff01;&#xff01;&#xff01;&am…