sealos系列——k8s集群部署

本文介绍了Sealos,一个基于Kubernetes的云操作系统,用于简化高可用集群部署,包括环境准备、禁用防火墙和selinux、安装Sealos和k8s,以及使用Sealos进行集群管理,如节点添加和删除。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近重新给自己搭一套环境使用,所以在选怎么部k8s集群的时候接触到了sealos,干脆学习记录一下

什么是sealos?

以下来自官方文档
Sealos 是一个基于 Kubernetes 内核的云操作系统发行版。它采用云原生方式,摒弃传统的云计算架构,转向以 Kubernetes 为云内核的新架构。这使得企业可以像使用个人计算机一样毫不费力地使用云。

用户只需单击一个按钮即可在 Kubernetes 上安装任何高可用性分布式应用程序,类似于使用个人计算机。它实际上不需要专业交付或运营成本。同时,利用独特的集群成像功能,用户可以将任何分布式应用打包到 OCI 映像中,自由组合各种分布式应用,并轻松定制所需的云。强大而灵活的应用商店功能,可以满足各种用户的多样化需求。

Sealos的功能

  • 应用程序管理:在应用商店中轻松管理和快速发布可公开访问的分布式应用程序。
  • 数据库管理:秒级创建高可用数据库,支持MySQL、PostgreSQL、MongoDB和Redis。
  • 云通用性:在公有云和私有云中同样有效,支持传统应用程序向云的无缝过渡。

Sealos的优点

  • 高效且经济:只需为您使用的容器付费;自动扩展可防止资源浪费并大幅降低成本。
  • 高通用性和易用性:专注于您的核心业务活动,而不必担心系统复杂性;涉及的学习成本可以忽略不计。
  • 敏捷性和安全性:独特的多租户共享模型确保了有效的资源分割和协作,所有这些都在安全的框架下进行。

下面开始一步步的小白式部署吧!

k8s集群部署

前期准备

环境

ip节点
192.168.0.109k8s-master-01
192.168.0.111k8s-master-02
192.168.0.110k8s-node-01

版本
sealos: v5.0.0-beta4
k8s:1.28.0
helm:v3.9.4
calico:v3.25.0

sealos部署k8s高可用集群不需要nginx或者haproxy了,而是直接采用ipvs的方式去负载apiserver,所以本地直接采用两台master节点来演示,正常情况基于kubeadm部署的k8s集群至少需要三个master节点才可以,但资源有限只为了演示就将就一下。

1、禁用防火墙

systemctl stop firewalld
systemctl disable firewalld 

2、禁用selinux

# 临时禁用
setenforce 0

# 永久禁用,编辑配置文件修改该行
vim /etc/selinux/config
SELINUX=disabled

3、开启ipvs内核模块

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_ipv4
EOF
chmod 755 /etc/sysconfig/modules/ipvs.modules \
&& bash /etc/sysconfig/modules/ipvs.modules \
&& lsmod | grep -e ip_vs -e nf_conntrack_ipv4

yum install -y ipvsadm

4、时间同步

时间同步这里就选chrony了,yum或者rpm包安装都行

yum install -y chrony

# cat /etc/chrony.conf,修改下时间服务器地址就好了
server ntp1.aliyun.com iburst
server ntp2.aliyun.com iburst
server ntp3.aliyun.com iburst
server ntp4.aliyun.com iburst

# 重启并查看同步状态
systemctl restart chronyd
chronyc sources

好了到此前期准备工作就完成了,接下来就开始正式安装我们的sealos跟k8s集群了,网络插件这里选的是calico

正式安装(离线方式)

sealos安装

github地址:https://github.com/labring/sealos/releases
不同版本sealos对k8s版本是有要求的,具体可以参考官网,肯定有人注意准备工作也没有安装docker,因为这里我们就用containerd就行,命令跟docker差不多,把docker ps换成crictl ps就行

1、安装sealos

# 上传sealos 并解压,只需要上传一台即可
tar -zvxf sealos_5.0.0-beta4_linux_amd64.tar.gz
mv sealos /usr/bin/

这样就安装完了,命令用法有些类似docker
Sealos 吸取了 Docker 思想的精髓,把 Docker 的思想衍生到了集群的维度,实现分布式软件的构建、打包、交付、运行等等。
和操作系统 ISO 镜像或 Docker 镜像类似,集群镜像就是用一定的技术手段把整个集群的所有文件以一定格式打成的一个资源包

以 Kubernetes 集群镜像为例,里面包含了除操作系统以外的所有文件:

  • Containerd 依赖的二进制与 systemd 配置、Containerd 配置,以及一个私有的容器镜像仓库。
  • Kubernetes 核心组件二进制、容器镜像、kubelet system 配置等。
  • 其它脚本、配置与二进制工具等应用运行需要的所有依赖。

集群镜像的打包格式兼容了 OCI 标准,可以直接推送到 Docker 镜像仓库中。安装集群时只需要使用 sealos pull 命令将该镜像从镜像仓库里拉取下来,然后再执行 sealos run 命令,整个 Kubernetes 集群就安装好了
在这里插入图片描述

2、k8s集群安装

# 拉取
sealos pull registry.cn-shanghai.aliyuncs.com/labring/kubernetes:v1.28.0  \
registry.cn-shanghai.aliyuncs.com/labring/helm:v3.9.4 \
registry.cn-shanghai.aliyuncs.com/labring/calico:v3.25.0

# 查看拉取的镜像
sealos images

