第6节 sealos搭建k8s
❤️💕💕新时代拥抱云原生,云原生具有环境统一、按需付费、即开即用、稳定性强特点。Myblog:http://nsddd.top
[TOC]
开始
什么是sealos?
💡 标准自己以k8s为内核的操作系统。
sealos是一个Go语言开发的简单干净且KUbernetes集群部署工具。
sealos是能够很好的支持,在生产环境中部署高可用的kubernetes集群。
Sealos 特性与优势
- 支持离线安装,工具与部署资源包分离,方便不同版本间快速升级。
- 100年证书。
- 工具使用非常简单。
- 支持使用自定义配置文件,可灵活完成集群环境定制。
- 使用内核进行本地负载,稳定性极高,故障排查也极其简单。
- 最主要的优势是不需要翻墙出去
选择rancher还是sealos
- [x] rancher
- [x] GitHub项目地址
同样的还有 kubekey ,sealos是二次优化
KubeKey(由 Go 语言开发)是一种全新的安装工具,替代了以前使用的基于 ansible 的安装程序。KubeKey 为您提供灵活的安装选择,您可以仅安装 Kubernetes,也可以同时安装 Kubernetes 和 KubeSphere。
为什么不用 KeepAlived 和 HAProxy 实现集群高可用
无论是通过 KeepAlived 还是 HAProxy 进行高可用集群调度都会存在以下一些劣势。
- 软件源不一致可能导致容器中安装的软件版本也不一致,进而会引起相应检查脚本不生效等故障。
- 可能因为系统依赖库问题,在某些特定环境下就直接无法完成安装。
- 只依靠检测 HAProxy 进程是否存活是无法保证集群高可用的,正确的检测方式应该是判断ApiServer 是否 healthz 状态。
- Keepalived 可能存在 Cpu 占满的情况。
使用 sealos 快速构建 kubernetes
- [x] 快速搭建指南
sealos现在只支持linux,需要linux服务器来测试。
一些工具可以非常方便地帮助您启动虚拟机,例如multipass
构建项目
mkdir /sealos && cd /sealos && git clone https://github.com/labring/sealos && cd sealos && ls && make build # 大概可能因为网络原因需要等一段时间~
您可以将 bin
文件 scp
到您的 linux
主机。
如果你使用 multipaas
,你可以将 bin
目录挂载到 vm
:
multipass mount /your-bin-dir <name>[:<path>]
然后在本地测试。
⚠️ 注意:
所有二进制文件都
sealos
可以在任何地方构建,因为它们有CGO_ENABLED=0
. 但是,在运行一些依赖于 CGO 的sealos
子命令时,需要支持覆盖驱动程序。images
因此,在构建时会打开 CGOsealos
,从而无法sealos
在 Linux 以外的平台上构建二进制文件。
- 本项目中的
Makefile
和GoReleaser
都有这个设置。
😂 让我很喜欢的一点是:sealos
能一次性把环境搭建好,想当年,我真是废了九牛二虎之力才搭建~失败的。
核心服务快速启动
💡 重新把昨天集群全部删除,新开三台服务器,纯新~
环境准备
⚠️ 注意:环境一定很重要,不然都跑不起来~
hostnamectl set-hostname k8s-master01
hostnamectl set-hostname k8s-master02
hostnamectl set-hostname k8s-master03
虚拟机需要配置静态IP
查看内核版本
# 下载并安装 sealos, sealos 是个 golang 的二进制工具,直接下载拷贝到 bin 目录即可, release 页面也可下载
yum install wget && yum install tar &&\
wget https://github.com/labring/sealos/releases/download/v4.1.3/sealos_4.1.3_linux_amd64.tar.gz && \
tar -zxvf sealos_4.1.3_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.0.2,192.168.0.3\
--nodes 192.168.0.4 -p [your-ssh-passwd]
-p
:passwd密码开启ssh免密不需要些密码了,在这里就实现了。
验证集群:
kubectl get nodes
查看版本:
[root@k8s-master01 ~]# sealos version
{"gitVersion":"4.1.3","gitCommit":"b2ba9705","buildDate":"2022-09-06T06:04:14Z","goVersion":"go1.19","compiler":"gc","platform":"linux/amd64"}
使用 docker 作为 runtime:
sealos run labring/kubernetes-docker:v1.20.5-4.1.3 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 -p [your-ssh-passwd]
- 已支持的 kubernetes 版本列表: kuberentes 使用 containerd 运行时 kubernetes 使用 cri-docker
END 链接
✴️版权声明 © :本书所有内容遵循CC-BY-SA 3.0协议(署名-相同方式共享)©