【K8s】1# 使用kuboard-spray安装K8s集群
文章目录
- 搭建k8s集群
- 1.推荐配置
- 1.1.服务器配置
- 1.2.软件版本
- 2.使用`Kuboard-Spray`安装k8s集群
- 2.1.配置要求
- 2.2.操作系统兼容性
- 2.3.安装 Kuboard-Spray
- 2.4.加载离线资源包
- 2.5.规划并安装集群
- 2.6.安装成功
- 2.7.访问集群
- 3.涉及的命令
- 3.1.linux
- 4.问题汇总
- Q1:启动离线集群安装报错
- Q2.操作系统不支持(升级内核)
搭建k8s集群
前提是各节点已经安装了docker
1.推荐配置
1.1.服务器配置
节点 | 服务 | 配置 | 备注 |
---|---|---|---|
node1 | 192.168.33.102 | 2C4G | kuboard-spray、kuboard |
node2 | 192.168.33.103 | 2C4G | master、etcd、worker |
node3 | 192.168.33.104 | 2C4G | master、etcd、worker |
node4 | 192.168.33.105 | 2C4G | master、etcd、worker |
node5 | 192.168.33.106 | 2C4G | worker |
1.2.软件版本
软件 | 版本 | 备注 |
---|---|---|
Docker | 20.10.9, | |
Kubernetes | v1.23.4 | |
kuboard-spray | v1.2.4-amd64 | k8s 集群安装工具 |
kuboard | v3.3.0.0 | k8s集群管理工具 |
2.使用Kuboard-Spray
安装k8s集群
使用Kuboard-Spray安装k8s
Kuboard-Spray 是一款可以在图形界面引导下完成 Kubernetes 高可用集群离线安装的工具
2.1.配置要求
- 至少 2 台 2核4G 的服务器
- 本文档中,CPU 必须为 x86 架构,暂时未适配 arm 架构的 CPU
CentOS 7.8
、CentOS 7.9
或Ubuntu 20.04
2.2.操作系统兼容性
Centos版本 | 本文档是否兼容 | 备注 |
---|---|---|
Centos 7.8 | ✔ | 已验证 |
Centos 7.9 | ✔ | 已验证 |
Ubuntu 20.04 | ✔ | 已验证 |
2.3.安装 Kuboard-Spray
- 取一台服务器或虚拟机,执行一条命令,即可完成
Kuboard-Spray
的安装。 - 对这台服务器的最低要求为:
1核2G
不少于 10G 磁盘空余空间
已经安装好 docker
- 待执行的命令如下:
docker run -d \--restart=unless-stopped \--name=kuboard-spray \-p 80:80/tcp \-e TZ=Asia/Shanghai \-v /var/run/docker.sock:/var/run/docker.sock \-v ~/kuboard-spray-data:/data \eipwork/kuboard-spray:v1.2.4-amd64# 如果抓不到这个镜像,可以尝试一下这个备用地址:# swr.cn-east-2.myhuaweicloud.com/kuboard/kuboard-spray:latest-amd64
持久化
KuboardSpray
的信息保存在容器的/data
路径,请将其映射到一个您认为安全的地方,上面的命令中,将其映射到了~/kuboard-spray-data
路径;- 只要此路径的内容不受损坏,重启、升级、重新安装
Kuboard-Spray
,或者将数据及Kuboard-Spray
迁移到另外一台机器上,> 您都可以找回到原来的信息。
注意: 这里为何使用eipwork/kuboard-spray:v1.2.4-amd64
这个版本?因为官网推荐的版本安装失败–问题Q1
- 在浏览器打开地址
http://这台机器的IP
,输入用户名admin
,默认密码Kuboard123
,即可登录Kuboard-Spray
界面
2.4.加载离线资源包
因为我们的容器引擎是 docker20,所以选这个(
按需加载资源包
)
如果不想自己踩坑,建议和我一样:如下资源包 ↓
- 在 Kuboard-Spray 界面中,导航到 系统设置 --> 资源包管理 界面,可以看到已经等候您多时的 Kuboard-Spray 离线资源包,如下图所示
- 点击 导 入 按钮,在界面的引导下完成资源包的加载。
注意:这里有个坑,切莫使用当前大版本中最新小版本:
- 比如最开始我导入的资源包如下 适用于
docker20.10
的最新版本kuborad-spray
,结果最后安装k8s集群的时候,死活装不上
- 最终使用如下版本,成功完成安装(
建议大家在尝试新玩具时,最好别用最新的,节省时间,珍爱生命
)
- 权限问题
- 导入资源包时,可能会碰到
no such file or directory
或者permission denied
之类的错误提示,通常是因为您开启了SELinux
,导致kuboard-spray
不能读取映射到容器/data
的路径- 离线导入
- 如果您处在内网环境,上图中的列表默认将是空的,请注意其中的 离线加载资源包 按钮,它可以引导您轻松完成资源包的离线加载过程。
2.5.规划并安装集群
-
在
Kuboard-Spray
界面中,导航到 集群管理 界面,点击界面中的 添加集群安装计划 按钮,填写表单如下:- 集群名称: 自定义名称,本文中填写为 kuboard123;
- 资源包:选择前面步骤中导入的离线资源包。
- 点击上图对话框中的 确定 按钮后,将进入集群规划页面,在该界面中添加您每个集群节点的连接参数并设置节点的角色,如下图所示:
重要: kuboard-spray 所在机器不能当做 K8S 集群的一个节点,因为安装过程中会重启集群节点的容器引擎,这会导致 kuboard-spray 被重启掉。
- 点击上图的 保存 按钮,再点击 执行 按钮,可以启动集群的离线安装过程,如下图所示:
2.6.安装成功
2.7.访问集群
-
如果集群日志界面提示您集群已经安装成功,此时您可以返回到集群规划页面,此界面将自动切换到 访问集群 标签页,如下图所示:
界面给出了三种方式可以访问 kubernetes 集群:
- 在集群主节点上执行 kubectl 命令
- 获取集群的 .kubeconfig 文件
- 将集群导入到 kuboard管理界面
3.涉及的命令
3.1.linux
- 查看操作系统是centos还是ubuntu
cat /etc/redhat-release
4.问题汇总
Q1:启动离线集群安装报错
解决:安装
v1.2.4-amd64
这个版本docker hub
最新的
docker run -d \--restart=unless-stopped \--name=kuboard-spray \-p 80:80/tcp \-e TZ=Asia/Shanghai \-v /var/run/docker.sock:/var/run/docker.sock \-v ~/kuboard-spray-data:/data \eipwork/kuboard-spray:v1.2.4-amd64# 如果抓不到这个镜像,可以尝试一下这个备用地址:# swr.cn-east-2.myhuaweicloud.com/kuboard/kuboard-spray:latest-amd64
Q2.操作系统不支持(升级内核)
芭比Q了 所有节点重装系统? no、no、no 别着急,我们直接升级内核就行,看下面操作
解决:升级 centos内核,把7.5 升级到最新 7.9即可解决
yum
会把下载的软件包和eader
存储在cache
中,而不自动删除。所以需要先使用yum clean all
命令清除缓存。yum clean all
- 然后使用
yum update
命令升级所有包、软件和系统内核。该操作有风险,请注意备份数据yum update
- 期间会有询问你是否安装,有三个选项供你选择,输入
y
即可,然后开始自动下载安装- 更新安装完后,重启系统
reboot
- 验证
# cat /etc/centos-release CentOS Linux release 7.9.2009 (Core)
相关文章:

