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

使用 Sealos 在离线环境中光速安装 K8s 集群

作者:尹珉。Sealos 开源社区 Ambassador,云原生爱好者。

当容器化交付遇上离线环境

在当今快节奏的软件交付环境中,容器化交付已经成为许多企业选择的首选技术手段。在可以访问公网的环境下,容器化交付不仅能够提高软件开发和交付的效率,还能够帮助企业实现快速迭代和持续交付。

然而,在离线环境中,容器化交付面临着诸多挑战,包括软件包和镜像的准备困难、配置繁琐、部署时间长等。在本文中,我们将以运维的角度去探讨基于离线环境下使用容器化交付的痛点,提出一些解决方案以帮助企业在离线环境中实现高效的容器化交付。

业务场景

我司主要面向政企客户,所交付的产品必须是部署在内网中。作为运维负责人,一直苦恼于如何在客户离线环境中以容器化的方式交付业务系统。政企客户 IDC 机房的环境特殊性,导致目前运维同学在使用容器化交付时效率不高,客户满意度不高的情况,为了解决这个问题,我们需要找到一个能够在离线环境中快速部署和管理 Kubernetes 集群的工具。

在离线环境中用容器化交付存在以下常见痛点

1. 学习和理解成本高

Kubernetes 是一个复杂的系统,需要进行一定的学习和理解才能熟练使用。这对于不是很精通这项技术的运维工程师来说是一个很大的难点。

2. 镜像管理

在离线环境中,无法直接从互联网下载 Kubernetes 的镜像和依赖项。因此需要将所需的镜像和依赖项提前下载到本地,并将其导入到 Kubernetes 集群中。这可能需要花费一定的时间和精力。

3. 环境配置

在离线环境中,需要手动配置 Kubernetes 所需的所有组件和依赖项,例如 etcd、kube-apiserver、kube-controller-manager、kube-scheduler、kubelet、kube-proxy 等等。这需要在部署时有较高的运维经验来对环境初始化问题进行排查和解决。

4. 网络设置

Kubernetes 集群需要正确配置网络设置,以便容器之间可以互相通信。在离线环境中,网络设置可能会更加复杂,需要仔细设置才能确保正常运行。

基于以上常见的痛点,我们可以看出,在离线环境中用容器化技术进行交付还是存在较高的学习门槛和配置难度,达不到开箱即用闪电交付的效果。

解决方案

1. 使用 Sealos 实现一键打包闪电交付?

Sealos 可以像 Docker 那样把整个集群制作成镜像,实现分布式软件的构建、交付、运行。

Sealos 项目地址:https://github.com/labring/sealos

2. 应用场景

  • Kubernetes 集群安装
  • Kubernetes 集群、数据库、中间件、SaaS 应用整体打包,一键交付
  • 离线交付,多架构支持,国产化支持
  • 各种在 Kubernetes 上编排的分布式应用交付

3.部署架构图

4. 编写一个和 Dockerfile 很类似的 Kubefile,就可以构建一个集群镜像,使用 Clusterfile 去运行一个集群

实战部署

1. 下载 Sealos 二进制文件

$ wget https://github.com/labring/sealos/releases/download/v4.1.4/sealos_4.1.4_linux_amd64.tar.gz \&& tar zxvf sealos_4.1.4_linux_amd64.tar.gz sealos && chmod +x sealos && mv sealos /usr/bin

2. 编写 kubefile 并构建集群镜像

说明:此处基于 Kubernetes1.24.0 封装含有 Calico 的镜像作为演示,实际的业务镜像也可以基于此方式进行封装即可。

FROM labring/kubernetes:v1.24.0-amd64
COPY cni ./cni
CMD ["kubectl apply -f cni/tigera-operator.yaml","kubectl apply -f cni/custom-resources.yaml"]
$ sealos build -t registry.cn-hangzhou.aliyuncs.com/flowyun/kubernetes-calico:latest -f Kubefile .

3. 保存构建出的镜像

$ sealos save -o Kubernetes.tar registry.cn-hangzhou.aliyuncs.com/demo/Kubernetes-calico:latest

4. 拷贝 sealos 二进制文件和集群镜像到离线环境

$ tar zxvf sealos_4.1.4_linux_amd64.tar.gz sealos && chmod +x sealos && mv sealos /usr/bin
$ sealos load -i Kubernetes.tar

5. 查看集群镜像是否导入成功

$ sealos images

6. 安装集群

说明:以单机安装为例,集群安装同理。

$ sealos run registry.cn-hangzhou.aliyuncs.com/demo/Kubernetes-calico:latest --single

