使用sealos工具部署k8s

为什么使用sealos工具:简单、快、完全兼容 k8s、给100年认证
sealos使用最新版本:
官网:https://www.sealyun.com/
码:https://github.com/labring/sealos
官方介绍什么是sealos
Sealos 是以 kubernetes 为内核的云操作系统发行版, 单机操作系统如同 linux 发行版本可以在上面安装和使用各种单机应用,如 PPT,Word,Excel 等。 云操作系统只需要把这些单机应用替换成各种云应用,如数据库,对象存储,消息队列等,就很容易理解了,这些应用都是分布式高可用的。 Sealos 就是能支撑运行各种分布式应用的云操作系统。有了 Sealos 就拥有了一朵云。
部署环境:
在这里插入图片描述

我们这里使用的是Rocky9.1.
部署前一些检查和设置:
一、设置主机名字,不可以重复。

IP主机名字
192.168.8.100Rocky-9.1-k8s-master1
192.168.8.101Rocky-9.1-k8s-master2
192.168.8.102Rocky-9.1-k8s-master3
192.168.8.103Rocky-9.1-k8s-node1
192.168.8.104Rocky-9.1-k8s-node2

使用 hostnamectl set-hostname命令
在这里插入图片描述
配置主机名与IP地址解析

/etc/hosts

cat > /etc/hosts <<-'EOF'
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.8.100 k8s-master1
192.168.8.101 k8s-master2
192.168.8.102 k8s-master3
192.168.8.103 k8s-node1
192.168.8.104 k8s-node2
EOF

二、停止防火墙并关闭

systemctl stop firewalld        停止正在运行的firewalld服务
systemctl disable firewalld     禁用firewalld服务

安装一些需要的软件:
安装和配置防火墙软件iptables和IPVS

yum -y install iptables-services ipvsadm ; systemctl start iptables ; systemctl enable iptables ; iptables -F ; service iptables save

解释:
yum -y install iptables-services ipvsadm:这个命令使用yum软件包管理器下载和安装iptables-services和ipvsadm软件包,用于管理防火墙规则和负载平衡。
systemctl start iptables:这个命令启动负责管理防火墙规则的iptables服务。
systemctl enable iptables:这个命令配置iptables服务在启动时自动启动。
iptables -F:这个命令从iptables配置中清除(删除)所有现有的防火墙规则。
service iptables save:这个命令将当前的iptables配置保存到磁盘上,以便在系统重新启动后保留。
在这里插入图片描述
三、禁用SELinux
使用sestatus或getenforce检查SElinux状态
临时关闭selinux:setenforce 0
永久关闭selinux:
修改 /etc/selinux/config 并将 SELINUX=disabled
可以使用下列命令来修改,修改完记得重启

sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config

解释:

  • sed:这是一个流编辑器,用于执行文本替换和其他文本处理操作。
  • -i:这个选项表示对原始文件进行“in-place”编辑,也就是直接修改文件内容。
  • ‘s/^SELINUX=enforcing$/SELINUX=disabled/’:这个是正则表达式,用于匹配/etc/selinux/config文件中的SELINUX=enforcing字符串,并将其替换为SELINUX=disabled字符串。
  • /etc/selinux/config:这是要修改的SELinux配置文件的路径和文件名。

四、时间同步:
crontab -e
阿里云提供了7个NTP时间服务器也就是Internet时间同步服务器地址

ntp1.aliyun.com
ntp2.aliyun.com
ntp3.aliyun.com
ntp4.aliyun.com
ntp5.aliyun.com
ntp6.aliyun.com
ntp7.aliyun.com
编辑同步阿里云的时间服务器

0 */1 * * * ntpdate ntp1.aliyun.com

解释:
这个 crontab 表示的是在每小时的第 0 分钟执行一次 ntpdate ntp1.aliyun.com 命令,即每个小时同步一次阿里云的时间服务器 ntp1.aliyun.com。

