Sealos 介绍](https://sealos.io/zh-Hans/docs/Intro)
Sealos 是一个 Go 语言开发的简单干净且轻量的 Kubernetes 集群部署工具,能很好的支持在生产环境中部署高可用的 Kubernetes 集群。
Sealos 特性与优势
- 支持离线安装,工具与部署资源包分离,方便不同版本间快速升级。
- 证书有效期默认延期至 99 年。
- 工具使用非常简单。
- 支持使用自定义配置文件,可灵活完成集群环境定制。
- 使用内核进行本地负载,稳定性极高,故障排查也极其简单。
- 最主要的优势是不需要翻墙出去!!!
下载 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集群的稳定性和可靠性。