使用sealos工具部署k8s

news2024/11/22 21:25:05

为什么使用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.coloradmin.cn/o/430264.html

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

相关文章

精彩回顾|4.8 Beijing Rust Meetup

2023年4月8日&#xff0c;达坦科技联合南京大学、CloudWeGo、华为等技术专家成功举办了题为Rust X的meetup。开发者们不仅线下积极报名参与&#xff0c;更在线上直播中踊跃参与互动&#xff0c;一起探讨Rust作为一种强调性能、安全和并发性的编程语言的各种应用和实践。演讲者与…

从EXCEL BOM 描述中提取部分信息---正则表达式使用

从EXCEL BOM描述中提取关键的信息&#xff0c;用于建库填写内容&#xff0c;或者检查BOM等都会用到&#xff0c;如下大概通过两种方式实现信息的提取 1.手动Excel中提取 2.将如上1的方式用python实现&#xff0c;可以实现批量操作&#xff0c;减少操作带来的错误&#xff0c;…

[网络安全]第三次作业

目录 1. 什么是IDS&#xff1f; 2. IDS和防火墙有什么不同&#xff1f; 3. IDS工作原理&#xff1f; 4. IDS的主要检测方法有哪些详细说明&#xff1f; 5. IDS的部署方式有哪些&#xff1f; 6. IDS的签名是什么意思&#xff1f;签名过滤器有什么作用&#xff1f;例外签名…

温故c语言——深度剖析数据在内存中的存储

目录 数据类型详细介绍整形在内存中的存储&#xff1a;原码、反码、补码大小端字节序介绍及判断浮点型在内存中的存储解析 1. 数据类型介绍 基本内置数据类型有&#xff1a; //在内存中占用空间的大小 char //字符数据类型 占用1个字节 short //短整型 占用2个…

linux及openEuler破解root密码

第一步&#xff1a;开机的时候按键盘的字母 E 键&#xff0c; 进入引导模式 第二步&#xff1a;进入引导模式 &#xff1a;找到linux这一行&#xff0c;按键盘上的end 键&#xff0c;跳转到行尾&#xff0c;输入&#xff1a; init/bin/sh 修改完后&#xff0c;按键盘上的 ctr…

电脑开机出现英文字母开不了机U盘重装系统教学

电脑开机出现英文字母开不了机U盘重装系统教学。有用户电脑开机之后出现了错误代码字母&#xff0c;无法正常的开机了。遇到这个问题要怎么去进行系统的重新安装呢&#xff1f;一起来看看以下的具体解决方法教学吧。 准备工作&#xff1a; 1、U盘一个&#xff08;尽量使用8G以上…

基于LS1028 TSN时间敏感网络交换机方案(一)TSN介绍

2.1 时间敏感网络介绍 时间敏感网络小组的前身是 AVB &#xff0c;即以太网音视频桥接技术&#xff08; Ethernet Audio/Video Bridging, 简称 Ethernet AVB &#xff09; [10] 。它在传统以太网络的基础上&#xff0c;通过 精确时钟同步、预留带宽、流量整形&#xff0…

Spring和IDEA都不推荐用的@Autowired注解,为什么还有那么多人用?

Autowired的默认装配 我们都知道在spring中Autowired注解&#xff0c;是用来自动装配对象的。通常&#xff0c;我们在项目中是这样用的&#xff1a; package com.sue.cache.service;import org.springframework.stereotype.Service;Service public class TestService1 {publ…

今天面了个京东拿 38K 出来的,让我见识到了基础的天花板

今年的春招已经开始了&#xff0c;很多小伙伴收获不错&#xff0c;拿到了心仪的 offer。 各大论坛和社区里也看见不少小伙伴慷慨地分享了常见的软件测试面试题和八股文&#xff0c;为此咱这里也统一做一次大整理和大归类&#xff0c;这也算是划重点了。 俗话说得好&#xff0…

ChatGPT接入Siri(保姆级教程)

ChatGPT接入Siri&#xff08;保姆级教程&#xff09;第一步&#xff1a;获取OpenAPI的Key第二步&#xff1a;制作快捷指令今天&#xff0c;我将为大家分享如何将GPT应用集成到苹果手机的Siri中&#xff08;当然手机是需要魔法&#xff08;TZ&#xff09;的&#xff09; 第一步…