7. 验证集群

$ kubectl get pod -A

8.访问业务系统验证

效率对比

部署服务名称传统交付方式部署耗时Sealos 闪电交付方式部署耗时
MariaDB数据库1’hour1’min
中间件(redis、nacos)1’hour30’min
Kubernetes搭建4’hour
Kubernetes组件配置调试2’hour
业务系统服务2’hour
12’hour/人31’min/人

七、总结

  1. Sealos 可以快速部署和升级 Kubernetes 集群。由于 Sealos 使用离线包来提供软件,因此不需要依赖 Internet 连接,可以在离线环境下快速部署和升级集群,提高了部署效率。
  2. Sealos 在离线环境下运行非常稳定和可靠。由于不受外部网络波动等影响,Sealos 的设计使得它在离线环境下运行时非常稳定和可靠,提高了可靠性。
  3. Sealos 使用离线包,不需要从 Internet 下载软件,因此不易受到网络攻击和恶意软件的影响,提高了安全性。
  4. Sealos 使用标准的 Kubernetes YAML 文件来创建集群,这意味着用户可以根据自己的需求进行定制和扩展,从而提高了灵活性。
  5. Sealos 使用简单,不需要复杂的配置和命令,只需按照指南进行操作即可,降低了学习和使用的门槛,提高了易用性。

Sealos 是一款功能强大、易于使用的工具,可以帮助企业在离线环境中实现高效的容器化交付。Sealos 可以快速部署和升级 Kubernetes 集群,在离线环境下运行非常稳定和可靠,使用离线包,不需要从 Internet 下载软件,因此不易受到网络攻击和恶意软件的影响,使用标准的 Kubernetes YAML 文件来创建集群,降低了学习和使用的门槛,提高了易用性。

相关文章:

使用 Sealos 在离线环境中光速安装 K8s 集群

作者:尹珉。Sealos 开源社区 Ambassador,云原生爱好者。 当容器化交付遇上离线环境 在当今快节奏的软件交付环境中,容器化交付已经成为许多企业选择的首选技术手段。在可以访问公网的环境下,容器化交付不仅能够提高软件开发和交付…...

算法-模拟