【K8s】1# 使用kuboard-spray安装K8s集群
文章目录 搭建k8s集群1.推荐配置1.1.服务器配置1.2.软件版本 2.使用Kuboard-Spray安装k8s集群2.1.配置要求2.2.操作系统兼容性2.3.安装 Kuboard-Spray2.4.加载离线资源包2.5.规划并安装集群2.6.安装成功2.7.访问集群 3.涉及的命令3.1.linux 4.问题汇总Q1:启动离线集…...
leetCode算法—12. 整数转罗马数字
12. 整数转罗马数字 难度:中等 ** 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 II ,即…...

使用OpenCV4实现工业缺陷检测的六种方法
目录 1 机器视觉2 缺陷检测3 工业上常见缺陷检测方法 1 机器视觉 机器视觉是使用各种工业相机,结合传感器跟电气信号实现替代传统人工,完成对象识别、计数、测量、缺陷检测、引导定位与抓取等任务。其中工业品的缺陷检测极大的依赖人工完成,…...

Excel 获取当前行的行数
ROW() 获取当前行 ROW()1 获取当前行然后支持二次开发...
R语言【stringr】——str_detect 检测是否存在字符串的匹配项
Package stringr version 1.5.1 str_detect(string, pattern, negate FALSE) 参数【string】:输入向量。既可以是字符向量,也可以是强制作为一个字符向量。 参数【pattern】:要寻找的模式。默认解释为正则表达式,如 vignette(&…...

【SpringMVC】SpringMVC的请求与响应
文章目录 0. Tomcat环境的配置1. PostMan工具介绍创建WorkSpace建立新的请求 2. 请求映射路径案例结构与代码案例结构案例代码 案例存在问题解决方案方法方法升级版——配置请求路径前缀注解总结 3. Get请求与Post请求案例结构与案例代码案例结构案例代码 Get请求Post请求接收中…...

Spring Boot3通过GraalVM生成exe执行文件
一、安装GraalVM 1、官网:https://www.graalvm.org/downloads/ 2、配置环境变量 2.1、环境变量必须使用JAVA_HOME,否则会出现问题 2.2、在系统变量配置Path,%JAVA_HOME%\bin,注意必须放在顶部第一位 2.3、配置jdk的环境变量,在P…...

【Amazon 实验②】使用缓存策略及源请求策略,用于控制边缘缓存的行为及回源行为
文章目录 1. 了解缓存策略和源请求策略1.1 使用缓存键和缓存策略 实验:使用CloudFront缓存策略和缓存键控制缓存行为 接上一篇文章【Amazon 实验①】使用 Amazon CloudFront加速Web内容分发,我们现在了解和配置如何使用缓存策略及源请求策略,…...
达梦数据对比工具的部署与使用
1、拷贝达梦软件bin目录到Oracle服务器(root用户) 压缩Linux rh6 x86版本的达梦数据库bin目录,例如压缩文件为dmbin.tar.gz,将文件拷贝到Oracle服务器指定目录并解压(如:/home/oracle/dmbin)&a…...

TLC2543(12位A/D转换器)实现将输入的模拟电压显示到数码管上
代码: #include <reg51.h> #define uchar unsigned char #define uint unsigned int// 数码管0-9 unsigned char seg[] {0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F}; sbit SDO P1^0; sbit SDI P1^1; sbit CS P1^2; sbit CLK P1^3; s…...
npm的使用技巧
以下是一些NPM(Node Package Manager)的使用技巧: 1. **获取帮助**: - 使用 npm help 或者 npm <command> --help 可以获取关于特定命令的帮助信息。 2. **命令自动完成**: - 在 Bash、Zsh 等 shell 中&…...
MySQL 5.6的新特性
MySQL 5.6是一个主要的版本发布,它在性能、可伸缩性、可靠性和可用性方面引入了多项重要改进和新特性。它在2013年发布,相比于它的前身MySQL 5.5,MySQL 5.6带来了以下关键升级: 优化的InnoDB存储引擎:MySQL 5.6中的Inn…...
大模型重构云计算:AI原生或将改变格局
摘要:随着AI技术的快速发展,大模型正逐渐改变云计算的格局。本文将深入探讨大模型如何重构云计算,并分析其对云计算的影响。 一、开篇引言 近年来,人工智能技术的飞速发展,特别是大模型的崛起,正在对云计算…...
一文讲清什么是TypeScript装饰器以及如何使用TypeScript装饰器
TypeScript 装饰器是什么? 装饰器(Decorator)是TypeScript提供的一个高级语法,它类似于一种特殊类型的声明,可以附加到类声明,方法,访问符,属性或参数上。装饰器主要以函数的形式出…...

恶意软件样本行为分析——Process Monitor和Wireshark
1.1 实验名称 恶意软件样本行为分析 1.2 实验目的 1) 熟悉 Process Monitor 的使用 2) 熟悉抓包工具 Wireshark 的使用 3) VMware 的熟悉和使用 4) 灰鸽子木马的行为分析 1.3 实验步骤及内容 第一阶段:熟悉 Process Monitor 的使用 利用 Process …...

