sealos安装k8s
一、前言
1、我前面文章有写过使用 kubeadm
安装的方式,大家可以去参考 (二)k8s集群安装,有一系列的k8s文章说明
2、安装k8s的方式有很多
- kubeadm
- sealos
- kubespray
- 等等
3、关于sealos来安装 k8s ,也是非常建议大家去官方文档看看,安装sealos和k8s,说的很非常清楚,一看就知道
4、这里顺便说一下 Sealos
和 Sealer
。它们都是与 Kubernetes 相关的工具,但用途和功能不同。
-
Sealos:
Sealos 是一个用于快速部署 Kubernetes 集群的工具。它基于 Ansible 和 KubeAdm,旨在简化 Kubernetes 集群的安装过程。Sealos 提供了一种快速、便捷的方式来部署单节点或多节点的 Kubernetes 集群。它可以自动处理节点初始化、Master 和 Worker 节点的部署,以及集群的配置和初始化。Sealos 主要关注于 Kubernetes 集群的部署和初始化过程,使得用户能够更容易地搭建一个运行的 Kubernetes 环境。 -
Sealer:
Sealer 是一个用于加密和保护 Kubernetes 配置文件的工具。它可以将 Kubernetes 的配置文件(如 kubeconfig 文件)进行加密,以确保敏感信息在存储和传输过程中得到保护。Sealer 可以使用不同的加密算法对配置文件进行加密,然后在使用时再进行解密。这有助于提高 Kubernetes 集群的安全性,尤其是在管理多个集群时,可以更好地保护配置信息。
总结:
- Sealos 主要用于 Kubernetes 集群的快速部署和初始化。
- Sealer 主要用于加密和保护 Kubernetes 配置文件,增强集群的安全性。
二、前置准备和说明
2.1、集群类型
kubernetes集群大体上分为两类:一主多从和多主多从。
- 一主多从:一台Master节点和多台Node节点,但是有单机故障风险,适合用于测试环境
- 多主多从:多台Master节点和多台Node节点,安全性高,适合用于生产环境
说明:为了测试简单,本次搭建的是 一主两从 类型的集群
2.2、主机规划
1、各个机器配置
作用 | ip | 操作系统 | 配置 |
---|---|---|---|
k8s-master01 | 192.168.173.135 | Centos7.9 基础设施服务器 | 4颗CPU 4G内存 100G硬盘 |
k8s-node01 | 192.168.173.136 | Centos7.9 基础设施服务器 | 2颗CPU 4G内存 100G硬盘 |
k8s-node02 | 192.168.173.137 | Centos7.9 基础设施服务器 | 2颗CPU 4G内存 000G硬盘 |
2、相关网络配置
IPADDR=xxxxxx
NETMASK=255.255.255.0
GATEWAY=192.168.173.2
3、DNS
nameserver 8.8.8.8
nameserver 114.114.114.114
2.3、安装说明
2.3.1、环境初始化(所有节点都需要做的)
1、检查操作系统的版本,因为此方式下安装kubernetes集群要求Centos版本要在7.5或之上(否则存在node节点无法加入master的情况)
cat /etc/redhat-release
2、主机名解析,为了方便后面集群节点间的直接调用,在这配置一下主机名解析,企业中推荐使用内部DNS服务器
# 主机名成解析 编辑三台服务器的/etc/hosts文件,添加下面内容
192.168.173.135 k8s-master01
192.168.173.136 k8s-node01
192.168.173.137 k8s-node02
3、设置每个节点的主机名称,这是为了后续使用k8s的时候,生成的节点是以我们的主机名称来命名的,不然k8s搭建之后生成的节点就是 master01,node01之类的等等
hostnamectl set-hostname k8s-master01
hostnamectl set-hostname k8s-node01
hostnamectl set-hostname k8s-node02
3、修改完成后测试是否正常,没一台都测试一下,避免后面安装的时候再发现问题,可就难受了。
-
k8s-master01节点
-
k8s-node01节点
- k8s-node02节点
4、时间同步,kubernetes要求集群中的节点时间必须精确一致,这里使用 NTP同步网络时间,当然如果你是内网,不能链接外网,那你最好搭建一个企业内部的时间同步服务器,其他机器都从这台时间服务器同步,保证完全一致。
# 主机名成解析 编辑三台服务器的/etc/hosts文件,添加下面内容
yum install ntp -y //安装ntp服务systemctl enable ntpd //开机启动服务systemctl start ntpd //启动服务timedatectl set-timezone Asia/Shanghai //更改时区timedatectl set-ntp yes //启用ntp同步ntpq -p //同步时间
2.3.2、安装sealos
1、安装的方式很多,大家也可以参考官方,有四种安装方式
- 二进制自动下载
- 二进制手动下载
- 包管理工具安装
- 源码安装
官方地址-安装sealos
2.3.2.1、二进制手动下载安装
1、截至我写这篇文章为止,目前sealos
的版本如下,我们选择安装 v4.3.0
即可
注意:在选择版本时,建议使用稳定版本例如v4.3.0。像v4.3.0-rc1、v4.3.0-alpha1这样的版本是预发布版,请谨慎使用
2、在k8s-master01节点 下载
wget https://github.com/labring/sealos/releases/download/v4.3.0/sealos_v4.3.0_linux_amd64.tar.gz
3、解压后重命名 sealos
,解压完成后,会发现只有这一个可执行的文件
4、赋予可执行权限,并移动到当前用户的bin 目录下面,这样方便我们可以在任何地方都去使用它
chmod +x sealos && mv sealos /usr/bin
2.3.3、安装k8s
先决条件,sealos 是一个简单的 go 二进制文件,可以安装在大多数 Linux 操作系统中。以下是一些基本的安装要求:
- 每个集群节点应该有不同的主机名。 主机名不要带下划线。
- 所有节点的时间同步。
- 在 Kubernetes 集群的第一个节点上运行sealos run命令,目前集群外的节点不支持集群安装。
- 建议使用干净的操作系统来创建集群。不要自己装 Docker。
- 支持大多数 Linux 发行版,例如:Ubuntu CentOS Rocky linux。
- 支持 DockerHub 中支持的 Kubernetes 版本。
- 支持使用 containerd 作为容器运行时。
- 在公有云上请使用私有 IP。
1、安装命令如下
这个底层是使用
containerd
,如果你希望底层还是使用docker,可以看我后面的第6步,将如下命令中的labring/kubernetes:v1.25.0
镜像换成labring/kubernetes-docker:v1.25.0
即可
$ sealos run labring/kubernetes:v1.25.0 labring/helm:v3.8.2 labring/calico:v3.24.1 \--masters 192.168.173.135 \--nodes 192.168.173.136,192.168.173.137 -p 123456
如果你需要安装HA的模式,即高可用多个master节点,也非常简单,命令如下,即在参数masters后面以逗号分割多个master节点ip即可
$ sealos run labring/kubernetes:v1.25.0 labring/helm:v3.8.2 labring/calico:v3.24.1 \--masters 192.168.64.2,192.168.64.22,192.168.64.20 \--nodes 192.168.64.21,192.168.64.19 -p [your-ssh-passwd]
2、执行命令之后,你会发现大部分时间都在下载镜像,所以这个速度和你的网速还是有很大关系的
这里无需科学上网,因为这里的镜像 sealos 都从dockerHub 上面下载的,sealos都已经帮我们处理好了。
3、安装完成之后的界面
4、查看集群情况
kubectl get node
5、注意,因为k8s从1.20版本开始就不再使用docker
,而是使用更加底层的 containerd
,所以我们安装完成后,是没有docker的命令的
其实 docker 底层也是
containerd
,k8s舍弃docker是,因为功能有些相同,关于这个方面的内容,大家可以参考这一篇文章 containerd的安装与使用 里面详细说明了k8s,docker,containerd的关系,简单明了
6、如果你希望安装k8s底层是docker的版本,可以将第一步的安装命令改为如下即可
$ sealos run labring/kubernetes-docker:v1.25.0 labring/helm:v3.8.2 labring/calico:v3.24.1 \--masters 192.168.173.135 \--nodes 192.168.173.136,192.168.173.137 -p 123456
两种的区别是
- labring/kubernetes-docker:v1.25.0 (使用
docker
) - labring/kubernetes:v1.25.0 (使用默认的
containerd
)
2.4、sealos相关命令
2.4.1、增加节点
1、增加 node 节点:
sealos add --nodes 192.168.64.21,192.168.64.19
2、增加 master 节点:
sealos add --masters 192.168.64.21,192.168.64.19
2.4.2、删除节点
1、删除 node 节点:
sealos delete --nodes 192.168.64.21,192.168.64.19
2、删除 master 节点:
sealos delete --masters 192.168.64.21,192.168.64.19
2.4.3、清理集群
$ sealos reset
三、页面管理工具(Kuboard)安装部署
1、这一章大家可以随意,不安装的话就使用命令行,或者用k8s原生的页面控制,不过原生的页面控制台不太好用,我个人还是建议安装一下这个。
2、关于这个我也有在k8s系列文章中提起 (十一)k8s其它帮助&&单节点部署 这里就不再重复啰嗦了 , 而且官方文档还是中文的,也很详细。
相关文章:

sealos安装k8s
一、前言 1、我前面文章有写过使用 kubeadm 安装的方式,大家可以去参考 (二)k8s集群安装,有一系列的k8s文章说明 2、安装k8s的方式有很多 kubeadmsealoskubespray等等 3、关于sealos来安装 k8s ,也是非常建议大家去…...
经典贪吃蛇游戏 - 用 C 语言实现控制台版
在本篇博客中,我们将一起来实现经典的贪吃蛇游戏,使用 C 语言编写,并在控制台中运行。这个小游戏会让你回忆起童年的经典游戏体验。我们将从游戏的初始化开始,逐步实现游戏的各个功能,包括蛇的移动、食物的生成、得分的…...

安灯Andon系统的应用与优势
安灯系统是一款与硬件相结合,实时了解机台与工位状态,让异常的信息得到快速、高效的解决的系统软件,同时记录每次异常报警的种类、响应时间和处理问题用时,提供改善生产管理和人员考核的数据参考,实现透明、快速的生产…...
2023年的C++基础笔记
C 基本语法 对象 - 对象具有状态和行为。例如:一只狗的状态 - 颜色、名称、品种,行为 - 摇动、叫唤、吃。对象是类的实例。 类 - 类可以定义为描述对象行为/状态的模板/蓝图。 方法 - 从基本上说,一个方法表示一种行为。一个类可以包含多个…...