其中,0 表示分钟字段,/1 表示每分钟都执行; 表示其他字段,即每小时、每天、每月和每周都执行;ntpdate ntp1.aliyun.com 是要执行的命令。
查看

[root@Rocky-9 ~]# crontab -l
0 */1 * * * ntpdate ntp1.aliyun.com

方法二:
也可以采用同步其中一台服务器,这里我们采用同步Rocky-9.1-k8s-master1这台。
在所有节点上安装时间服务
yum install chrony -y
修改配置文件:vim /etc/chrony.conf
修改如下

server 127.127.1.0 iburst   #将本机作为 NTP 服务器,使用本机的本地时钟作为时间源进行同步。
allow 192.168.8.0/24   #这个配置项表示只允许来自 192.168.8.0/24 网段的主机连接到本机的 NTP 服务。
local stratum 10 #这个配置项表示将本机作为 NTP 服务的层级(stratum),并将其设置为 10

开启chrony服务

systemctl start chronyd
systemctl enable chronyd

其他需要同步节点只修改vim /etc/chrony.conf
Rocky-9.1-k8s-master2、Rocky-9.1-k8s-master3、Rocky-9.1-k8s-node1、Rocky-9.1-k8s-node2

server 192.168.8.100 iburst
[root@Rocky-9 ~]#chronyc -a makestep  #强制同步

五、关闭全部节点的swap交换分区

sed -ri 's/.*swap.*/#&/' /etc/fstab

解释:
这个命令的作用是在 /etc/fstab 文件中注释掉所有包含 swap 字符串的行。

具体来说,sed 是一个文本处理工具,-r 选项表示启用扩展正则表达式,-i 选项表示直接修改文件内容。‘s/.swap./#&/’ 是一个 sed 命令,用于将包含 swap 字符串的行注释掉,其中:

s 表示替换操作;
.swap. 表示匹配包含 swap 字符串的整行,其中 .* 表示匹配任意数量的任意字符;
#& 表示在匹配到的行首添加 # 符号,从而注释掉这一行。
因此,该命令会将 /etc/fstab 文件中所有包含 swap 字符串的行注释掉,从而禁用交换分区。

 swapoff -a  #禁用所有交换分区
 free -m  #查看系统内存使用情况

在这里插入图片描述

六、所有节点进行调整内核参数

cat > kubernetes.conf <<EOF
net.bridge.bridge-nf-call-iptables=1
net.bridge.bridge-nf-call-ip6tables=1
net.ipv4.ip_forward=1
net.ipv4.tcp_tw_recycle=0
fs.inotify.max_user_instances=8192
fs.inotify.max_user_watches=1048576
fs.file-max=52706963
fs.nr_open=52706963
net.ipv6.conf.all.disable_ipv6=1
EOF

移动文件并执行

cp kubernetes.conf /etc/sysctl.d/kubernetes.conf
sysctl -p /etc/sysctl.d/kubernetes.conf

更新 systemd

yum -y upgrade systemd

七、设置日志 rsyslogd 和 systemd journald

mkdir /var/log/journal # 持久化保存日志的目录
mkdir /etc/systemd/journald.conf.d
cat > /etc/systemd/journald.conf.d/99-prophet.conf <<EOF
[Journal]
# 持久化保存到磁盘
Storage=persistent

# 压缩历史日志
Compress=yes

SyncIntervalSec=5m
RateLimitInterval=30s
RateLimitBurst=1000

# 最大占用空间 10G
SystemMaxUse=10G

# 单日志文件最大 200M
SystemMaxFileSize=200M

# 日志保存时间 2 周
MaxRetentionSec=2week

# 不将日志转发到 syslog
ForwardToSyslog=no
EOF

重启动journald服务

systemctl restart systemd-journald

八、升级内核:

