openEuler 基于 sealos 部署 k8s 1.30 集群

一、 sealos 简介

Sealos 是传说中最丝滑的k8s集群部署方式。

Sealos 是一款以 Kubernetes 为内核的云操作系统发行版。

Sealos 是一个基于 Kubeadm 的 K8s 一键安装工具,它可以帮助我们快速搭建一个 K8s 集群,而且还可以帮我们自动安装一些常用的插件,甚至要搭建一个高可用的集群也是非常方便的。

Sealos 官网

什么是 Sealos? | Sealos: 专为云原生开发打造的以 K8s 为内核的云操作系统

二、 获取sealos cli工具

集群镜像版本支持说明

安装 K8s 集群 | Sealos Docs

支持 Containerd 的 K8s

推荐使用 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
>=1.28 >=v5.0.0 v1 labring/kubernetes:v1.28.0

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

支持 Docker 的 K8s

当然,你也可以选择使用 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
>=1.28 >=v5.0.0 v1 labring/kubernetes-docker:v1.28.0

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

下载rpm包安装

所有主机均要配置主机名、IP地址、主机名与IP地址解析。

主机说明

作用 IP OS 配置
k8s-master01 192.168.234.11 openEuler 24.03 (LTS-SP4) 4颗CPU 4G内存 50G硬盘
k8s-work01 192.168.234.13 openEuler 24.03 (LTS-SP4) 4颗CPU 4G内存 50G硬盘
k8s-work02 192.168.234.14 openEuler 24.03 (LTS-SP4) 4颗CPU 4G内存 50G硬盘

主机环境配置(三台都需要)

复制代码
#1.关闭防火墙
sudo systemctl stop firewalld
sudo systemctl disable firewalld

#2.关闭selinux
#selinux禁用
setenforce 0
sed -i 's/enforcing/disabled/' /etc/selinux/config


#3.设置主机名
hostnamectl set-hostname k8s-master01
hostnamectl set-hostname k8s-worker01
hostnamectl set-hostname k8s-worker02

三、sealos cli部署K8S集群

先决条件

首先需要下载 Sealos 命令行工具,sealos 是一个简单的 Golang 二进制文件,可以安装在大多数 Linux 操作系统中。

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

  • 每个集群节点应该有不同的主机名。主机名不要带下划线。

  • 所有节点的时间需要同步。

  • 需要在 K8s 集群的第一个 master 节点 上运行 sealos run 命令,目前集群外的节点不支持集群安装

  • 建议使用干净的操作系统来创建集群。不要自己装 Docker!

  • 支持大多数 Linux 发行版,例如:Ubuntu、CentOS、Rocky linux。

  • 支持 Docker Hub 中的所有 Kubernetes 版本。

  • 支持使用 Containerd 作为容器运行时。

  • 在公有云上安装请使用私有 IP

版本查询,sealos 支持的 k8s 版本

使用 Registry Explorer 可以查看 K8s 集群镜像的所有版本,直接输入 registry.cn-shanghai.aliyuncs.com/labring/kubernetes,然后点击 "Submit Query":

注意:三台机器都需要打开 /etc/yum.repos.d/openEuler.repo,然后把光标定位到[update]那一行输入

成功把以下内容注释:

复制代码
所有节点安装 tar (最小化安装没有tar)
yum install -y tar

只在 k8s-master01 上操作:
    先把本地包sealos_5.0.1_linux_amd64.rpm上传到k8s-master01
    然后安装  yum install sealos_5.0.1_linux_amd64.rpm


再执行
sealos run registry.cn-shanghai.aliyuncs.com/labring/kubernetes-docker:v1.30.5 \
registry.cn-shanghai.aliyuncs.com/labring/helm:v3.9.4 \
registry.cn-shanghai.aliyuncs.com/labring/calico:v3.26.1 \
--masters 192.168.234.11 \
--nodes 192.168.234.13,192.168.234.14 -p '1' #节点root用户密码

部署完成!

配置kubectl及kubeadm命令自动补全

