OpenShift 4 - 在 OpenShift Virtualization 上自动部署 OpenShift 托管集群(演示视频)

news2024/9/30 17:38:24

《OpenShift / RHEL / DevSecOps 汇总目录》
说明:本文已经在 OpenShift 4.12 + OpenShift Virtualization 4.12 + ACM 2.8 的环境中验证

文章目录

  • 技术架构
  • 安装配置环境
  • 环境要求
    • 安装配置 OpenShift Virtualization
    • 安装配置 Red Hat ACM
    • 安装配置 MetalLB
    • 在 OpenShift Virtualization 中创建 OpenShift Hosted Cluster 托管集群
    • 删除托管集群
  • 演示视频
  • 参考

技术架构

利用 OpenShift Virtualization 运行 OpenShift Hosted Cluster 即托管集群的架构如下图,该模式就是在 OpenShift 管理集群中的由 OpenShift Virtualization 提供的 VM 中运行托管集群的 Worker 节点。
在这里插入图片描述

安装配置环境

环境要求

  • 如果是生产环境,建议在 Baremetal 环境中运行 OpenShift 管理集群。
  • OpenShift 管理集群需要使用 Kubernetes-OVN 类型的 CNI。如果使用的是 OpenShiftSDN,可参考《Migrating to the OVN-Kubernetes network plugin》将其转换成 Kubernetes-OVN。

安装配置 OpenShift Virtualization

  1. 使用缺省配置安装 OpenShift Virtualization Operator。
  2. 然后在其内部使用缺省配置创建一个 OpenShift Virtualization Deployment。

安装配置 Red Hat ACM

  1. 使用缺省配置安装 Red Hat ACM Operator。
  2. 使用缺省配置创建一个 MultiClusterHub 对象。
  3. 执行命令允,许 multiclusterengine 使用 hypershift-preview。说明:这是由于该功能目前还是 Preview 阶段,预计正式 GA 后可省略此步。
$ oc patch mce multiclusterengine --type=merge -p '{"spec":{"overrides":{"components":[{"name":"hypershift-preview","enabled":true}]}}}'
  1. 基于以下 YAML 创建一个 ManagedClusterAddOn 对象。
apiVersion: addon.open-cluster-management.io/v1alpha1
kind: ManagedClusterAddOn
metadata:
  name: hypershift-addon
  namespace: local-cluster
spec:
  installNamespace: open-cluster-management-agent-addon
  1. 执行以下命令,确认在 hypershift 项目中有运行的 Pod。
$ oc get pod -n hypershift
NAME                        READY   STATUS    RESTARTS   AGE
operator-7fdc8d998b-8s7pl   1/1     Running   0          9h
operator-7fdc8d998b-l9xpd   1/1     Running   0          9h

安装配置 MetalLB

  1. 使用缺省配置安装 MetalLB Operator。
  2. 基于以下缺省配置创建一个 MetalLB 对象。
apiVersion: metallb.io/v1beta1
kind: MetalLB
metadata:
  name: metallb
  namespace: metallb-system
  1. 基于以下 YAML 创建一个 IPAddressPool 对象。
apiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:
  name: ip-addresspool
  namespace: metallb-system
spec:
  addresses:
  - 10.39.127.20-10.39.127.26
  autoAssign: true
  avoidBuggyIPs: false
  1. 基于以下 YAML 创建一个 L2Advertisement 对象。
apiVersion: metallb.io/v1beta1
kind: L2Advertisement
metadata:
  name: l2-adv
  namespace: metallb-system
spec:
  ipAddressPools:
    - ip-addresspool
  1. 执行命令,允许 OpenShift 的 ingresscontroller 使用 wildcard DNS routes。
$ oc patch ingresscontroller -n openshift-ingress-operator default --type=json -p '[{ "op": "add", "path": "/spec/routeAdmission", "value": {wildcardPolicy: "WildcardsAllowed"}}]'

在 OpenShift Virtualization 中创建 OpenShift Hosted Cluster 托管集群

  1. 创建名为 clusters 的新项目。
$ oc new-project clusters
  1. 在 RHACM 控制台的集群页面中点击“创建集群”,然后进入 Red Hat OpenShift Virtualization,再点击 “托管”就可看到以下创建集群的提示界面。
    在这里插入图片描述

  2. 根据上图的提示执行以下命令,即可创建托管集群,其 Worker 节点将运行在有 kubevirt 供应的 VM 环境中。另外,其中的 pull-secret 文件是从 Red Hat 官方下载镜像的 secret。