rpm -Uvh https://www.elrepo.org/elrepo-release-9.el9.elrepo.noarch.rpm
yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
yum --enablerepo=elrepo-kernel install -y kernel-ml
grub2-mkconfig -o /boot/grub2/grub.cfg

九、所有节点载入ipvs模块

modprobe br_netfilter
cat > /etc/sysconfig/modules/ipvs.modules <<EOF
#!/bin/bash
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack
EOF

这里有个抗rocky9.1的iptables-services用的是iptables-nft-services
没有/etc/sysconfig/modules/ipvs.modules
因此创建

mkdir -p /etc/sysconfig/modules/
touch /etc/sysconfig/modules/ipvs.modules

cat > /etc/sysconfig/modules/ipvs.modules <<EOF
#!/bin/bash
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack
EOF

chmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules && lsmod | grep -e ip_vs -e nf_conntrack

十、开始安装
下载sealos
wget https://github.com/labring/sealos/releases/download/v4.1.7/sealos_4.1.7_linux_amd64.tar.gz
官方文档

# 下载并安装sealos, sealos是个golang的二进制工具,直接下载拷贝到bin目录即可, release页面也可下载
wget  https://github.com/labring/sealos/releases/download/v4.1.7/sealos_4.1.7_linux_amd64.tar.gz  && \
    tar -zxvf sealos_4.1.7_linux_amd64.tar.gz sealos &&  chmod +x sealos && mv sealos /usr/bin
# 创建一个集群
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     --passwd your-own-ssh-passwd

下载kubernetes-server-linux
sealos_4.1.7目前支持1.24.0的kubernetes因此我们下载1.24.0版本
wget https://dl.k8s.io/v1.24.0/kubernetes-server-linux-amd64.tar.gz

解压缩sealos

tar zxvf sealos_4.1.7_linux_amd64.tar.gz

调整权限并放到 /usr/bin 目录下

chmod +x sealos && mv sealos /usr/bin

开始部署:

    sealos init --passwd 'xxxxxx'  \
	--master 192.168.8.100 --master 192.168.8.101 --master 192.168.8.102 \
	--node 192.168.8.103 --node 192.168.8.104 --user root \
	--version v1.24.0 --pkg-url=/root/kubernetes-server-linux-amd64.tar.gz

就这么1条命令就开始部署了。
完成后kubectl get nodes查看情况

rocky-9.1-k8s-master1   Ready    control-plane,master   40m   v1.24.0
rocky-9.1-k8s-master2   Ready    control-plane,master   39m   v1.24.0
rocky-9.1-k8s-master3   Ready    control-plane,master   39m   v1.24.0
rocky-9.1-k8s-node1     Ready    <none>                 39m   v1.24.0
rocky-9.1-k8s-node2     Ready    <none>                 39m   v1.24.0

节点操作:
增加master或增加node

sealos join --master 192.168.8.105 --master 192.168.8.106 
sealos join --node 192.168.8.105 --node 192.168.8.106

删除master或删除node

sealos clean --master192.168.8.105 --master 192.168.8.106
sealos clean --node 192.168.8.105 --node 192.168.8.106

清理集群

sealos clean --all -f

十一、安装web界面kuboard v3

kubectl apply -f https://addons.kuboard.cn/kuboard/kuboard-v3.yaml

执行指令

kubectl get pods -n kuboard

等待 kuboard 名称空间中所有的 Pod 就绪
完成后访问 Kuboard
在浏览器中打开链接 http://your-node-ip-address:30080
输入初始用户名和密码,并登录
用户名: admin
密码: Kuboard123
执行 Kuboard v3 的卸载

kubectl delete -f https://addons.kuboard.cn/kuboard/kuboard-v3.yaml

清理遗留数据
在 master 节点以及带有 k8s.kuboard.cn/role=etcd 标签的节点上执行

rm -rf /usr/share/kuboard

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ToBeWritten之固件威胁建模

