Sealos的k8s高可用集群搭建

ops/2025/2/11 21:26:44/
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: nullname: default
spec:hosts:- ips:- 172.16.66.41:22- 172.16.66.42:22- 172.16.66.43:22roles:- master- amd64- ips:- 172.16.66.44:22roles:- node- amd64image:- labring/kubernetes:v1.25.15- labring/helm:v3.8.2- labring/calico:v3.24.1ssh: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.ppmy.cn/ops/157616.html

相关文章

git代理设置

在 Git 中&#xff0c;可以通过以下命令查看当前设置的代理配置&#xff1a; 查看 HTTP 代理 git config --get http.proxy查看 HTTPS 代理 git config --get https.proxy查看全局代理设置 如果你设置了全局代理&#xff0c;可以通过以下命令查看&#xff1a; git config …

Spring Boot: 使用 @Transactional 和 TransactionSynchronization 在事务提交后发送消息到 MQ

Spring Boot: 使用 Transactional 和 TransactionSynchronization 在事务提交后发送消息到 MQ 在微服务架构中&#xff0c;确保消息的可靠性和一致性非常重要&#xff0c;尤其是在涉及到分布式事务的场景中。本文将演示如何使用 Spring Boot 的事务机制和 TransactionSynchron…

python:递归函数与lambda函数

递归函数&#xff1a;1.函数内调用自己 2.有一个出口 1.递归 一.有出口时 def sum(num):if num1:return 1return numsum(num-1) asum(3) print(a) #num3 3sum(2) #num2 2sum(1) #num1是返回1 #即3sum(2&#xff09;即32sum(1)即321运行结果 6 二.无出口时 def sum(num)…

在Linux上创建虚拟网卡

在 Linux 上创建虚拟网卡可以通过多种方式进行&#xff0c;常见的方式是使用 ip 命令来配置虚拟网卡。以下是一个简单的步骤指南&#xff0c;用于创建虚拟网卡&#xff1a; 步骤 1: 查看现有的网络接口 首先&#xff0c;查看当前网络接口的状态&#xff0c;可以使用以下命令&…

VeryReport和FineReport两款报表软件深度分析对比

在当今数据驱动的商业环境中&#xff0c;报表软件已经成为企业管理和数据分析的重要工具。无论是中小型企业还是大型企业&#xff0c;都需要依赖高效的报表工具来快速生成、分析和展示数据。市面上有许多报表工具&#xff0c;其中VeryReport和FineReport是两款备受关注的国产报…

Redis7.0八种数据结构底层原理

导读 本文介绍redis应用数据结构与物理存储结构,共八种应用数据结构和 一. 内部数据结构 1. sds sds是redis自己设计的字符串结构有以下特点: jemalloc内存管理预分配冗余空间二进制安全(c原生使用\0作为结尾标识,所以无法直接存储\0)动态计数类型(根据字符串长度动态选择…

日语学习-日语知识点小记-构建基础-JLPT-N4&N5阶段(2):どれ・どの・どんな :区别 等

日语学习-日语知识点小记-构建基础-JLPT-N4&N5阶段(2):どれ・どの・どんな :区别 等 1、前言(1)情况说明(2)工程师的信仰2、知识点(1)知识点な形容詞(けいようし) と い形容詞(けいようし):并列修饰(2)知识点どれ・どの・どんな :区别(3)知识点は &…

WPF模板

WPF模板深度解析&#xff1a;打造个性化UI的利器 在WPF&#xff08;Windows Presentation Foundation&#xff09;的世界里&#xff0c;模板&#xff08;Template&#xff09;是构建个性化用户界面&#xff08;UI&#xff09;不可或缺的工具。它们允许开发者将控件的逻辑功能与…