使用 Sealos 一键部署 Kubernetes 集群

这篇具有很好参考价值的文章主要介绍了使用 Sealos 一键部署 Kubernetes 集群。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Sealos 是一款以 Kubernetes 为内核的云操作系统发行版,使用户能够像使用个人电脑一样简单地使用云。

与此同时,Sealos 还提供一套强大的工具,可以便利地管理整个 Kubernetes 集群的生命周期。

Sealos 不仅可以一键安装一个单节点的 Kubernetes 开发环境,还能构建数千节点的生产高可用集群。

Sealos 还可以在 Kubernetes 之上,通过集群镜像能力组装各种上层分布式应用,如数据库、消息队列等。

此外,Sealos 还具有自由伸缩集群、备份恢复、释放集群等功能,即使在离线环境中,Sealos 也能提供出色的 Kubernetes 运行体验。

本文将会手把手教大家如何使用 Sealos 一键部署 Kubernetes 集群,包教包会。

原文链接:https://sealos.run/docs/self-hosting/lifecycle-management/quick-start/deploy-kubernetes

突破网络困境

首先我们需要下载 Sealos 命令行工具,Sealos 命令行工具可以到 Sealos 的 Release 页面获取:

  • https://github.com/labring/sealos/releases

有多种方式可以下载 Sealos 命令行工具,但由于国内特殊的网络环境,无论哪一种方式都是需要魔法的。Reelase 页面提供的各个包要么就是无法下载,要么就是速度奇慢。

要想突破网络限制,首先我们需要解决 Release 页面的链接访问问题。

如果你知道如何使用魔法来访问,那么下面的内容就不用看了。以下方案是给不会魔法的同学提供的。

这就需要用到一个浏览器插件:Violentmonkey (暴力猴)。你也可以安装 Tampermonkey (篡改猴)。他们都属于用户脚本管理器,本身无法为我们发挥什么作用,主要依靠各大社区编写的扩展脚本 (JavaScript 代码) 运行在浏览器上,来改变被访问网页的功能,提升我们的网页浏览体验。

我推荐使用 Violentmonkey,更轻量,更新更勤快。下面我们来进行安装。

安装浏览器插件

众所周知,Chrome 浏览器的插件需要到 Chrome Web 应用商店去下载,但你需要开启魔法才能访问这个网站,我们需要寻求他法。

方法一

微软出品的 Edge 浏览器自带一个扩展商店页面,而且这个页面是可以直接访问的。你可以选择使用 Edge 浏览器,然后打开 Edge 浏览器的扩展商店:

  • https://microsoftedge.microsoft.com/addons/Microsoft-Edge-Extensions-Home]

然后搜索 violentmonkey,点击获取开始安装:

方法二

对于 Chrome 浏览器,或者其他 Chromium 系的浏览器,我们可以从很多 Chrome 应用商店的镜像站去获取 Violentmonkey 的 crx 文件,这里推荐一个镜像站:

  • https://crxdl.com/

点击下载最新版:

下载完成解压后会得到一个 xxx.crx 文件,你需要打开浏览器设置,打开扩展程序页面,或者直接搜索 Chrome://extensions/进入。然后保持页面开发者模式的开启。找到被解压后的 crx 文件,将其拖动到扩展程序页面,释放并同意完成安装。

GitHub 增强脚本获取

Violentmonkey 插件是以运行用户脚本来实现功能的,借助用户脚本,可以实现各种强大的功能。这里我们需要安装一个 GitHub 增强脚本,这个脚本会给 GitHub Release 页面的文件提供多个 CDN 地址,我们可以通过 CDN 地址来下载文件,不再需要魔法。

脚本的安装非常简单无脑,直接浏览器打开这个链接:

  • https://cdn.jsdelivr.us/gh/XIU2/UserScript@master/GithubEnhanced-High-Speed-Download.user.js

然后点击确认安装:

安装完成后点击关闭即可。

打开 Violentmonkey 扩展的设置页面,然后点击箭头所指的图标打开脚本:

再其中加上一行:// @match *://githubfast.com/*,然后点击保存,关闭。

下载 Sealos 命令行工具