【XR806开发板试用】通过http请求从心知天气网获取天气预报信息
1. 开发环境搭建 本次评测开发环境搭建在windows11的WSL2的Ubuntu20.04中,关于windows安装WSL2可以参考文章: Windows下安装Linux(Ubuntu20.04)子系统(WSL) (1) 在WSL的Ubuntu20.04下安装必要的工具的. 安装git: sudo apt-get install git …...
NPM介绍与使用
什么是NPM? NPM(Node Package Manager)是一个强大的包管理工具,专门用于Node.js应用程序的依赖管理。它允许开发者轻松地分享、安装、更新和管理项目中使用的库、工具和框架。 NPM的安装 在使用NPM之前,请确保你的机…...
servlet +thymeleaf渲染引擎
servlet thymeleaf渲染引擎 一、maven坐标 <dependency><groupId>org.thymeleaf</groupId><artifactId>thymeleaf</artifactId><version>3.0.12.RELEASE</version> <!-- 使用适当的Thymeleaf版本 --> </dependency> &…...
10分钟了解nextTick,并实现简易版本的nextTick
在 Vue.js 中,有一个特殊的方法 nextTick,它在 DOM 更新后执行一段代码,起到等待 DOM 绘制完成的作用。本文会详细介绍 nextTick 的原理和使用方法,并实现一个简易版的 nextTick,加深对它的理解。 一. 什么是 nextTic…...
oracle表空间对象迁移到其他表空间
oracle数据库的磁盘空间满了,除了简单粗暴的增加磁盘空间外,还可以缩小表空间的datafile,因为正常业务运行中,表数据的删除和增加,会造成表空间里面里面有很多空的地方。方案有很多种,我这里简单介绍一下&a…...