复制代码
安装bash-completion
yum install -y bash-completion
​
配置自动补全
source /usr/share/bash-completion/bash_completion
​
临时生效kubectl自动补全
source <(kubectl completion bash)
​
只在当前用户生效kubectl自动补全
echo 'source <(kubectl completion bash)' >>~/.bashrc
​
配置kubectl自动补全全局生效
echo 'source <(kubectl completion bash)' >/etc/profile.d/k8s.sh && source /etc/profile

配置kubeadm命令自动补全

复制代码
配置kubeadm自动补全
基本步骤与kubectl相似
source /usr/share/bash-completion/bash_completion
source <(kubeadm completion bash)
只对当前用户生效
echo 'source <(kubeadm completion bash)' >>~/.bashrc
​
配置kubeadm自动补全全局生效
echo 'source <(kubeadm completion bash)' >>/etc/profile.d/k8s.sh && source /etc/profile
​

四、集群维护

复制代码
增加节点
1、增加 node 节点:
sealos add --nodes 192.168.64.21,192.168.64.19 
​
2、增加 master 节点:
sealos add --masters 192.168.64.21,192.168.64.19 

删除节点
1、删除 node 节点:
sealos delete --nodes 192.168.64.21,192.168.64.19 
​
2、删除 master 节点:
sealos delete --masters 192.168.64.21,192.168.64.19  

清理集群
sealos reset
复制代码

五、测试

#首先配置国内镜像加速

复制代码
vim  /etc/docker/daemon.json

{
  "registry-mirrors":["https://p3kgr6db.mirror.aliyuncs.com",
   "https://docker.m.daocloud.io",
   "https://your_id.mirror.aliyuncs.com",
   "https://docker.nju.edu.cn/",
    "https://docker.anyhub.us.kg",
    "https://dockerhub.jobcher.com",
    "https://dockerhub.icu",
    "https://docker.ckyl.me",
       "https://cr.console.aliyun.com"
   ],
  "max-concurrent-downloads": 20,
  "log-driver": "json-file",
  "log-level": "warn",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
  },
  "exec-opts": [
    "native.cgroupdriver=systemd"
  ],
  "insecure-registries": [
    "sealos.hub:5000"
  ],
  "data-root": "/var/lib/docker"
}



systemctl daemon-reload #重载

systemctl restart  docker.service#重启docker

把daemon.json文件分别拷贝到俩个节点上

[root@localhost docker]# scp daemon.json  192.168.234.13:$PWD

[root@localhost docker]# scp daemon.json  192.168.234.14:$PWD

俩个节点再分别重载,重启。

部署nginx

root@master01 \~\]# kubectl create deployment nginx --image=nginx:1.14-alpine # 暴露端口 \[root@master01\~\]# kubectl expose deployment nginx --port=80 --type=NodePort # 查看服务状态 \[root@master01 \~\]# kubectl get pods,service ![](https://i-blog.csdnimg.cn/direct/00739db56e3b4955b96791daf241a365.png) 在浏览器上访问[http](https://so.csdn.net/so/search?q=http&spm=1001.2101.3001.7020 "http")://192.168.234.11:31393(或192.168.234.13:31393、192.168.234.14:31393) ![](https://i-blog.csdnimg.cn/direct/922d218d6176427db93912608a3c35b4.png)

相关推荐
fridayCodeFly18 分钟前
:ref 和 this.$refs 的区别及 $ 的作用
linux·运维·服务器
Hum8le2 小时前
小科普《DNS服务器》
运维·服务器
yunqi12154 小时前
【负载均衡系列】nginx负载高怎么排查
运维·nginx·负载均衡
云上艺旅5 小时前
K8S学习之基础四十七:k8s中部署fluentd
学习·云原生·容器·kubernetes
BigBookX6 小时前
在 Ubuntu 中配置开机自启动脚本并激活 Anaconda 环境
linux·运维·ubuntu
yi个名字6 小时前
Linux中的yum和vim工具使用总结
linux·运维·vim
帽儿山的枪手7 小时前
程序员必掌握docker六种网络模式
网络协议·docker·容器
小刘爱喇石( ˝ᗢ̈˝ )7 小时前
k8s存储介绍(二)Secret
云原生·容器·kubernetes
云观秋毫7 小时前
试试智能体工作流,自动化搞定运维故障排查
运维·数据库·自动化
不是编程家8 小时前
Linux第九讲:动静态库
linux·运维·服务器