综合能源系统(6)——综合能源综合评估技术
综合能源系统关键技术与典型案例 何泽家,李德智主编 综合能源系统是多种能源系统非线性耦合的、多时间与空间尺度耦合的“源-网-荷一储”一体化系统,通过能源耦合、多能互补,能够实现能源的高效利用,并提高新能源的利用水平。对…...

华为OD机试真题 Java 实现【寻找相同子串】【2023 B卷 100分】,附详细解题思路
目录 专栏导读一、题目描述二、输入描述三、输出描述四、解题思路五、Java算法源码六、效果展示1、输入2、输出3、说明 华为OD机试 2023B卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试(JAVA)真题(A卷B卷&#…...

软件外包开发的桌面客户端开发
跨平台桌面客户端开发工具允许开发者在多个操作系统上构建应用程序,从而实现一次编码、多平台运行的目标。以下是几个常见的跨平台桌面客户端开发工具以及它们的特点,希望对大家有所帮助。北京木奇移动技术有限公司,专业的软件外包开发公司&a…...

PAT(Advanced Level) Practice(with python)——1058 A+B in Hogwarts
Code A,B map(str,input().split()) g1,s1,k1 A.split(.) g2,s2,k2 B.split(.) g int(g1)int(g2) s int(s1)int(s2) k int(k1)int(k2) if k>29:s1k%29 if s>17:g1s%17 print(str(g).str(s).str(k))...
【ES】笔记-ES6的函数rest参数用法
es6中引入了rest参数,样式形如…xxx,用于获取函数的多余参数,这样就不需要使用arguments对象了。rest参数搭配的一个变量是一个数组,该变量将多余的参数放入数组中。例如: function add(...value){console.log(value);…...

【MOOC】北京理工大学Python网络爬虫与信息提取慕课答案-综合挑出了一些很难评的慕课测验题
1 Requests库中的get()方法最常用,下面哪个说法正确?…...

【论文阅读】基于深度学习的时序预测——Crossformer
系列文章链接 论文一:2020 Informer:长时序数据预测 论文二:2021 Autoformer:长序列数据预测 论文三:2022 FEDformer:长序列数据预测 论文四:2022 Non-Stationary Transformers:非平…...

谷粒商城第十一天-完善商品分组(主要添上关联属性)
目录 一、总述 二、前端部分 2.1 改良前端获取分组列表接口及其调用 2.2 添加关联的一整套逻辑 三、后端部分 四、总结 一、总述 前端部分和之前的商品品牌添加分类差不多。 也是修改一下前端的分页获取列表的接口,还有就是加上关联的那一套逻辑,…...

C++笔记之函数参数列表中设置默认值
C笔记之函数参数列表中设置默认值 code review! 代码 #include <iostream>// 函数声明时设置默认值 void printInfo(std::string name "Unknown", int age 0);int main() {printInfo(); // 使用默认参数值printInfo("Alice", 25);…...

Verilog求log10和log2近似
Verilog求log10和log2近似 Verilog求10对数近似方法,整数部分用位置index代替,小数部分用查找表实现 参考: Verilog写一个对数计算模块Log2(x) FPGA实现对数log2和10*log10...
二叉树小结
二叉树 树的遍历(如何遍历,如何利用特性问题) 前序遍历(中前后) 递归 class Solution {public List<Integer> inorderTraversal(TreeNode root) {List<Integer> res new ArrayList<>();inorder(root, res);return res…...

vue二进制下载
封装axios,/api/request import axios from axios import store from /store import Vue from vue import { Message, MessageBox } from element-uiimport { getToken } from /utils/authaxios.defaults.headers[Content-Type] application/json;charsetutf-8 co…...

c++QT文件操作
1 介绍 QT的文件操作来源于其抽象基类QIODevice,中用于处理输入输出设备。提供了统一的接口来处理不同类型的数据源,如文件、套接字、缓冲区等。QIODevice 主要用于读取和写入数据,无论数据来自何种源头,都可以通过 QIODevice 统一…...

Jmeter —— jmeter设置HTTP信息头管理器模拟请求头
HTTP信息头管理器 HTTP信息头管理器是在有需要模拟请求头部的时候进行设置的,添加方式 是 右击线程组 -- 配置元件 -- HTTP信息头管理器 可以通过抓包工具或者F12获取http请求的header头部信息;如下图: 复制并点击jmeter中的从剪贴板添加&am…...
vue 图片转pdf
尝试了集中图片转pdf的方式, (1)最终较为优秀的一种是使用jspdf将图片转为pdf,支持JPG/JPEG/PNG/BMP/TIF/TIFF图片格式转换,详见我的另一篇文章: https://blog.csdn.net/Ann_52547/article/details/1322149…...

20.5 HTML 媒体
1. video视频标签 video视频标签: 是HTML中用于在网页上嵌入视频的元素.常用的视频标签属性: - src属性: 指定视频文件的URL地址. - controls属性: 用于显示视频播放控件(如播放按钮, 进度条等), 使用户能够控制视频的播放. - width和height: 指定视频的宽度和高度. - autopla…...
Cursor实现用excel数据填充word模版的方法
cursor主页:https://www.cursor.com/ 任务目标:把excel格式的数据里的单元格,按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例,…...

深入剖析AI大模型:大模型时代的 Prompt 工程全解析
今天聊的内容,我认为是AI开发里面非常重要的内容。它在AI开发里无处不在,当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗",或者让翻译模型 "将这段合同翻译成商务日语" 时,输入的这句话就是 Prompt。…...
云计算——弹性云计算器(ECS)
弹性云服务器:ECS 概述 云计算重构了ICT系统,云计算平台厂商推出使得厂家能够主要关注应用管理而非平台管理的云平台,包含如下主要概念。 ECS(Elastic Cloud Server):即弹性云服务器,是云计算…...
java 实现excel文件转pdf | 无水印 | 无限制
文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...
Go 语言接口详解
Go 语言接口详解 核心概念 接口定义 在 Go 语言中,接口是一种抽象类型,它定义了一组方法的集合: // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的: // 矩形结构体…...

转转集团旗下首家二手多品类循环仓店“超级转转”开业
6月9日,国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解,“超级…...
【算法训练营Day07】字符串part1
文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接:344. 反转字符串 双指针法,两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...

WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成
厌倦手动写WordPress文章?AI自动生成,效率提升10倍! 支持多语言、自动配图、定时发布,让内容创作更轻松! AI内容生成 → 不想每天写文章?AI一键生成高质量内容!多语言支持 → 跨境电商必备&am…...
Axios请求超时重发机制
Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式: 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...
Web 架构之 CDN 加速原理与落地实践
文章目录 一、思维导图二、正文内容(一)CDN 基础概念1. 定义2. 组成部分 (二)CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 (三)CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 …...