协议篇之UART协议

协议篇之UART协议一、写在前面二、UART协议简介三、UART协议数据帧结构3.1 UART发送过程3.2 UART接收过程四、UART传输速率五、写在最后一、写在前面 由于设计需要&#xff0c;需要入门学习一下UART协议。本文主要学习UART协议的数据帧结构。 二、UART协议简介 通用异步收发传…

AutoGPT自主AI正在路上#趋势:自主人工智能、人机交互、终身学习

hi&#xff0c;大家好&#xff0c;我是shadow。今天分享一些我看到的人工智能正在发生的趋势&#xff0c;以及创新的机会。一些动态经过几个月的筹备&#xff0c;慢慢地我会开启2023的Mixlab故事&#xff0c;可查看公众号菜单栏里的2023专栏。本周六和下周六我将在上海的活动分…

Thingsboard开源物联网平台智慧农业实例快速部署教程(三)【源码部署及logo更换】

Thingsboard源码安装并更换logo 文章目录Thingsboard源码安装并更换logo1. 源码拉取2. 导入项目3. 项目编译4. 项目启动5. 修改logo6. 部署&#xff08;rpm deb方式&#xff09;1. 源码拉取 本教程按照3.4发行版本行进 git clone https://github.com/thingsboard/thingsboard…

深入拆解 Java 虚拟机-打卡|01 | Java代码是怎么运行的?

文章目录Java代码是怎么运行的&#xff1f;几个为什么为什么在虚拟机中运行&#xff1f;Java 虚拟机具体又是怎样运行 Java 代码的呢?Java虚拟机的运行效率怎么样&#xff1f;总结Java代码是怎么运行的&#xff1f; 来来来&#xff0c;运行个"Hello word !“告诉我是怎么…

免费的VR全景网站是什么?免费VR全景网站有什么用?

虚拟现实&#xff08;VR&#xff09;技术的应用日益广泛&#xff0c;尤其是在旅游、教育等领域。免费VR全景网站是一个新兴的平台&#xff0c;为用户提供了一个全新的探索未知世界的方式。 一、介绍免费VR全景网站的特点 1.全景视角 免费VR全景网站提供了360度全景视角&#…

Spring事务原理、隔离性

1、什么是事务 事务是指将一系列数据操作捆绑成为一个整体进行统一管理&#xff0c;如果某一事务执行成功&#xff0c;则在该事物中进行的所有数据更改均会提交&#xff0c;成为数据库中的永久组成部分&#xff1b;如果事务执行时遇到错误且必须取消或回滚&#xff0c;则数据将…

Vue3页面内跳转锚点-scrollIntoView()

scrollIntoView&#xff08;&#xff09; scrollIntoView()方法将调用它的元素滚动到浏览器窗口的可见区域。 element.scrollIntoView&#xff08;&#xff09;; // 等同于element.scrollIntoView(true)element.scrollIntoView&#xff08;alignToTop&#xff09;; //布尔参…

数据结构-树与二叉树

文章目录5.1 树的基本概念5.1.1 树的定义5.1.2 基本术语5.1.3 树的性质5.2 二叉树的概念5.2.1 二叉树的定义及其主要特性5.2.2 二叉树的存储结构5.3 二叉树的遍历和线索二叉树5.3.3 二叉树的遍历5.3.2 线索二叉树5.4 树、森林5.4.1 树的存储结构5.4.2 树、森林、二叉树的转换5.…

Linux学习笔记——HTTP协议

文章目录前言HTTP协议的概念URLurlencode和urldecodeHTTP协议格式HTTP协议版本HTTP协议请求方法GET方法——获取资源POST方法——获取资源PUT方法——传输⽂件PUT方法——获得报文首部在这里插入图片描述DELETE方法——删除文件OPTIONS方法——询问支持的方法HTTP的状态码HTTP常…

050:cesium加载mapbox卫星地图、mapbox地形地图

第050个 点击查看专栏目录 本示例的目的是介绍如何在vue+cesium中加载mapbox卫星地图、mapbox地形地图。 直接复制下面的 vue+cesium源代码,操作2分钟即可运行实现效果. 文章目录 示例效果配置方式示例源代码(共79行)相关API参考:专栏目标示例效果 配置方式 1)查看基础设…