【kafka】Golang实现分布式Masscan任务调度系统
要求: 输出两个程序,一个命令行程序(命令行参数用flag)和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽,然后将消息推送到kafka里面。 服务端程序: 从kafka消费者接收…...
Spring AI与Spring Modulith核心技术解析
Spring AI核心架构解析 Spring AI(https://spring.io/projects/spring-ai)作为Spring生态中的AI集成框架,其核心设计理念是通过模块化架构降低AI应用的开发复杂度。与Python生态中的LangChain/LlamaIndex等工具类似,但特别为多语…...

优选算法第十二讲:队列 + 宽搜 优先级队列
优选算法第十二讲:队列 宽搜 && 优先级队列 1.N叉树的层序遍历2.二叉树的锯齿型层序遍历3.二叉树最大宽度4.在每个树行中找最大值5.优先级队列 -- 最后一块石头的重量6.数据流中的第K大元素7.前K个高频单词8.数据流的中位数 1.N叉树的层序遍历 2.二叉树的锯…...
DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”
目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...

Yolov8 目标检测蒸馏学习记录
yolov8系列模型蒸馏基本流程,代码下载:这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中,**知识蒸馏(Knowledge Distillation)**被广泛应用,作为提升模型…...

Docker 本地安装 mysql 数据库
Docker: Accelerated Container Application Development 下载对应操作系统版本的 docker ;并安装。 基础操作不再赘述。 打开 macOS 终端,开始 docker 安装mysql之旅 第一步 docker search mysql 》〉docker search mysql NAME DE…...

使用LangGraph和LangSmith构建多智能体人工智能系统
现在,通过组合几个较小的子智能体来创建一个强大的人工智能智能体正成为一种趋势。但这也带来了一些挑战,比如减少幻觉、管理对话流程、在测试期间留意智能体的工作方式、允许人工介入以及评估其性能。你需要进行大量的反复试验。 在这篇博客〔原作者&a…...

Golang——9、反射和文件操作
反射和文件操作 1、反射1.1、reflect.TypeOf()获取任意值的类型对象1.2、reflect.ValueOf()1.3、结构体反射 2、文件操作2.1、os.Open()打开文件2.2、方式一:使用Read()读取文件2.3、方式二:bufio读取文件2.4、方式三:os.ReadFile读取2.5、写…...

【C++】纯虚函数类外可以写实现吗?
1. 答案 先说答案,可以。 2.代码测试 .h头文件 #include <iostream> #include <string>// 抽象基类 class AbstractBase { public:AbstractBase() default;virtual ~AbstractBase() default; // 默认析构函数public:virtual int PureVirtualFunct…...

Neko虚拟浏览器远程协作方案:Docker+内网穿透技术部署实践
前言:本文将向开发者介绍一款创新性协作工具——Neko虚拟浏览器。在数字化协作场景中,跨地域的团队常需面对实时共享屏幕、协同编辑文档等需求。通过本指南,你将掌握在Ubuntu系统中使用容器化技术部署该工具的具体方案,并结合内网…...