$ export PULL_SECRET="$HOME/pull-secret"
$ export MEM="6Gi"
$ export CPU="2"
$ export WORKER_COUNT="2"
$ export CLUSTER_NAME=my-cluster-1
$ export OCP_VERSION=4.13.2
 
$ hypershift create cluster kubevirt \
  --name $CLUSTER_NAME \
  --release-image quay.io/openshift-release-dev/ocp-release:$OCP_VERSION-x86_64 \
  --node-pool-replicas $WORKER_COUNT \
  --pull-secret $PULL_SECRET \
  --memory $MEM \
  --cores $CPU
  1. 托管集群成功创建后,可在 RHACM 中看到该集群。
    在这里插入图片描述

删除托管集群

  1. 可执行以下命令删除托管集群。
$ hypershift destroy cluster kubevirt --name my-cluster-1
2023-09-06T11:59:18Z    INFO    Found hosted cluster    {"namespace": "clusters", "name": "my-cluster-1"}
2023-09-06T11:59:19Z    INFO    Updated finalizer for hosted cluster    {"namespace": "clusters", "name": "my-cluster-1"}
2023-09-06T11:59:19Z    INFO    Deleting hosted cluster {"namespace": "clusters", "name": "my-cluster-1"}
2023-09-06T12:01:41Z    INFO    Deleting Secrets        {"namespace": "clusters"}
2023-09-06T12:01:41Z    INFO    Deleted CLI generated secrets
2023-09-06T12:01:41Z    INFO    Finalized hosted cluster        {"namespace": "clusters", "name": "my-cluster-1"}
2023-09-06T12:01:41Z    INFO    Successfully destroyed cluster and infrastructure       {"namespace": "clusters", "name": "my-cluster-1d", "infraID": "my-cluster-1-zkrvf"}

演示视频

视频

参考

https://medium.com/@ben.swinney_ce/hypershift-with-kubevirt-564bd1f850ce

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

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

相关文章

无涯教程-JavaScript - DEC2HEX函数

描述 DEC2HEX函数将十进制数转换为十六进制。 语法 DEC2HEX (number, [places])争论 Argument描述Required/Optionalnumber 要转换的十进制整数。 如果number为负数,则将忽略位数,并且DEC2HEX返回10个字符(40位)的十六进制数字,其中最高有效位是符号位。其余的39位是幅度位…

24.绳子切割

目录 题目 Description Input Output 思路 注意事项 C完整代码 题目 Description 有N条绳子,它们的长度分别为Li,Li都是正整数。如果从它们中切割出K条长度相同的绳子(绳子的长度为整数),这K条绳子每条最长能有…

照片怎么进行压缩?这几个压缩方法分享给你

照片怎么进行压缩?在如今这个时代,我们经常需要共享照片。但是,一些高像素的照片可能会占用大量存储空间,甚至可能无法通过电子邮件或社交媒体进行共享。因此,我们需要对照片进行压缩,以减小文件的大小并方…

互联网医院App开发:构建医疗服务的技术指南

互联网医院App的开发是一个复杂而具有挑战性的任务,但它也是一个充满潜力的领域,可以为患者和医疗专业人员提供更便捷的医疗服务。本文将引导您通过一些常见的技术步骤来构建一个简单的互联网医院App原型,以了解该过程的基本概念。 技术栈选…

A133P EC200M模块调试

Linux USB驱动框架: USB 是一种分层总线结构。USB 设备与主机之间的数据传输由 USB 控制器控制。Linux USB 驱动程序架构如下图所示。Linux USB 主机驱动包括三部分:USB 主机控制器驱动、USB 核心和 USB 设备驱动。 模块加载 USB 转串口 option 驱动程序…

教师节限定!10场数据科学校内赛与10场数据科学数据科学教学实训工作坊,充实实践教学

9月的第一天,上海的南北高架从早上6点开始堵了两个多小时,因为小区附近有个小学差点连门都出不去。那一刻才如此清晰地感受到,开学了。 事实上暑假的两个月,和鲸的员工们几乎没有感受到“假期”和“学期”之间的区别,…

都在说GPT,如何学习并掌握GPT1-4模型运用

了解更多点击《都在说GPT,如何学习并掌握GPT1-4模型运用》 GPT对于每个科研人员已经成为不可或缺的辅助工具,不同的研究领域和项目具有不同的需求。例如在科研编程、绘图领域: 1、编程建议和示例代码: 无论你使用的编程语言是Python、R、MATL…

Java低代码开发:jvs-list(列表引擎)功能(二)字段及样式配置