也许每个人出生的时候都以为这世界都是为他一个人而存在的&#xff0c;当他发现自己错的时候&#xff0c;他便开始长大 少走了弯路&#xff0c;也就错过了风景&#xff0c;无论如何&#xff0c;感谢经历 转移发布平台通知&#xff1a;将不再在CSDN博客发布新文章&#xff0c;敬…

vue:生成二维码 qrcode、vue-qr(二维码中间可带logo)

一、方法一 qrcode qrcode - npm 1.1、安装 yarn add qrcode 1.2、页面引入 import QRCode from qrcode; 1.3、方法里边使用 getQRCodeUrl(){ QRCode.toDataURL(hello world,{color: {dark:"#010599FF",light:"#FFBF60FF"}}).then((url) > {// 获…

java:classLoader.loadClass() 和 Class.forName()

java&#xff1a;classLoader.loadClass() 和 Class.forName() 1 前言 什么是JVM的类加载机制&#xff1f; Java虚拟机把描述类的数据&#xff0c;从Class文件加载到内存&#xff0c;并对数据进行校验、转换解析和初始化&#xff0c;最终形成可以被虚拟机直接使用的java类型…

JavaScript -- 函数

1. 概念 函数&#xff1a;function&#xff0c;是被设计为执行特定任务的代码块 说明&#xff1a;函数可以把具有相同或相似逻辑的代码“包裹”起来&#xff0c;通过函数调用执行这些被“包裹”的代码逻辑&#xff0c;这么做的优势是有利于精简代码方便复用。 2. 函数使用 …

HttpRunner3.x 源码解析(4)-工具类loader.py

这些方法可以灵活的引用在其他项目中。 加载yaml文件 def _load_yaml_file(yaml_file: Text):""" load yaml file and check file content format"""with open(yaml_file, mode"rb") as stream:try:yaml_content yaml.load(stream,…

架构重构的技巧

1 代码重构 定义 对软件代码做任何改动以增加可读性或者简化结构而不影响输出结果。 目的 增加可读性、增加可维护性、可扩展性 3 关键点 不影响输出不修正错误不增加新的功能性 代码重构时&#xff0c;发现有个功能实现逻辑不合理&#xff0c;可直接修改吗&#xff1f;…

十年程序老狗手写分布式服务架构:原理、设计与实战

IT 技术日新月异地发展&#xff0c;我们自然不能躺在历史的温床上停歇&#xff0c;必须不断地学习。分布式、微服务几乎是现在的技术人员必须要了解的架构方向&#xff0c;从理论上来讲确实解耦了很多结构&#xff0c;但另一方面&#xff0c;又会带来更多衍生的复杂度及难点 如…

光度立体法检测原理讲解

光度立体法检测 图像辐照度 决定场景表面片辐射的因素有两个: 1.在场景表面片的照明 投在某一特定表面片上的照明量取决于该表面片在场景中相对于光源的分布位置 2.表面片反射的入射照明部分 在某一特定方向上被表面片反射的入射照明部分取决于表面材料的光学特性 反射类…

前端实现html转pdf

优秀文章&#xff1a; 前端实现 HTML 转 PDF 并导出 - 掘金 (juejin.cn)https://juejin.cn/post/7012049739482923039 安装 npm install html2canvas jspdf --save main.js导入&#xff1a; import htmlToPdf from ./utils/htmlToPdf Vue.use(htmlToPdf) html2Canvas.js文…

html+css实现的登录界面

一、界面效果 二、代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>登录</title><style>body {background-color: #f1f1f1;}.login-box {width: 400px;margin: 50px auto;padding: 2…

【计算机视觉·OpenCV】使用Haar+Cascade实现人脸检测

前言 人脸检测的目标是找出图像中所有的人脸对应的位置&#xff0c;算法的输出是人脸的外接矩形在图像中的坐标。使用 haar 特征和 cascade 检测器进行人脸检测是一种传统的方式&#xff0c;下面将给出利用 OpenCV 中的 haarcascade 进行人脸检测的代码。 程序流程 代码 impo…

ESP32设备驱动-MLX90615红外测温仪驱动

MLX90615红外测温仪驱动 文章目录 MLX90615红外测温仪驱动1、MLX90615介绍2、硬件准备3、软件准备4、驱动实现1、MLX90615介绍 MLX90615 是一款用于非接触式温度测量的微型红外温度计。 IR 敏感热电堆探测器芯片和信号调节 ASIC 都集成在同一个微型 TO-46 罐中。 红外测温仪出…

快速尝鲜Oracle 23c免费开发者版,惊喜多多

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 哈喽&#xff01;大家好&#xff0c;我是【IT邦德】&#xff0c;江湖人称jeames007&#xff0c;10余年DBA及大数据工作经验 一位上进心十足的【大数据领域博主】&#xff01;&#x1f61c;&am…

分布式一致性协议

1 两阶段提交协议(2PC) 1.1 两阶段提交协议 两阶段提交协议&#xff0c;简称 2PC(2 Prepare Commit)&#xff0c;是比较常用的解决分布式事务问题的方式&#xff0c;要么所 有参与进程都提交事务&#xff0c;要么都取消事务&#xff0c;即实现 ACID 中的原子性(A)的常用手段。…

ctfshow web入门 爆破 21-28

web21 刚进去就要求我们登录&#xff0c;这里题目给了我们一个字典&#xff0c;就是这个字典为什么他那么多数字中 就一个字母的密码还不明显吗。 这里我们使用burp拦包&#xff0c;这里没有发现登录的账号密码&#xff0c;但是有一串可疑的字符串&#xff0c;尝试base64解密 这…

Java设计模式 07-装饰者模式

装饰者模式 套娃模式&#xff0c;直接new放构造器里面套 把抽象类聚合到它的子类里 该子类(装饰者)构造抽象类的实现(被装饰者) 一、星巴克咖啡订单项目&#xff08;咖啡馆&#xff09; 1)咖啡种类/单品咖啡&#xff1a;Espresso(意大利浓咖啡)、ShortBlack、LongBlack(美式…

【Spring】2—IOC容器

⭐⭐⭐⭐⭐⭐ Github主页&#x1f449;https://github.com/A-BigTree 笔记链接&#x1f449;https://github.com/A-BigTree/Code_Learning ⭐⭐⭐⭐⭐⭐ 如果可以&#xff0c;麻烦各位看官顺手点个star~&#x1f60a; 如果文章对你有所帮助&#xff0c;可以点赞&#x1f44d;…

教你如何搭建物业-后勤管理系统,demo可分享

1、简介 1.1、案例简介 本文将介绍&#xff0c;如何搭建物业-后勤管理。 1.2、应用场景 该应用包含疫情上报、绿化、安保等管理功能。 2、设置方法 2.1、表单搭建 1&#xff09;新建表单【返区登记】&#xff0c;字段设置如下&#xff1a; 名称类型名称类型姓名单行文本…

静态路由的原理和配置(理论详细实验全面)

第五章&#xff1a;静态路由 目录 第五章&#xff1a;静态路由 5.1路由器的工作原理 5.1.1路由器根据路由表转发数据 5.1.2 路由信息获取的方式 5.2路由选路原则 5.2.1最长匹配原则 5.2.2路由优先级 5.2.3路由度量值 5.3静态路由 5.3.1静态路由实验 5.3.2缺省路由实…

初学对象存储OSS---学习笔记

文章目录前言一、OSS是什么&#xff1f;下面以一个小故事介绍OSS的作用&#xff1a;二、怎么使用OSS1.进入 -----> [阿里云官网](https://www.aliyun.com/)2.点击进入OSS控制台3.获取accessKeyId 和 accessKeySecret4.拿到了accessKeyId 和 accessKeySecret &#xff0c;就可…
最新文章