1、旋转数组 public class Solution {/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可** 旋转数组* param n int整型 数组长度* param m int整型 右移距离* param a int整型一维数组 给定数组* return int整型一维数组*/…...

如何通过Instagram群发消息高效拓展客户?

之前小S有跟大家说过关于独立站+Instagram如何高效引流,发现大家都对Instagram的话题挺关注的。Instagram作为全球最受欢迎的社交媒体之一,对于许多商家和营销人员来说,Instagram是一个不可忽视的营销平台,他们可以通过…...

基于springboot实现多线程抢锁的demo

1、本代码基于定时调度和异步执行同时处理,如果只加异步处理,会导致当前任务未执行完,下个任务到点也不会触发执行 Scheduled(fixedRate 50_000)Asyncpublic void testThread() throws Exception{ZkLock lock new ZkLock(zkJob.getZK(), &q…...

Java I/O模型发展以及Netty网络模型的设计思想

Java I/O模型发展以及Netty网络模型的设计思想 I/O模型Java BIOJava NIOJava AIO NIO Reactor网络模型单Reactor单线程模型单Reactor多线程模型主从Reactor多线程模型 Netty通信框架 前言: BIO、NIO的代码实践参考:Java分别用BIO、NIO实现简单的客户端服…...

智能电网时代:数字孪生的崭露头角

随着科技的不断进步,数字孪生已经开始在电力行业崭露头角,为这个关键的行业带来了前所未有的机遇和潜力。本文就带大家了解一下数字孪生在哪些方面为电力行业做出改变,以及未来的创新应用。 首先,数字孪生可以提高电力系统运营效率…...

每日一题 501二叉搜素树中的众数(中序遍历)

题目 给你一个含重复值的二叉搜索树(BST)的根节点 root ,找出并返回 BST 中的所有 众数(即,出现频率最高的元素)。 如果树中有不止一个众数,可以按 任意顺序 返回。 假定 BST 满足如下定义&a…...

测试理论与方法----测试流程第三个环节:设计测试用例

测试流程第三个环节&#xff1a;设计测试用例&#xff1a;怎么测<——>测试需求的提取&#xff1a;测什么 ### 5、测试用例 描述&#xff1a;测试用例(TestCase)&#xff1a;是一份关于【具体测试步骤】的文档&#xff0c;是为了达到最佳的测试效果或高效揭露软件中潜藏的…...

C++多态案例2----制作饮品

#include<iostream> using namespace std;//制作饮品的大致流程都为&#xff1a; //煮水-----冲泡-----倒入杯中----加入辅料//本案例利用多态技术&#xff0c;提供抽象类制作饮品基类&#xff0c;提供子类制作茶叶和咖啡class AbstractDrinking {public://煮水//冲水//倒…...

机械零件保养3d模拟演示打消客户购买顾虑

复杂机械的工作运转是复杂的&#xff0c;想要对机械有深度的理解和迭代&#xff0c;必须了解它的运转原理及参数&#xff0c;复杂机械运行原因教学存在着不可视、系统庞杂及知识点多等弊病&#xff0c;3D虚拟展示是基于web3d网页运行的三维页面&#xff0c;可以将复杂机械运行过…...

SpringBoot的自动装配源码分析

文章目录 一&#xff1a;什么是自动装配二、springboot的启动流程1.调用SpringApplication&#xff08;&#xff09;的构造方法2.执行核心run方法&#xff08;&#xff09;3.执行核心prepareContext&#xff08;&#xff09;4.执行核心refreshContext&#xff08;&#xff09;5…...

Linux常用命令——csplit命令

在线Linux命令查询工具 csplit 将一个大文件分割成小的碎片文件 补充说明 csplit命令用于将一个大文件分割成小的碎片&#xff0c;并且将分割后的每个碎片保存成一个文件。碎片文件的命名类似“xx00”&#xff0c;“xx01”。csplit命令是split的一个变体&#xff0c;split只…...

React 组件的3大属性: state

state 一、理解二、用途三、使用3.1、类初始化3.2、函数初始化 四、状态读更4.1、组件内部状态管理和数据更新4.2、state 和 props 一起使用 一、理解 组件被称为"状态机", 页面的显示是根据组件的state 属性的数据来显示。 state 是一个用于存储和管理组件内部数据的…...

vscode 上传项目到gitlab

第一步初始化项目 如果没有创建过分支&#xff08;创建分支这里不记录&#xff09;&#xff0c;默认是master分支&#xff1a; ①将所需要的上传的文件添加到暂存区&#xff0c;如图&#xff1a; ②填写一下注释信息&#xff0c;将暂存区的文件上传到本地分支&#xff08;没有创…...

[羊城杯 2020] easyphp

打开题目&#xff0c;源代码 <?php$files scandir(./); foreach($files as $file) {if(is_file($file)){if ($file ! "index.php") {unlink($file);}}}if(!isset($_GET[content]) || !isset($_GET[filename])) {highlight_file(__FILE__);die();}$content $_GE…...

QT 常用类与组件

0 思维导图 1 信息调试类&#xff08;QDebug&#xff09; #include "widget.h" #include<iostream> //printf #include<QDebug> //qDebuf using namespace std; //coutWidget::Widget(QWidget *parent): QWidget(parent) {//输出函数//使用…...

C#控制台连接Mysql数据库,有配置数据库连接字符串的配置文件

C#控制台连接Mysql数据库&#xff0c;有配置数据库连接字符串的配置文件 实现功能 读取..txt 中的配置文件&#xff0c;来初始化连接字符串让连接字符串的配置文件不存在会主动创建默认的连接字符串 注意点&#xff1a; 需要引用Newtonsoft使用mysql 代码如下 using Syst…...

PowerBuilder连接SQLITE3

PowerBuilder,一个古老的IDE,打算陆续发些相关的,也许还有人需要,内容可能涉及其他作者,但基本都是基于本人实践整理,如涉及归属,请联系. SQLite,轻型数据库,相对与PowerBuilder来说是个新事务,故发数来,以供参考. PB中使用OLE Microsoft OLE DB方式进行连接,如下 // Profile…...

Git 基本原理和常用操作

Git Git 是一个开源的分布式版本控制系统&#xff0c;可以有效、高速地处理从很小到非常大的项目版本管理。由 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开源的版本控制软件。 Git 常用操作 git 提交流程&#xff1a;工作区 -> git add 到暂存区 -> gi…...

单元测试和集成测试的区别

单元测试和集成测试是软件开发中常用的两种测试方法&#xff0c;它们的主要区别如下&#xff1a; 范围不同&#xff1a;单元测试关注于对软件中的最小功能单元进行测试&#xff0c;通常是对独立的函数、方法或类进行测试。而集成测试则更加综合&#xff0c;涉及多个模块、组件或…...

如何在5分钟内制作专业滚动歌词?LRC Maker免费在线工具终极指南

如何在5分钟内制作专业滚动歌词&#xff1f;LRC Maker免费在线工具终极指南 【免费下载链接】lrc-maker 歌词滚动姬&#xff5c;可能是你所能见到的最好用的歌词制作工具 项目地址: https://gitcode.com/gh_mirrors/lr/lrc-maker 你是否曾为制作歌词时间轴而烦恼&#x…...

汇编新手避坑指南:搞懂AX、BX、CX、DX这些“双面”寄存器,才算入门

汇编新手避坑指南&#xff1a;搞懂AX、BX、CX、DX这些“双面”寄存器&#xff0c;才算入门 第一次接触汇编语言时&#xff0c;那些神秘的寄存器名称总让人望而生畏。尤其是AX、BX、CX、DX这几个"双面人"&#xff0c;一会儿能拆成AH和AL&#xff0c;一会儿又能合体使用…...

告别mmWaveStudio卡顿:手把手教你用DCA1000EVM CLI命令行录制IWR1642雷达数据

告别mmWaveStudio卡顿&#xff1a;手把手教你用DCA1000EVM CLI命令行录制IWR1642雷达数据 在雷达信号处理领域&#xff0c;数据采集的稳定性和效率直接影响后续算法开发的效果。传统图形界面工具mmWaveStudio虽然功能全面&#xff0c;但在长时间连续采集时容易出现卡顿、崩溃等…...

中控SCADA的VBS脚本玩不转了?试试用Python来“降维打击”,搞定复杂数据处理与模型调用

中控SCADA的VBS脚本玩不转了&#xff1f;试试用Python来“降维打击”&#xff0c;搞定复杂数据处理与模型调用 在工业自动化领域&#xff0c;中控SCADA系统长期扮演着数据采集与监控的核心角色。然而&#xff0c;当项目需求从简单的数据记录升级到需要复杂分析、预测性维护或实…...

如何一键自动化部署Office:LKY Office Tools完整配置指南

如何一键自动化部署Office&#xff1a;LKY Office Tools完整配置指南 【免费下载链接】LKY_OfficeTools 一键自动化 下载、安装、激活 Office 的利器。 项目地址: https://gitcode.com/GitHub_Trending/lk/LKY_OfficeTools 在Windows系统中安装Microsoft Office一直是个…...

告别GDB依赖:在NEMU里打造专属调试器,我是如何搞定单步执行与内存扫描的

从零构建教学级调试器&#xff1a;NEMU Monitor模块深度解析与实践指南 在计算机系统与体系结构的学习过程中&#xff0c;调试器如同探索程序执行奥秘的显微镜。传统调试工具如GDB虽然功能强大&#xff0c;但其内部工作机制对初学者而言却如同黑箱。本文将带您深入NEMU模拟器的…...

3分钟掌握视频下载:VideoDownloadHelper免费插件完全指南

3分钟掌握视频下载&#xff1a;VideoDownloadHelper免费插件完全指南 【免费下载链接】VideoDownloadHelper Chrome Extension to Help Download Video for Some Video Sites. 项目地址: https://gitcode.com/gh_mirrors/vi/VideoDownloadHelper 你是否曾经遇到过这样的…...

Agent+用药提醒:真正难的不是提醒,而是结合病情和依从性管理

用药提醒如果只做成定时推送&#xff0c;本质上接近一个带药品名称的闹钟。医疗健康应用里更棘手的问题是&#xff1a;用户是否按计划执行、漏服后如何记录、连续异常时是否需要升级提醒&#xff0c;以及这些规则如何被机构确认并可审计。本文只讨论技术架构和工程流程示例&…...

寒战1994电影完整版免费看,网盘在线观看完整版

寒战1994电影完整版免费看&#xff0c;转存到自己网盘后&#xff0c;可以网盘在线观看完整版链接:https://pan.baidu.com/s/1U7-U0Csp2BCc9NYXEHuQZw ​ 提取码:8888操作方法&#xff1a;复制链接&#xff0c;打开百度网盘&#xff0c;便会自动跳转&#xff0c;转存到自己网盘就…...

智绘低空新图景:黎阳之光以数智技术赋能低空经济高质量发展

在长三角一体化战略纵深推进、新质生产力加速培育的时代浪潮中&#xff0c;低空经济正成为驱动区域经济转型升级的重要引擎。华东师范大学大虹桥低空经济研究院的成立&#xff0c;为行业搭建起“理论实践技术人才”的全链条创新平台&#xff1b;而北京黎阳之光科技有限公司&…...