# 导出
sealos save -o kubernetes.tar registry.cn-shanghai.aliyuncs.com/labring/kubernetes:v1.28.0
sealos save -o helm.tar registry.cn-shanghai.aliyuncs.com/labring/helm:v3.9.4
sealos save -o calico.tar registry.cn-shanghai.aliyuncs.com/labring/calico:v3.25.0

# 离线安装
sealos run kubernetes.tar helm.tar calico.tar --cluster='k8s-cluster-test' \
--masters=192.168.0.109,192.168.0.111 \
--nodes=192.168.0.110 \
-p admin123
# 如果配置了ssh免密则不需要加-p参数,在线安装不需要pull跟save的过程,直接run对应镜像就可

镜像地址:https://github.com/labring-actions/cluster-image-docs/blob/main/docs/aliyun-shanghai/apps.md

sealos集群管理常用命令

# 添加工作节点
sealos add --nodes 192.168.0.111,192.168.0.112 

# 添加主节点
sealos add --masters 192.168.0.106,192.168.0.107 

# 删除工作节点
sealos delete --nodes 192.168.0.111,192.168.0.112 

# 删除主节点
sealos delete --masters 192.168.0.106,192.168.0.107

# 清理集群
sealos reset  

验证

在这里插入图片描述
工作节点忘了改hostname了,不用在意
再看下运行的镜像
在这里插入图片描述
最后我们看一下sealos是怎么对apiserver进行负载的
在这里插入图片描述
可以看到,node节点上通过静态pod的方式启动了一个lvscare进程,来管理ipvs规则,它会监测apiserver的健康状况,一旦apiserver不可用,便会清除对应主节点的ipvs转发规则,直到恢复正常
来查看下对应的yaml文件:
在这里插入图片描述
再看下证书有效期:
在这里插入图片描述
可以看到,有100年的有效期,而使用kubeadm安装默认只有一年

节点管理

删除节点

因为我们之前指定过–cluster=‘test’,所以按照官方文档直接写删除命令肯定遇到一头雾水的操作
我们先看一下集群配置文件
/root/.sealos/目录下
在这里插入图片描述
如果不加--cluster参数,那默认就是default

# 删除111的master节点跟110的node节点
sealos delete --cluster='test' --masters='192.168.0.111' --nodes='192.168.0.110'

在这里插入图片描述

添加节点

sealos add --cluster test --masters 192.168.0.111 --nodes 192.168.0.110

查看下
在这里插入图片描述
至此,sealos的安装及节点删除添加均大功告成

03-15
### sealos 安装、使用与配置文档 #### 一、sealos 的简介 sealos 是一款以 Kubernetes 为核心构建的云操作系统发行版,旨在简化 Kubernetes 集群的安装和管理过程。它支持多种 Linux 发行版本,并提供了高效的工具链来加速集群的初始化工作[^2]。 --- #### 二、sealos 安装指南 以下是基于官方推荐的最佳实践完成 sealos 安装的关键步骤: 1. **准备环境** - 确保目标机器运行的是受支持的 Linux 版本(如 Ubuntu 或 CentOS),并具备必要的网络连接能力。 - 所有节点需满足最低硬件需求:至少 2GB RAM 和 40GB 存储空间。 2. **下载 sealos 工具包** 可通过以下命令获取最新稳定版本: ```bash curl -sfL https://get.sealos.io | sh - ``` 3. **执行集群初始化** 使用 `sealos init` 命令启动单主节点或多主节点模式下的 Kubernetes 郱署流程。例如,在多主节点场景下可指定如下参数: ```bash sealos init --master <MASTER_IP> --node <NODE_IPS> ``` 这里 `<MASTER_IP>` 表示控制平面地址列表,而 `<NODE_IPS>` 列出了计算节点 IP 地址集合[^1]。 4. **验证集群状态** 初始化完成后可通过以下指令确认各组件健康状况: ```bash kubectl get nodes ``` --- #### 三、常见错误处理方法 尽管 sealos 提供了一键化操作体验,但在实际应用过程中仍可能出现一些异常情况。针对这些挑战可以采取相应措施加以应对: - 如果遇到 DNS 解析失败,则尝试调整 `/etc/resolv.conf` 文件中的 nameserver 设置; - 对于容器镜像拉取超时现象,建议预先加载所需 image 至本地仓库后再继续后续动作; - 当某些服务无法正常启动时,请查阅日志文件定位具体原因并通过修复依赖关系解决问题。 --- #### 四、高级功能扩展 除了基础架构搭建外,借助 Helm Chart 能够轻松实现更多增值服务集成,比如监控告警体系 Prometheus & Grafana 构建等案例分享如下所示: 1. **Helm 自动化扩容 Prometheus 实现路径** 下载对应 chart 并定制 values 参数后即可一键部署完整的解决方案栈: ```yaml helm repo add prometheus-community https://prometheus-community.github.io/helm-charts helm install my-prometheus prometheus-community/prometheus \ --set server.persistentVolume.enabled=false \ --namespace monitoring ``` 2. **Web 应用动态托管实例说明** 创建 Deployment YAML 描述符定义业务逻辑单元结构之后提交至 API Server 处理请求流转发机制优化策略探讨[^3]: ```yaml apiVersion: apps/v1 kind: Deployment metadata: name: webapp-deployment spec: replicas: 3 selector: matchLabels: app: webapp template: metadata: labels: app: webapp spec: containers: - name: webapp-container image: nginx:latest ports: - containerPort: 80 ``` --- #### 五、参考资料补充链接 为了更深入理解相关内容,强烈推荐阅读以下资料进一步学习掌握技巧要点提升效率效果最佳!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值