现在我们打开 Sealos 的 Release 页面:https://github.com/labring/sealos/releases。鉴于 GitHub 会时不时抽风,导致无法访问。我们可以在任意 github 链接后面加上 fast,也就是 githubfast.com,以此来访问 GitHub 页面。例如 Release 页面可以通过以下链接来访问:

  • https://githubfast.com/labring/sealos/releases

这里有很多 Sealos 版本,建议使用正式版本,不要下载 alpha 版或者 rc 版。你可以直接使用最新的正式版,可以通过以下链接访问:

  • https://github.com/labring/sealos/releases/latest

现在你可以看到每一个文件后面都提供了多个 CDN 链接,你只需要把鼠标放到其中一个链接上,然后鼠标右键就可以复制该 CDN 链接。

这个仓库里也提供了多个 GitHub 镜像网站:https://githubfast.com/runningcheese/MirrorSite

二进制下载

因为 Sealos 命令行工具只有一个二进制文件,所以所有的 Linux 发行版都可以选择直接下载二进制文件来使用 Sealos 命令行工具。

x86 架构可以选择下载 sealos_xxx_linux_amd64.tar.gz,记得使用右边的 CDN 链接下载。

获得 CDN 链接后,使用下面的命令开始下载:

$ URL=<你的 CDN 链接>
$ wget $URL && tar zxvf sealos_*_linux_amd64.tar.gz sealos && chmod +x sealos && mv sealos /usr/bin

可以多尝试几个链接,找到速度较快的链接。

测试一下:

$ sealos version
SealosVersion:
  buildDate: "2023-10-09T10:07:15Z"
  compiler: gc
  gitCommit: 881c10cb
  gitVersion: 4.3.5
  goVersion: go1.20.8
  platform: linux/amd64

同理,arm64 架构可以下载 sealos_xxx_linux_arm64.tar.gz。

包管理工具安装

Sealos 同时还提供了 DEB 包和 RPM 包,对于 Debian/Ubuntu 系的系统或者 Centos/RHEL 系的系统,可以选择使用包管理工具来安装。

以 Ubuntu 为例,x86 架构可以选择下载 sealos_xxx_linux_amd64.deb,下载完成后使用包管理工具安装即可。命令如下:

$ URL=<你的 CDN 链接>
$ wget $URL && dpkg -i sealos_*_linux_amd64.deb

Centos/RHEL 系的系统可以使用如下命令:

$ URL=<你的 CDN 链接>
$ wget $URL && yum localinstall -y sealos_*_linux_amd64.rpm

安装 Kubernetes 集群

终于进入正题了,接下来开始正式安装 Kubernetes 集群。

以下是一些基本的安装要求:

  • 每个集群节点应该有不同的主机名。主机名不要带下划线。
  • 所有节点的时间需要同步。
  • 需要在 Kubernetes 集群的第一个 master 节点上运行 sealos run 命令,目前集群外的节点不支持集群安装
  • 建议使用干净的操作系统来创建集群。不要自己装 Docker!
  • 支持大多数 Linux 发行版,例如:Ubuntu、CentOS、Rocky linux。
  • 支持 Docker Hub 中的所有 Kubernetes 版本。
  • 支持使用 Containerd 作为容器运行时。
  • 在公有云上安装请使用私有 IP

在正式安装之前,先来简单理解一下 Sealos 中的一个特有的概念:集群镜像

Sealos 吸取了 Docker 思想的精髓,把 Docker 的思想衍生到了集群的维度,实现分布式软件的构建、打包、交付、运行等等。

和操作系统 ISO 镜像或 Docker 镜像类似,集群镜像就是用一定的技术手段把整个集群的所有文件以一定格式打成的一个资源包

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

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

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

Docker 解决了单个容器的镜像化问题,而 Sealos 通过把整个集群打包,实现了分布式软件的一处构建,处处运行

本文由于篇幅有限,集群镜像的具体原理就不展开介绍了,后面有机会再写文章介绍。感兴趣的同学可以参考 Sealos 的官方文档:

  • https://sealos.run/docs/category/advanced-guide-1

集群镜像版本支持说明