字段的增减 进入列表页设计器-页表设计界面,点击新增一行、或者删除按钮,可以对字段进行增减操作,如果对于权限的列表页,可以使用批量创建字段的按钮: 字段的批量设置,点击批量添加如下图所示 字段为中文名…

Linux 进程管理之内核栈和struct pt_regs

文章目录 前言一、内核栈二、struct pt_regs2.1 简介2.2 获取pt_regs 参考资料 前言 Linux内核栈是用于存储内核执行期间的函数调用和临时数据的一块内存区域。每个运行的进程都有自己的内核栈,用于处理中断、异常、系统调用以及内核函数的执行。 每个进程的内核栈…

网络技术十三:DNS(域名服务器)

DNS 域名 产生背景 通过IP地址访问目标主机,不便于记忆 通过容易记忆的域名来标识主机位置 域名的树形层次化结构 根域 领级域 主机所处的国家/区域,注册人的性质 二级域 注册人自行创建的名称 主机名 区域内部的主机的名称 由注册人自行创建…

2023-python-import耗时是为什么?

场景 场景: 树莓派4B 离线安装【arch64架构】 了 torch,sklearn等机器学习库 运行程序文件时候, import的时间总共花了 10s,无法忍受。 查阅下网站: import官方说辞 看蒙了,太多了; 反正就看看大概&…

Credo(纳斯达克股票代码:CRDO)推出Seagull 452系列高性能光DSP芯片

加州圣何塞和中国深圳,2023年9月5日——Credo Technology(纳斯达克股票代码:CRDO)是一家提供安全、高速连接解决方案的创新企业。Credo致力于为数据基础设施市场提供其所必须的高能效、高速率解决方案,以满足其不断增长…

怎么让图片动起来?试试这几种方法

怎么让图片动起来?让图片动起来可以为你的内容增添趣味性和互动性,吸引更多的关注和互动。在社交媒体上使用动态图片可以吸引更多的关注和互动,让你的内容更容易被人们发现和分享。在广告宣传方面,动态图片可以帮助你更好地展示产…

matlab和python做zscore结果不一样的问题

解决matlab和python做zscore标准化结果不一样的问题 总结: matlab和python做zscore时使用的求std公式的默认方法有差异,导致了结果差异。 想要结果相同则使用以下代码: td rand(50,15,39)%td是三维矩阵,求zscore结果 #Python代码&#xf…

爬虫逆向实战(29)-某蜂窝详情页(cookie、混淆、MD5、SHA)

一、数据接口分析 主页地址:某蜂窝 1、抓包 通过抓包可以发现数据是静态的,在html中。 2、判断是否有加密参数 请求参数是否加密? 无请求头是否加密? 无响应是否加密? 无cookie是否加密? 通过查看“c…

AIGC是不是有点虎头蛇尾

一、前言 2023年上半年AI与AIGC真是风风火火,不管是技术界还是资本界还是其他任何领域,如果你不知道chatgpt和AIGC,你就是个跟不上时代的人儿。如今大半年过去了,好像这个chatgpt和AIGC比没有太多的人提起,是不是有点…

ONNX OpenVino TensorRT MediaPipe NCNN Diffusers

框架 和Java生成的中间文件可以在JVM上运行一样,AI技术在具体落地应用方面,和其他软件技术一样,也需要具体的部署和实施的。既然要做部署,那就会有不同平台设备上的各种不同的部署方法和相关的部署架构工具 onnx 在训练模型时可以…

工业4.0时代生产系统对接集成优势,MES和ERP专业一体化管理-亿发

在现代制造业中,市场变化都在不断加速。企业面临着不断加强生产效率、生产质量和快速适应市场需求的挑战。在制造行业,日常管理中的ERP系统、MES系统就显得尤为重要。越来越多的企业正在采用MES系统和ERP管理系统的融合,以实现智能化生产管理…

手把手教你在linux中部署kong网关

一 Kong网关介绍 Kong是一个云原生,快速,可扩展的分布式微服务抽象层(也被称为API网关或API中间件), 它的核心价值是高性能和可扩展性,于2015年作为一个开源项目提供;Kong可以充当微服务请求的网关&#x…

SpringCloud环境搭建及入门案例

技术选型: Maven 3.8.4SpringBoot 2.7.8SpringCloud 2021.0.4SpringCloudAlibaba 2022.0.1.0Nacos 2.1.1Sentinel 1.8.5 模块设计: 父工程:SpringCloudAlibaba订单微服:order-service库存微服:stock-service 1.创建…