当前位置: 首页 > article >正文

Sealos的k8s高可用集群搭建

Sealos 介绍](https://sealos.io/zh-Hans/docs/Intro)

Sealos 是一个 Go 语言开发的简单干净且轻量的 Kubernetes 集群部署工具,能很好的支持在生产环境中部署高可用的 Kubernetes 集群。

Sealos 特性与优势
  1. 支持离线安装,工具与部署资源包分离,方便不同版本间快速升级。
  2. 证书有效期默认延期至 99 年。
  3. 工具使用非常简单。
  4. 支持使用自定义配置文件,可灵活完成集群环境定制。
  5. 使用内核进行本地负载,稳定性极高,故障排查也极其简单。
  6. 最主要的优势是不需要翻墙出去!!!
下载 sealos 命令行工具
VERSION=v4.3.7
wget https://github.com/labring/sealos/releases/download/${VERSION}/sealos_${VERSION#v}_linux_amd64.tar.gz \
   && tar zxvf sealos_${VERSION#v}_linux_amd64.tar.gz sealos && chmod +x sealos && mv sealos /usr/bin
先决条件
  • 每个集群节点应该有不同的主机名。主机名不要带下划线。
  • 所有节点的时间需要同步。
  • 需要在 K8s 集群的第一个 master 节点上运行 sealos run 命令,目前集群外的节点不支持集群安装
  • 建议使用干净的操作系统来创建集群。不要自己装 Docker!
  • 支持大多数 Linux 发行版,例如:Ubuntu、CentOS、Rocky linux。
  • 支持 Docker Hub 中的所有 Kubernetes 版本。
  • 支持使用 Containerd 作为容器运行时。
  • 在公有云上安装请使用私有 IP
生成集群配置文件

Sealos 的 gen 命令可以用于生成 Kubernetes 集群的配置文件(Clusterfile),这个配置文件可以在之后通过 sealos apply 命令来应用。gen 命令可以帮助用户快速生成一个基本的配置文件,用户可以在此基础上根据自己的需求进行修改和调整。

sealos gen labring/kubernetes:v1.25.15 labring/helm:v3.8.2 labring/calico:v3.24.1 \
    --masters 172.19.100.15,172.19.100.7,172.19.100.17 \
    --nodes 172.19.100.10 --passwd 'lAf3GIBasW@N3gJAqON8otFOxYs' > Clusterfile.yaml

在生成了 Clusterfile 之后,用户可以根据自己的需求来修改这个文件。添加或修改环境变量;修改集群cidr配置。完成修改后,用户就可以通过 sealos apply 命令来根据这个配置文件来创建或更新集群了。

apiVersion: apps.sealos.io/v1beta1
kind: Cluster
metadata:
  creationTimestamp: null
  name: default
spec:
  hosts:
  - ips:
    - 172.16.66.41:22
    - 172.16.66.42:22
    - 172.16.66.43:22
    roles:
    - master
    - amd64
  - ips:
    - 172.16.66.44:22
    roles:
    - node
    - amd64
  image:
  - labring/kubernetes:v1.25.15
  - labring/helm:v3.8.2
  - labring/calico:v3.24.1
  ssh:
    passwd: redhat
... ...
初始化集群
sealos apply -f Clusterfile.yaml

初始化成功界面

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

[root@sealos-01 ~]# kubectl  get nodes 
NAME        STATUS   ROLES           AGE     VERSION
sealos-01   Ready    control-plane   4m38s   v1.25.15
sealos-02   Ready    control-plane   3m46s   v1.25.15
sealos-03   Ready    control-plane   2m43s   v1.25.15
sealos-04   Ready    <none>          2m16s   v1.25.15

[root@sealos-01 ~]# kubectl  -n kube-system get pods 
NAME                                READY   STATUS    RESTARTS        AGE
coredns-565d847f94-bvc79            1/1     Running   0               2m59s
coredns-565d847f94-lv8wp            1/1     Running   0               2m59s
etcd-sealos-01                      1/1     Running   1               3m13s
etcd-sealos-02                      1/1     Running   0               2m5s
etcd-sealos-03                      1/1     Running   0               78s
kube-apiserver-sealos-01            1/1     Running   1               3m15s
kube-apiserver-sealos-02            1/1     Running   1               109s
kube-apiserver-sealos-03            1/1     Running   1               68s
kube-controller-manager-sealos-01   1/1     Running   3 (2m13s ago)   3m15s
kube-controller-manager-sealos-02   1/1     Running   2               118s
kube-controller-manager-sealos-03   1/1     Running   1               76s
kube-proxy-4xgvw                    1/1     Running   0               2m24s
kube-proxy-7crtv                    1/1     Running   0               2m59s
kube-proxy-9hkn9                    1/1     Running   0               81s
kube-proxy-wzms8                    1/1     Running   0               54s
kube-scheduler-sealos-01            1/1     Running   3 (2m14s ago)   3m14s
kube-scheduler-sealos-02            1/1     Running   1               118s
kube-scheduler-sealos-03            1/1     Running   1               74s
kube-sealos-lvscare-sealos-04       1/1     Running   1               46s

使用 containerd 作为容器运行时,镜像和容器的操作使用 crictl 命令。

[root@sealos-01 ~]# crictl images
IMAGE                                          TAG                 IMAGE ID            SIZE
sealos.hub:5000/calico/cni                     v3.24.1             67fd9ab484510       87.4MB
sealos.hub:5000/calico/csi                     v3.24.1             6a8c8f9f60dc6       9.04MB
sealos.hub:5000/calico/node-driver-registrar   v3.24.1             417ab3368bad1       11.1MB
sealos.hub:5000/calico/node                    v3.24.1             75392e3500e36       80.2MB
sealos.hub:5000/calico/pod2daemon-flexvol      v3.24.1             f1bf9f7296b3b       7.06MB
sealos.hub:5000/calico/typha                   v3.24.1             068eca72ba120       28.4MB
sealos.hub:5000/coredns/coredns                v1.9.3              5185b96f0becf       14.8MB
sealos.hub:5000/etcd                           3.5.9-0             73deb9a3f7025       103MB
sealos.hub:5000/kube-apiserver                 v1.25.15            0d36923e7b122       35.1MB
sealos.hub:5000/kube-controller-manager        v1.25.15            9c2734ae92bb5       31.9MB
sealos.hub:5000/kube-proxy                     v1.25.15            5dd63335012de       20.5MB
sealos.hub:5000/kube-scheduler                 v1.25.15            f9d1697d9af02       16.3MB
sealos.hub:5000/pause                          3.8                 4873874c08efc       309kB
重置集群
sealos reset 
添加节点

要向集群中添加节点,可以使用 --nodes 选项:

sealos add --nodes x.x.x.x

要向集群中添加控制节点,可以使用 --masters 选项:

sealos add --masters x.x.x.x
删除节点

要从集群中删除节点,可以使用 --nodes 选项:

sealos delete --nodes x.x.x.x

要从集群中删除控制节点,可以使用 --masters 选项:

sealos delete --masters x.x.x.x
查看集群证书有效期
kubeadm  certs check-expiration

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Sealos 高可用

LVScare是一款基于 IPVS 技术的轻量级负载均衡和健康检查工具,可以实时监控和管理后端服务。Sealos与LVScare结合来实现Kubernetes master节点的高可用性。Sealos利用其生命周期管理能力,通过配合LVScare的轻量级,0依赖,高可用的特性,可以非常有效地保证Kubernetes集群的稳定性和可靠性。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传


http://www.kler.cn/a/540194.html

相关文章:

  • 畅游Diffusion数字人(16):由音乐驱动跳舞视频生成
  • C++20新特性
  • 卷积神经网络CNN如何处理语音信号
  • JS对象拷贝的几种实现方法以及如何深拷贝(面试题)
  • android手机安装deepseek-r1:1.5b
  • 【自开发工具】SQLSERVER的ImpDp和ExpDp工具汇总
  • Java面试题--设计模式
  • 2025嵌入式高频面试题解析
  • 示例代码:C# MQTTS双向认证(客户端)(服务器EMQX)
  • Linux之Http协议分析以及cookie和session
  • 数据结构与算法之排序算法-插入排序
  • 【合集】Java进阶——Java深入学习的笔记汇总 amp; 再论面向对象、数据结构和算法、JVM底层、多线程
  • ZooKeeper选举机制详解
  • C++20新特性
  • Spring Boot中使用Thymeleaf的详细指南
  • 安卓开发,底部导航栏
  • 解决windows wsl2+Ubuntu中没有网络问题
  • HarmonyOS:时间日期国际化
  • 组件库选择:ElementUI 还是 Ant Design
  • STC51 P0 口 与P1 口输出
  • Linux TCP 编程详解与实例
  • json转typescript在线工具
  • webpack配置之---output.chunkFormat
  • [权限提升] Linux 提权 维持 — 系统错误配置提权 - 明文 ROOT 密码提权
  • Websocket从原理到实战
  • 大模型Prompt 提示词攻击,大语言模型安全的潜在威胁