推荐使用 Containerd 作为容器运行时 (CRI) 的集群镜像版本,Containerd 是一种轻量级、高性能的容器运行时,与 Docker 兼容。使用 Containerd 的 Kubernetes 镜像可以提供更高的性能和资源利用率。以下是支持 Containerd 的集群镜像版本支持说明:

K8s 版本 Sealos 版本 CRI 版本 集群镜像版本
<1.25 >=v4.0.0 v1alpha2 labring/kubernetes:v1.24.0
>=1.25 >=v4.1.0 v1alpha2 labring/kubernetes:v1.25.0
>=1.26 >=v4.1.4-rc3 v1 labring/kubernetes:v1.26.0
>=1.27 >=v4.2.0-alpha3 v1 labring/kubernetes:v1.27.0

根据 Kubernetes 版本的不同,您可以选择不同的 Sealos 版本和 CRI 版本。例如,如果您要使用 Kubernetes v1.26.0 版本,您可以选择 sealos v4.1.4-rc3 及更高版本,并使用 v1 CRI 版本。

当然,你也可以选择使用 Docker 作为容器运行时,以下是支持 Docker 的集群镜像版本支持说明:

K8s 版本 Sealos 版本 CRI 版本 集群镜像版本
<1.25 >=v4.0.0 v1alpha2 labring/kubernetes-docker:v1.24.0
>=1.25 >=v4.1.0 v1alpha2 labring/kubernetes-docker:v1.25.0
>=1.26 >=v4.1.4-rc3 v1 labring/kubernetes-docker:v1.26.0
>=1.27 >=v4.2.0-alpha3 v1 labring/kubernetes-docker:v1.27.0

与支持 Containerd 的 Kubernetes 镜像类似,您可以根据 Kubernetes 版本的不同选择不同的 Sealos 版本和 CRI 版本。例如,如果您要使用 Kubernetes v1.26.0 版本,您可以选择 sealos v4.1.4-rc3 及更高版本,并使用 v1 cri 版本。

查看集群镜像

Sealos 所有的集群镜像都可以在这个仓库里找到:

  • https://github.com/labring-actions/cluster-image-docs

除了推送到 Docker Hub 之外,这些镜像还被同步到了阿里云的镜像仓库。Docker Hub 上可以通过以下链接查看 Sealos 所有的集群镜像:

  • https://hub.docker.com/u/labring

但是集群镜像实在是太多了,假如我想看 Kubernetes 集群镜像的所有版本,有没有更高效的方式来查看呢?

这就需要用到一个工具叫 Registry Explorer,链接如下:

  • https://explore.ggcr.dev/

直接输入 registry.cn-shanghai.aliyuncs.com/labring/kubernetes,然后点击 “Submit Query”:

你就会看到这个集群镜像的所有 tag。

Docker Hub 同理,输入 docker.io/labring/kubernetes 即可查看所有 tag。

安装集群

Kubernetes 的小版本号越高,集群越稳定。例如 v1.28.x,其中的 x 就是小版本号。建议使用小版本号比较高的 Kubernetes 版本。到本文截止时间为止,v1.27 最高的版本号是 v1.27.7,而 v1.28 最高的版本号是 v1.28.3,所以建议使用 v1.27.7。你需要根据实际情况来选择最佳的 Kubernetes 版本,不要照抄本文。

推荐使用 Containerd 作为运行时,也就是集群镜像 labring/kubernetes。如果你非要使用 Docker 作为运行时,可以使用集群镜像 labring/kubernetes-docker

如果你只有一个节点,可以使用以下命令来安装:

$ sealos run registry.cn-shanghai.aliyuncs.com/labring/kubernetes:v1.27.7 registry.cn-shanghai.aliyuncs.com/labring/helm:v3.9.4 registry.cn-shanghai.aliyuncs.com/labring/cilium:v1.13.4 --single

记得通过 Registry Explorer 来查看 helm 和 cilium 最新的版本号。

如果你有多个节点,可以使用以下命令来安装:

$ sealos run registry.cn-shanghai.aliyuncs.com/labring/kubernetes:v1.27.7 registry.cn-shanghai.aliyuncs.com/labring/helm:v3.9.4 registry.cn-shanghai.aliyuncs.com/labring/cilium:v1.13.4 \
     --masters <master1 的 IP>,<master2 的 IP>,... \
     --nodes <node1 的 IP>,<node1 的 IP>,... -p [your-ssh-passwd]

举个例子,假设你有两个节点,master 节点的 IP 是 192.168.64.10,node 节点的 IP 是 192.168.64.11,命令如下:

$ sealos run registry.cn-shanghai.aliyuncs.com/labring/kubernetes:v1.27.7 registry.cn-shanghai.aliyuncs.com/labring/helm:v3.9.4 registry.cn-shanghai.aliyuncs.com/labring/cilium:v1.13.4 \
     --masters 192.168.64.10 \
     --nodes 192.168.64.11 -p [your-ssh-passwd]

没了。静静等待安装完成即可。安装完成后,可以使用如下命令查看集群状况:

$ kubectl get node
NAME           STATUS   ROLES           AGE   VERSION
ycs-master-1   Ready    control-plane   18h   v1.27.7
ycs-node-1     Ready    <none>          18h   v1.27.7

$ kubectl -n kube-system get pod
NAME                                   READY   STATUS    RESTARTS       AGE
cilium-fmgcw                           1/1     Running   1 (48m ago)    18h
cilium-operator-86666d88cb-6h5kx       1/1     Running   1 (52m ago)    18h
cilium-skggs                           1/1     Running   0              18h
coredns-5d78c9869d-j4kkj               1/1     Running   0              18h
coredns-5d78c9869d-snlt7               1/1     Running   0              18h
etcd-ycs-master-1                      1/1     Running   9              18h
kube-apiserver-ycs-master-1            1/1     Running   9              18h
kube-controller-manager-ycs-master-1   1/1     Running   9              18h
kube-proxy-g45vv                       1/1     Running   0              18h
kube-proxy-vz4dk                       1/1     Running   1 (48m ago)    18h
kube-scheduler-ycs-master-1            1/1     Running   9              18h
kube-sealos-lvscare-ycs-node-1         1/1     Running   10 (48m ago)   18h
metrics-server-84c9bd846f-mwfbx        1/1     Running   0              47m

镜像分发原理

Sealos 在安装 Kubernetes 的过程中不会将镜像拷贝到所有节点,而是采用了一种更加优雅的解决方案。Sealos 会在第一个 master 节点 (第一个 master 节点是指创建集群的时候输入的第一个 master 节点的地址) 上启动一个私有镜像仓库,然后将 Kubernetes 集群镜像里的 registry 目录同步到私有镜像仓库中。

同时,每个节点都会运行一个 image-cri-shim 守护进程,kubelet 在拉取镜像的时候会发起一个 grpc 交互命令到 image-cri-shim。该进程会根据镜像名字在私有仓库里面查找,如果镜像存在则从本地镜像仓库拉取,否则就从远端拉取。

这样就完美解决了镜像分发问题。

详细原理请参阅 Sealos 镜像仓库相关文档:文章来源地址https://www.toymoban.com/news/detail-774082.html

  • https://sealos.run/docs/self-hosting/lifecycle-management/operations/registry/

到了这里,关于使用 Sealos 一键部署 Kubernetes 集群的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 云原生|kubernetes|kubernetes集群部署神器kubekey的初步使用(centos7下的kubekey使用)

    kubernetes集群的安装部署是学习kubernetes所需要面对的第一个难关,确实是非常不好部署的,尤其是二进制方式,虽然有minikube,kubeadm大大的简化了kubernetes的部署难度,那么,针对我们的学习环境或者测试环境,我们应该如何能够快速的,简单的,非常优雅的部署一个学习或者

    2024年02月16日
    浏览(50)
  • [Kubernetes]8. K8s使用Helm部署mysql集群(主从数据库集群)

    上一节讲解了K8s包管理工具Helm、使用Helm部署mongodb集群(主从数据库集群),这里来看看 K8s使用Helm部署mysql集群(主从数据库集群) 无本地存储: 当重启的时候,数据库消失 (1).打开官网的应用中心 打开应用中心,搜索mysql (2).安装  1).添加repo仓库 2).安装 具体命令如下:  3).自动生成

    2024年01月21日
    浏览(81)
  • Kubernetes技术--使用kubeadm快速部署一个K8s集群

    这里我们配置一个 单master集群 。( 一个Master节点,多个Node节点 ) 1.硬件环境准备 一台或多台机器,操作系统 CentOS7.x-86_x64 。这里我们使用安装了CentOS7的三台虚拟机 硬件配置 : 2GB或更多RAM , 2个CPU或更多CPU , 硬盘30GB或更多 2.主机名称和IP地址规划 3. 初始化准备工作 (1).关

    2024年02月10日
    浏览(58)
  • 使用 GitHub Action 自动更新 Sealos 集群的应用镜像

    在 IT 领域,自动化无疑已成为提高工作效率和减少人为错误的关键。Sealos 作为一个强大的云操作系统,已经为许多企业和开发者提供了稳定可靠的服务。与此同时,随着技术不断发展,集成更多的功能和服务变得尤为重要。考虑到这一点,本文将介绍如何 利用 GitHub Action 来

    2024年02月08日
    浏览(45)
  • 使用 Sealos 在离线环境中光速安装 K8s 集群

    作者:尹珉。Sealos 开源社区 Ambassador,云原生爱好者。 在当今快节奏的软件交付环境中,容器化交付已经成为许多企业选择的首选技术手段。在可以访问公网的环境下,容器化交付不仅能够提高软件开发和交付的效率,还能够帮助企业实现快速迭代和持续交付。 然而,在离

    2024年02月10日
    浏览(37)
  • 云原生|kubernetes|使用cri-docker部署基于kubeadm-1.25.4的集群

    前言: kubernetes的部署从1.24版本开始后,弃用docker-shim,也就是说部署1.24版本后的集群不能使用docker-ce了。 比较清晰的解决方案有两个,一是使用containerd,这个是一个新的支持cri标准的shim,一个是使用cri-docker这样的中间插件形式, 一头通过CRI跟kubelet交互,另一头跟docker

    2024年02月07日
    浏览(79)
  • Kubernetes一键部署利器:kubeadm

    使用 kubeadm 的第一步,是在机器上手动安装 kubeadm、kubelet 和 kubectl 这三个二进制文件。 当你执行 kubeadm init 指令后,kubeadm 首先要做的,是一系列的检查工作,以确定这台机器可以用来部署 Kubernetes。这一步检查,我们称为“Preflight Checks”,它可以为你省掉很多后续的麻烦。

    2024年02月11日
    浏览(38)
  • Kubernetes - 一键安装部署 K8S(附:Kubernetes Dashboard)

    不知道大伙是如何安装 K8s,特别还是集群的时候,我上一次安装搭建的时候,那个恶心到我了,真的是一步一个脚印走完整个搭建流程,爬了不少坑。 于是,才有了今天的文章,到底有没有可以一键完美部署 k8s 并且附带 Dashboard……?那这么问了肯定是有的,否则岂不是在

    2024年02月03日
    浏览(55)
  • 一键部署k8s集群

    机器至少配置 序号 类型 主机名 IP 备注(CPU/内存/硬盘) 1 Mater k8s-api.bcs.local 192.168.46.128 8C16G,100G 2 Node1 node-192-168-46-129 192.168.46.129 4C8G,100G 3 Node2 node-192-168-46-130 192.168.46.130 4C8G,100G 4 Node3 node-192-168-46-131 192.168.46.131 4C8G,100G 软件需求 需求项 具体要求 检查命令 操作系统 Cen

    2024年02月09日
    浏览(55)
  • Kubernetes高可用集群二进制部署(六)Kubernetes集群节点添加

    Kubernetes概述 使用kubeadm快速部署一个k8s集群 Kubernetes高可用集群二进制部署(一)主机准备和负载均衡器安装 Kubernetes高可用集群二进制部署(二)ETCD集群部署 Kubernetes高可用集群二进制部署(三)部署api-server Kubernetes高可用集群二进制部署(四)部署kubectl和kube-controller-man

    2024年02月14日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包